Local Setup Guide
This is the canonical local startup guide for Decision Engine.Prerequisites
- Docker 20+
- Docker Compose v2+
- Git 2+
- Rust 1.85+
- PostgreSQL or MySQL
- Redis
just— required for PostgreSQL source runs (just migrate-pg); MySQL can usediesel migration rundirectly
Runtime Tracks
Decision Engine supports two local tracks:- Published-image track — pull existing images.
- Local-build track — build images or binaries from the current source tree.
DECISION_ENGINE_TAG=v1.4GROOVY_RUNNER_TAG=v1.4
Docker Compose Profiles
You must pass at least one profile.Core runtime profiles
Dashboard profiles
Optional profiles
Fastest Bring-Up
One-Command Local Dev
For local source-run development with the full PostgreSQL analytics stack:- source-run validation through
oneclick.sh - Docker Compose validation through
dashboard-postgres-local - the full Cypress API/UI/docs smoke contract against both modes
- starts PostgreSQL, Redis, Kafka, ClickHouse, and the analytics init jobs with Docker Compose
- waits for infra health
- runs PostgreSQL migrations
- starts the API locally with
cargo run --no-default-features --features postgres - starts the dashboard locally with Vite on
http://localhost:5173/
Ctrl+C stops the local API/dashboard processes and any infra services that oneclick.sh
started itself. To keep infra running after exit:
API Only
API + Dashboard + Docs
With Monitoring
Make Targets
Common wrappers:Analytics Bootstrap
The Kafka to ClickHouse analytics path is bootstrapped automatically.- Kafka topics are created by
kafka-init - ClickHouse loads analytics SQL from
clickhouse/scripts/on first boot - analytics data is stored in the named Docker volume
clickhouse-data - normal restarts keep analytics history intact
Source Build And Run
PostgreSQL
MySQL
Docker Builds Without Compose
Helm
Chart location:helm-charts/
helm dependency update, not helm dependency build — the committed Chart.lock digest can drift out of sync with Chart.yaml, and build fails hard on any mismatch (Error: the lock file (Chart.lock) is out of sync with the dependencies file). update re-resolves and re-fetches the postgresql, mysql, and redis subcharts from the Bitnami repo unconditionally.
For image overrides, use image.repository, image.version, and image.pullPolicy. Verify with helm install --dry-run or helm template before applying to a cluster.
Verification
- Dashboard:
http://localhost:8081/dashboard/ - Docs:
http://localhost:8081/introduction - API examples:
http://localhost:8081/api-refs/api-ref
- Prometheus:
http://localhost:9090 - Grafana:
http://localhost:3000
Troubleshooting
Recreate a profile with clean volumes
Inspect migration jobs
Inspect analytics infrastructure
Common Next Files To Inspect
docker-compose.yamlconfig/docker-configuration.tomlsrc/config.rssrc/app.rs