Skip to content

Deployment

Environments

Environment What runs When
Local Docker Compose for PostgreSQL, Redis, MinIO; API, worker and web on the host From Sprint 1
Staging Containerized web, API and worker; PostgreSQL and Redis; Caddy for TLS; separate keys From Sprint 7 (KAN-113)
Release candidate Tagged build on staging with runbook and tested rollback 26 Feb 2027 (KAN-136)

Pipeline

flowchart LR
  J[Jira story KAN-123] --> B[branch feature/KAN-123-name]
  B --> PR[PR 'KAN-123: ...']
  PR --> CI[CI: lint, types, unit, integration]
  CI --> RV[1 review, 2 for data model]
  RV --> M[squash-merge to main]
  M --> S[auto-deploy to staging]
  S --> SM[smoke + benchmark checks]

Secrets

  • API keys hashed with argon2 and shown once.
  • Provider secrets encrypted at rest (Fernet, master key from the environment) and never returned.
  • Staging uses its own keys. Nothing secret is committed.

Documentation site

This site is built with MkDocs Material and published to GitHub Pages by .github/workflows/docs.yml on every push to main that touches docs/ or mkdocs.yml.

One-time setup: Settings → Pages → Build and deployment → Source: GitHub Actions.

Runbook

The staging runbook (deploy, rollback, rotate keys, restore database) is written in Sprint 7 and linked here.