services: caddy: image: caddy:2-alpine container_name: caddy restart: unless-stopped depends_on: - alloy ports: - "80:80" - "443:443" - "443:443/udp" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - ${DATA_ROOT}/caddy/data:/data - ${DATA_ROOT}/caddy/config:/config networks: - proxy logging: driver: json-file options: max-size: "10m" max-file: "3" healthcheck: test: ["CMD", "caddy", "validate", "--config", "/etc/caddy/Caddyfile"] interval: 30s timeout: 5s retries: 3 networks: proxy: external: true