# CCS Dashboard Docker Compose # See docker/README.md for documentation services: ccs-dashboard: image: ccs-dashboard:latest build: context: .. dockerfile: docker/Dockerfile restart: unless-stopped init: true ports: - "${CCS_DOCKER_BIND_HOST:-127.0.0.1}:${CCS_DASHBOARD_PORT:-3000}:3000" - "${CCS_DOCKER_BIND_HOST:-127.0.0.1}:${CCS_CLIPROXY_PORT:-8317}:8317" environment: CCS_PORT: 3000 CCS_DEBUG: "${CCS_DEBUG:-}" NO_COLOR: "${NO_COLOR:-}" CCS_SKIP_PREFLIGHT: "${CCS_SKIP_PREFLIGHT:-}" CCS_WEBSEARCH_SKIP: "${CCS_WEBSEARCH_SKIP:-}" CCS_PROXY_HOST: "${CCS_PROXY_HOST:-}" CCS_PROXY_PORT: "${CCS_PROXY_PORT:-}" CCS_PROXY_PROTOCOL: "${CCS_PROXY_PROTOCOL:-}" CCS_PROXY_AUTH_TOKEN: "${CCS_PROXY_AUTH_TOKEN:-}" CCS_PROXY_TIMEOUT: "${CCS_PROXY_TIMEOUT:-}" CCS_PROXY_FALLBACK_ENABLED: "${CCS_PROXY_FALLBACK_ENABLED:-}" CCS_ALLOW_SELF_SIGNED: "${CCS_ALLOW_SELF_SIGNED:-}" volumes: - ccs_home:/home/node/.ccs - claude_home:/home/node/.claude - opencode_home:/home/node/.opencode - grok_home:/home/node/.grok-cli # Healthcheck uses internal ports (3000/8317) which are fixed healthcheck: test: ["CMD-SHELL", "curl -fsS --max-time 2 http://localhost:3000/ >/dev/null && curl -sS --max-time 2 http://127.0.0.1:8317/ >/dev/null"] interval: 10s timeout: 3s retries: 12 start_period: 30s # Resource limits (adjust based on workload) deploy: resources: limits: memory: 1G cpus: '2' reservations: memory: 256M cpus: '0.5' volumes: ccs_home: claude_home: opencode_home: grok_home: