services: app: image: registry.infra.mintel.me/mintel/klz-cables.com:${IMAGE_TAG:-latest} restart: always networks: - infra ports: - "3000:3000" env_file: - ${ENV_FILE:-.env} labels: - "traefik.enable=true" # HTTP ⇒ HTTPS redirect - "traefik.http.routers.klz-cables-web.rule=Host(`${TRAEFIK_HOST}`) && !PathPrefix(`/.well-known/acme-challenge/`)" - "traefik.http.routers.klz-cables-web.entrypoints=web" - "traefik.http.routers.klz-cables-web.middlewares=redirect-https" # HTTPS router - "traefik.http.routers.klz-cables.rule=Host(`${TRAEFIK_HOST}`)" - "traefik.http.routers.klz-cables.entrypoints=websecure" - "traefik.http.routers.klz-cables.tls.certresolver=le" - "traefik.http.routers.klz-cables.tls=true" - "traefik.http.routers.klz-cables.service=klz-cables" - "traefik.http.services.klz-cables.loadbalancer.server.port=3000" - "traefik.http.services.klz-cables.loadbalancer.server.scheme=http" # Forwarded Headers - "traefik.http.middlewares.klz-forward.headers.customrequestheaders.X-Forwarded-Proto=https" - "traefik.http.middlewares.klz-forward.headers.customrequestheaders.X-Forwarded-Ssl=on" # Middlewares - "traefik.http.routers.klz-cables.middlewares=klz-forward,compress" networks: infra: external: true