Skip to content

Operate Caracal

Use this section when you own a Caracal deployment. These runbooks describe behavior present in this repository; they do not promise an availability level, managed service, or compliance outcome.

The runbooks follow the deployment lifecycle. Work down the phases for a new deployment; jump straight to a phase for day-to-day operations.

Deploy - pick a substrate and stand the stack up:

NeedRunbook
Choose a substrateChoose a Deployment Profile
Review measured performance, sizing, and failure resultsPerformance and Scalability
Run one Docker hostDeploy with Docker Compose
Deploy the repository chartDeploy with Helm
Provision chart or VM bootstrap declarativelyProvision with OpenTofu
Map managed cloud services to the chartChoose a Cloud Profile and Deploy on Managed Kubernetes
Hand a reviewed deployment package to another teamPackage an Install Kit

Configure and secure - before real credentials or traffic:

NeedRunbook
Set service variables and secretsConfigure Service Environment
Choose where sealed credentials are storedConfigure Secret Backends
Pass the pre-production hardening checklistHarden Production
Rotate keys, HMACs, and service tokensRotate Keys and Secrets
Operate the durable storesOperate PostgreSQL and Operate Redis Streams
Size and scale servicesScale Capacity

Observe - know the deployment is healthy before users tell you it is not:

NeedRunbook
Wire health, readiness, and metricsMonitor Health and Metrics
Alert on measured thresholdsConfigure Alerts
Diagnose a failed requestTroubleshoot by Symptom
Diagnose unhealthy infrastructureDebug Infrastructure Issues

Recover - when something is wrong or before it can be:

NeedRunbook
Recover a known failureRecover from Failures
Prove recovery works before you need itRun Failure Drills
Back up or restore Compose stateBack Up and Retain Data
Handle a security or availability incidentRespond to Incidents

Change - roll out versions, policy, and responsibility:

NeedRunbook
Change versionsUpgrade Caracal
Roll out infrastructure changesPlan a Platform Rollout
Activate policy changes safelyDeploy Policy Changes
Export audit evidence for compliance toolingExport Audit Evidence
Transfer operational ownershipHand Off to Platform Teams
  • Postgres is the durable system of record. Redis carries streams and correctness-critical revocation state.
  • dev is local-development posture. rc and stable enforce published-mode configuration; rc is not a production stability claim.
  • Compose publishes service ports on loopback. Expose them only through an operator-owned TLS proxy.
  • Helm and OpenTofu are deployment assets, not a managed Kubernetes, HA, backup, or SLO service.
  • Runtime lifecycle belongs to caracal up, down, status, upgrade, and purge. Product administration belongs to the web console, Admin SDK, or Control API.

For Compose, run caracal status --ready. For Kubernetes, inspect Jobs and pod readiness, then test required service endpoints. /health proves liveness; only /ready is a traffic gate.

Before a risky change, retain the current version, configuration, data backup, and secrets backup. Database migrations are forward-only; application rollback is safe only when the older version accepts the migrated schema.

Choose the substrate in Choose a Deployment Profile.