- Implemented CrowdSec process management with start, stop, and status endpoints. - Added import functionality for CrowdSec configuration files with backup support. - Introduced a new FeatureFlagsHandler to manage feature flags with database and environment variable fallback. - Created tests for CrowdSec handler and feature flags handler. - Updated routes to include new feature flags and CrowdSec management endpoints. - Enhanced import handler with better error logging and diagnostics. - Added frontend API calls for CrowdSec management and feature flags. - Updated SystemSettings page to manage feature flags and CrowdSec controls. - Refactored logs and other components for improved functionality and UI consistency.
62 lines
1.8 KiB
YAML
62 lines
1.8 KiB
YAML
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:/app/data
|
|
- caddy_data:/data
|
|
- caddy_config:/config
|
|
- crowdsec_data:/app/data/crowdsec
|
|
- /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)
|
|
# - <PATH_TO_YOUR_CADDYFILE>:/import/Caddyfile:ro
|
|
# - <PATH_TO_YOUR_SITES_DIR>:/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:
|
|
driver: local
|
|
caddy_data:
|
|
driver: local
|
|
caddy_config:
|
|
driver: local
|
|
crowdsec_data:
|
|
driver: local
|
|
|
|
networks:
|
|
default:
|
|
name: containers_default
|
|
external: true
|