Skip to content

Deployment Decision Guide

nguyen.david edited this page Aug 13, 2026 · 1 revision

Deployment Decision Guide

Choose a topology from trust boundaries and recovery needs, not from user count alone. CCAM's persistence rule is constant: exactly one active dashboard writer per SQLite volume.

Decision table

Situation Recommended path Why
One developer, one machine Native local install or desktop app Lowest complexity; loopback is the trust boundary
One always-on host, small trusted team Docker/Podman Compose behind TLS Reproducible services and straightforward volume backup
Existing cluster and platform operations Helm or Kustomize Persistent volume, secrets, probes, network policy, controlled rollout
Repeatable deployment into an existing cluster Terraform wrapping the Helm chart Infrastructure workflow without changing CCAM's single-writer model
Several developer machines One central instance plus remote sources or authenticated remote hooks Consolidated view without multiple writers

Do not use HPA, active-active replicas, blue/green dashboard writers, or shared concurrent writers against one database. Availability comes from retained storage, verified backups, quick replacement, and rollback.

Local baseline

npm run setup
npm run build
npm start

Keep the default loopback bind unless another machine genuinely needs access.

Compose baseline

Dashboard only:

docker compose up -d --build

Full local operations stack:

npm run docker:full:up
npm run monitoring:verify

The supplied services bind to loopback by default. Explicitly design TLS, tokens, and edge routing before changing that.

Kubernetes baseline

Use one replica, a ReadWriteOnce persistent volume, Recreate-style ownership transfer, externalized secrets, and an immutable image tag or digest. Run:

npm run deploy:validate

before deployment. The repository chart and manifests encode the one-writer constraint.

Production readiness gate

  • One and only one dashboard writer can mount the database.
  • Dashboard, hook, and MCP tokens are distinct.
  • Public traffic terminates TLS.
  • Hooks and MCP are exposed only if required.
  • Backup and restore were tested, not merely configured.
  • Health and metrics are monitored.
  • Rollback uses a known image and preserves the database.
  • Transcript/database access is limited to trusted operators.

Exact manifests and commands: Deployment reference.

Clone this wiki locally