Prerequisites
- Docker with Compose v2.
- Git.
- An Anthropic API key and an OpenAI API key (the orchestrator forwards these to engine containers).
- A GitHub PAT with read access to
septemberai/engine(only needed at image build time).
Step 1 — Clone and configure
.env from the template:
.env and set, at minimum:
Step 2 — Build the engine image
The orchestrator launches engine containers from a local image. Build it once:september-engine:2.3.0, which matches
ORCH_ENGINE_IMAGE above.
Step 3 — Start the orchestrator
From the bap-engine repo root:Step 4 — Confirm the orchestrator is up
/health is the only endpoint that doesn’t require auth.
Step 5 — Register a product
The orchestrator is multi-product. Before you can provision engines, register a product. This call requiresX-Admin-Key (the
ORCH_ADMIN_KEY you set in step 1).
platform_api_key. It’s the only time the orchestrator
returns it. Set it as an env var for convenience:
Step 6 — Admit a user
POST /engines/{user_id}/admit is the primary entry point. It
checks policy, auto-provisions if allowed, and returns the engine
URL + key.
Step 7 — Talk to the Engine
The product (you, in this example) calls the Engine directly. The orchestrator stays out of the data path.127.0.0.1:9001 only (the default
in docker-compose.yml), the URL above works from your host machine.
From other containers in the same Docker network, use the engine’s
container hostname.
Step 8 — Observe the fleet
Step 9 — Shut it down
What you’ve just done
You’ve run the full path a real product takes. The orchestrator stood up a fresh Engine, gave you a URL + key, and watched its health. The Engine ran an SSE turn against the LLM. When you were done, you tore it down cleanly. Everything that lives in production lives in this loop. Production deploys add: TLS upstream of the orchestrator, a real secret manager, a backup strategy for the Postgres + brain volumes, and observability.Where to go next
- Architecture — what’s actually running inside the orchestrator container.
- Engine contract — the contract the engine promises to fulfill.
- Deploy — production setup.
- API reference — every endpoint.

