Files
ciaovolo/flight-comparator/docker-compose.yml
domverse cde496ad48
All checks were successful
Deploy / deploy (push) Successful in 11s
infra: fix CORS, add monitoring and dashboard labels
- Set ALLOWED_ORIGINS to production domain (fixes CORS for the web app)
- Add LOG_LEVEL=INFO to backend
- Add AutoKuma monitoring labels for Uptime Kuma auto-discovery
- Add Homepage dashboard labels (Productivity group)

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

64 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.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