diff --git a/docker-compose.local.yml b/docker-compose.local.yml new file mode 100644 index 00000000..e9f6ecf3 --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,58 @@ +services: + app: + image: cpmp:local + container_name: cpmp-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: + - CPM_ENV=development + - CPMP_DEBUG=1 + - TZ=America/New_York + - CPM_HTTP_PORT=8080 + - CPM_DB_PATH=/app/data/cpm.db + - CPM_FRONTEND_DIR=/app/frontend/dist + - CPM_CADDY_ADMIN_API=http://localhost:2019 + - CPM_CADDY_CONFIG_DIR=/app/data/caddy + - CPM_CADDY_BINARY=caddy + - CPM_IMPORT_CADDYFILE=/import/Caddyfile + - CPM_IMPORT_DIR=/app/data/imports + - CPM_ACME_STAGING=false + extra_hosts: + - "host.docker.internal:host-gateway" + cap_add: + - SYS_PTRACE + security_opt: + - seccomp:unconfined + volumes: + - cpm_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: + cpm_data_local: + driver: local + caddy_data_local: + driver: local + caddy_config_local: + driver: local + +networks: + default: + name: containers_default + external: true