Files
ciaovolo/flight-comparator/docker-compose.yml
domverse d494e80ff7
All checks were successful
Deploy / deploy (push) Successful in 11s
fix: force Traefik to use domverse network for routing
When a container is attached to multiple networks, Traefik picks an IP
from any of them. The frontend is on both domverse and flight-radar_default;
Traefik isn't on the latter, so ~50% of requests 504 after 30s.

Adding traefik.docker.network=domverse pins routing to the shared network.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 16:05:17 +01:00

65 lines
2.1 KiB
YAML

name: flight-radar # pins the project name — must match COMPOSE_PROJECT in .gitea/workflows/deploy.yml
services:
backend:
build:
context: .
dockerfile: Dockerfile.backend
container_name: flight-radar-backend
restart: unless-stopped
environment:
- DATABASE_PATH=/app/data/cache.db
- ALLOWED_ORIGINS=https://flights.domverse-berlin.eu
- LOG_LEVEL=INFO
volumes:
- flight-radar-data:/app/data
networks:
- default
- domverse
# No ports exposed — only reachable by the frontend via nginx proxy
frontend:
build:
context: .
dockerfile: Dockerfile.frontend
container_name: flight-radar-frontend
restart: unless-stopped
depends_on:
- backend
networks:
- default # shares default compose network with backend (nginx → http://backend:8000)
- domverse # Traefik discovers the container on this network
labels:
# Traefik routing
- "traefik.docker.network=domverse"
- "traefik.enable=true"
- "traefik.http.routers.flight-radar.rule=Host(`flights.domverse-berlin.eu`)"
- "traefik.http.routers.flight-radar.entrypoints=https"
- "traefik.http.routers.flight-radar.tls.certresolver=http"
- "traefik.http.routers.flight-radar.middlewares=authentik@docker"
- "traefik.http.services.flight-radar.loadbalancer.server.port=80"
# AutoKuma monitoring
- "kuma.flight-radar.http.name=Flight Radar"
- "kuma.flight-radar.http.url=https://flights.domverse-berlin.eu"
- "kuma.flight-radar.http.interval=60"
- "kuma.flight-radar.http.max_retries=2"
- "kuma.flight-radar.http.retry_interval=60"
# Homepage dashboard
- "homepage.group=Productivity"
- "homepage.name=Flight Radar"
- "homepage.icon=mdi-airplane"
- "homepage.href=https://flights.domverse-berlin.eu"
- "homepage.description=Flight price comparison tool"
- "homepage.weight=20"
volumes:
flight-radar-data:
driver: local
networks:
default: {} # explicit declaration required when any service has a custom networks block
domverse:
external: true