Start
scripts/compose/init-env.sh
scripts/compose/up.shCompose automatically reloads the gitignored .env file for later commands and restarts. Preserve it while existing encrypted sessions must remain valid.
The development stack starts one runtime-agent named local-docker beside docker-proxy. Container job claims use that registered runtime endpoint, so the same runtime ownership path is exercised locally even though there is only one Docker daemon.
Exposed ports
| Component | Port |
|---|---|
| Dashboard | 3001 |
| API | 8080 |
| LGTM Grafana | — (not host-published by default; compose.grafana.yaml → 127.0.0.1:${GRAFANA_HOST_PORT:-3000}:3000 or kubectl -n chronoverse port-forward svc/lgtm 3000:3000) |
| OTLP gRPC | 4317 |
| PostgreSQL | 5432 |
| ClickHouse TLS | 9440 |
| Redis TLS | 6379 |
| Meilisearch HTTPS | 7700 |
| Kafka SSL | 9094 |
| gRPC services | 50051–50055 |
Inspect
docker compose -f compose.dev.yaml ps
docker compose -f compose.dev.yaml logs -f server
docker compose -f compose.dev.yaml logs -f execution-worker
docker compose -f compose.dev.yaml logs -f runtime-agentRebuild one service
docker compose -f compose.dev.yaml up -d --build jobs-serviceChanges to the shared Docker client package require rebuilding all three consumers so endpoint migration, mTLS, and certificate reload behavior stay in sync:
docker compose -f compose.dev.yaml build runtime-agent workflow-worker execution-worker
docker compose -f compose.dev.yaml up -d --no-deps --force-recreate runtime-agent workflow-worker execution-workerReset local state
docker compose -f compose.dev.yaml down -vThis removes databases, Kafka data, and generated certificate volumes. Use it only for an intentional clean reset.
