services: charon: image: charon:local container_name: charon-debug restart: unless-stopped ports: - "80:80" # HTTP (Caddy proxy) - "443:443" # HTTPS (Caddy proxy) - "443:443/udp" # HTTP/3 (Caddy proxy) - "8080:8080" # Management UI (CPM+) - "2345:2345" # Delve Debugger environment: - CHARON_ENV=development - CHARON_DEBUG=1 - TZ=America/New_York - CHARON_HTTP_PORT=8080 - CHARON_DB_PATH=/app/data/charon.db - CHARON_FRONTEND_DIR=/app/frontend/dist - CHARON_CADDY_ADMIN_API=http://localhost:2019 - CHARON_CADDY_CONFIG_DIR=/app/data/caddy - CHARON_CADDY_BINARY=caddy - CHARON_IMPORT_CADDYFILE=/import/Caddyfile - CHARON_IMPORT_DIR=/app/data/imports - CHARON_ACME_STAGING=false extra_hosts: - "host.docker.internal:host-gateway" cap_add: - SYS_PTRACE security_opt: - seccomp:unconfined volumes: - charon_data_local:/app/data - caddy_data_local:/data - caddy_config_local:/config - /var/run/docker.sock:/var/run/docker.sock:ro # For local container discovery - ./backend:/app/backend:ro # Mount source for debugging # Mount your existing Caddyfile for automatic import (optional) # - :/import/Caddyfile:ro # - :/import/sites:ro # If your Caddyfile imports other files healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/api/v1/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s volumes: charon_data_local: driver: local caddy_data_local: driver: local caddy_config_local: driver: local networks: default: name: containers_default external: true