Quick Start
Prerequisites
Section titled “Prerequisites”| Requirement | Minimum version |
|---|---|
| Python | 3.14.x |
| Poetry | 1.8 |
| Docker + Compose | any recent version (for MongoDB) |
1. Check out the workspace
Section titled “1. Check out the workspace”The quickstart docker-compose.yaml lives at the workspace root, one level above
OpenTremor-core — it bind-builds OpenTremor-core, both Terraform analyzer repos,
OpenTremor-dashboard, and OpenTremor-docs as siblings, all behind one HAProxy front
door. Clone or check out all five repos side by side, then run everything from that
root directory.
2. Start the full stack
Section titled “2. Start the full stack”A ready-to-use config (configs/opentremor-local.yaml, at the workspace root) is
included — no manual MongoDB initialisation needed, mongodb’s indexes are created on
first boot. It’s mounted read-only into the core container and shared with
docker-compose.dev.yaml, so both local stacks read one file; see configs/README.md
for why the per-repo configs still carry their own copy of the dev credentials.
docker compose up --buildThe --build flag builds opentremor-core-test:latest (core + both analyzers, a
local-test-only bundled image), opentremor-dashboard:latest, and
opentremor-docs-test:latest on first run. Subsequent starts can omit it: docker compose up.
Everything is served through HAProxy at one URL:
| Service | URL |
|---|---|
| Everything (API, dashboard, docs) | http://localhost:8080 |
| OpenTremor Core API directly | http://localhost:8000 |
| Dashboard directly | http://localhost:3001 |
| Docs directly | http://localhost:4321 |
Hitting a service’s own port directly still renders pages, but client-side calls that
assume HAProxy’s routing won’t resolve — use :8080 for the real thing.
1. Install dependencies
Section titled “1. Install dependencies”poetry install2. Start MongoDB
Section titled “2. Start MongoDB”docker compose up mongodb -d3. Initialise the database
Section titled “3. Initialise the database”poetry run python src/tools/init_mongo.py4. Start the server
Section titled “4. Start the server”poetry run uvicorn opentremor_core.controllers.app:app --reloadOr use the bundled entrypoint:
poetry run python src/server.py| Variable | Default | Description |
|---|---|---|
CONFIG_FILE | configs/opentremor-core-local.yaml | Path to the YAML config |
HOST | 0.0.0.0 | Bind address |
PORT | 8000 | Bind port |
For quick experiments or running tests without MongoDB:
# whichever config your CONFIG_FILE points at — e.g. opentremor-core-local.yamlstorage: backend: "memory"Verify the server
Section titled “Verify the server”curl http://localhost:8000/health# {"status": "healthy", "timestamp": "..."}
curl http://localhost:8000/analyzers# {"analyzers": [{"name": "terraform-plan", "description": "..."}, {"name": "terraform-code-change", ...}]}