DocsDeploymentDeployment overview

Deployment overview

Development and production topology.

Chronoverse ships Docker Compose topologies and Kubernetes Kustomize overlays.

Development

compose.dev.yaml builds local images and exposes infrastructure, API, dashboard, gRPC, and OTLP ports for debugging. Grafana is private by default; compose.grafana.yaml provides an opt-in loopback-only UI binding.

Production

compose.prod.yaml uses GHCR application images, keeps services on internal networks, applies resource constraints, runs replicated worker groups, and publishes only Nginx. Grafana remains internal unless the loopback override or a Kubernetes port-forward is used.

infra/k8s/overlays/local provides a self-contained single-node Kubernetes profile for validation. infra/k8s/overlays/production provides the self-hosted Kubernetes deployment shape with in-cluster PostgreSQL, Redis, Kafka, ClickHouse, Meilisearch, runtime-agent, services, workers, dynamic PVCs, and HPAs.

Startup phases

  1. Bootstrap trust
    Generate the local CA, service certificates, client certificates, Kafka stores, and Ed25519 keys.
  2. Start infrastructure
    Bring PostgreSQL, ClickHouse, Redis, Meilisearch, Kafka, LGTM, Docker proxy, and runtime-agent to healthy state.
  3. Prepare schemas
    Create Kafka topics and run PostgreSQL, ClickHouse, and Meilisearch migrations.
  4. Start application
    Bring up gRPC services, workers, the HTTP server, dashboard, and production Nginx.

Deployment boundary

Compose remains the quickest full-stack path. Kubernetes support is provided through Kustomize and scripts/k8s/setup.sh; production operators own storage class selection, secret lifecycle, ingress hostnames, and Docker-capable runtime nodes.