version: '3.8' 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", "-f", "http://localhost:8080/health"] interval: 30s timeout: 10s retries: 3 caddy: image: caddy:2 ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./frontend/dist:/usr/share/caddy command: caddy run --config /etc/caddy/Caddyfile --adapter caddyfile depends_on: - backend restart: unless-stopped volumes: backend-data: