name: sf-nfc-server networks: savefamily: external: true proxy: external: true internal: driver: bridge services: sf-nfc-server: container_name: sf-nfc-server image: sf-nfc-server build: context: ./ dockerfile: Dockerfile args: PORT: "${PORT:-3000}" develop: watch: - path: ./src action: sync target: /usr/local/app/packages - path: ./package.json action: rebuild ports: - ${PORT}:${PORT} networks: - internal - proxy env_file: - .env restart: unless-stopped healthcheck: test: [ "CMD-SHELL", 'node -e "fetch(''http://localhost:'' + (process.env.PORT || 3000) + ''/health'').then(r => { if (!r.ok) process.exit(1) }).catch(() => process.exit(1))"', ] interval: 10s timeout: 5s retries: 5 start_period: 15s labels: - "io.portainer.accesscontrol.teams=develop" - "traefik.enable=true" - "traefik.http.routers.sf-nfc-server.entrypoints=web" - "traefik.http.routers.sf-nfc-server.rule=Host(`sf-nfc-server.savefamilygps.net`)" - "traefik.http.middlewares.sf-nfc-server-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.sf-nfc-server.middlewares=sf-nfc-server-https-redirect" - "traefik.http.routers.sf-nfc-server-secure.entrypoints=websecure" - "traefik.http.routers.sf-nfc-server-secure.rule=Host(`sf-nfc-server.savefamilygps.net`)" - "traefik.http.routers.sf-nfc-server-secure.tls=true" - "traefik.http.routers.sf-nfc-server-secure.service=sf-nfc-server" - "traefik.http.services.sf-nfc-server.loadbalancer.server.port=${PORT}" - "traefik.docker.network=proxy"