services: app-1440-news: build: . container_name: app-1440-news restart: unless-stopped env_file: - pds.env volumes: - ./feeds:/app/feeds - ./vertices.txt.gz:/app/vertices.txt.gz:ro networks: - proxy labels: - "traefik.enable=true" # Production: HTTPS with Let's Encrypt - "traefik.http.routers.app-1440-news.rule=Host(`app.1440.news`)" - "traefik.http.routers.app-1440-news.entrypoints=https" - "traefik.http.routers.app-1440-news.tls.certresolver=letsencrypt-dns" # Production: HTTP to HTTPS redirect - "traefik.http.routers.app-1440-news-redirect.rule=Host(`app.1440.news`)" - "traefik.http.routers.app-1440-news-redirect.entrypoints=http" - "traefik.http.routers.app-1440-news-redirect.middlewares=https-redirect" - "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https" - "traefik.http.middlewares.https-redirect.redirectscheme.permanent=true" # Local development: HTTP only - "traefik.http.routers.app-1440-news-local.rule=Host(`app.1440.localhost`)" - "traefik.http.routers.app-1440-news-local.entrypoints=http" # Shared service - "traefik.http.services.app-1440-news.loadbalancer.server.port=4321" networks: proxy: external: true