services: conviction-voting-demo: build: . container_name: conviction-voting-demo restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.conviction-demo.rule=Host(`conviction.jeffemmett.com`)" - "traefik.http.routers.conviction-demo.entrypoints=web" - "traefik.http.services.conviction-demo.loadbalancer.server.port=3000" networks: - traefik-public healthcheck: test: ["CMD", "node", "-e", "fetch('http://localhost:3000').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: traefik-public: external: true