# Сервер: поверх docker-compose.yml (без override). В .env сервера: # COMPOSE_FILE=docker-compose.yml:docker-compose.prod.yml # Наружу открыт только Caddy (80 и 443): он сам получает сертификат Let's Encrypt для SITE_ADDRESS # и проксирует всё на web. База слушает только 127.0.0.1, api/tiles/s3 — только внутри docker. services: caddy: image: caddy:2.10-alpine container_name: patrol_caddy restart: unless-stopped depends_on: - web ports: - "80:80" - "443:443" - "443:443/udp" environment: SITE_ADDRESS: ${SITE_ADDRESS} volumes: - ./docker/Caddyfile:/etc/caddy/Caddyfile:ro - patrol_caddy_data:/data - patrol_caddy_config:/config volumes: patrol_caddy_data: patrol_caddy_config: