services: backend: build: context: . dockerfile: Dockerfile.backend ports: - "8080:8080" environment: - PORT=8080 - JWT_SECRET=${JWT_SECRET} - DB_PATH=/data/app.db - MODE=release - OPEN_API_KEY=${OPEN_API_KEY} - OPEN_API_SECRET=${OPEN_API_SECRET} - OPEN_SIGN_SKEW=${OPEN_SIGN_SKEW:-300} - OPEN_API_DEBUG=${OPEN_API_DEBUG:-false} - LOG_FILE=/data/app.log volumes: - backend-data:/data restart: unless-stopped healthcheck: test: ["CMD", "curl", "-fsS", "http://localhost:8080/health"] interval: 30s timeout: 10s retries: 3 caddy: image: ${CADDY_RUNTIME_IMAGE:-affiliate-caddy:2} pull_policy: never ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./frontend/dist:/usr/share/caddy - caddy-data:/data - caddy-config:/config command: caddy run --config /etc/caddy/Caddyfile --adapter caddyfile depends_on: backend: condition: service_healthy restart: unless-stopped volumes: backend-data: caddy-data: caddy-config: