Your infrastructure. Your control plane.

Self-host the whole control plane.

Run the full control plane — Postgres state-of-record, the shared brain, governance, and an Envoy edge — inside your own network. Your code and audit trail never leave your infrastructure.

The self-host source is in private preview. Request access and we'll send the deploy bundle and walk you through it.

Scripted bring-up

docker-compose, scripted and health-checked.

The whole stack is defined in docker-compose.selfhost.yml and brought up by scripts/selfhost-up.sh, which validates env, generates secrets, and waits for health. Once you have the deploy bundle, bring-up looks like this:

your-host · bash
# in the deploy bundle directory
cp .env.selfhost.example .env.selfhost

# validates env, generates secrets, waits for health
scripts/selfhost-up.sh

The source repo is in private preview. Request access to get the deploy bundle.

1

Clone and configure

Copy .env.selfhost.example to .env.selfhost. The up-script generates safe secrets and validates required env before anything starts.

2

Bring it up

scripts/selfhost-up.sh builds the backend image, starts Postgres, Redis, Qdrant, and Envoy, and waits for every service to report healthy.

3

Run governed

Point your agents at your own control plane. State, audit, and memory all live on your infrastructure — your code never leaves.

Architecture

A control plane on a Postgres state-of-record, behind Envoy.

The backend is the product. Postgres is the durable record for tasks, runs, approvals, and audit. Redis carries the A2A bus, Qdrant holds the brain, and Envoy is the L7 edge in front of it all.

ServiceImageRole
backendbackend (built)The Recoder control plane — the product itself.
postgrespostgres:17State of record: recoder_main, recoder_backend, recoder_pm.
redisredis:7Sessions and the A2A coordination bus.
qdrantqdrant/qdrantVector store for the shared brain (memory / embeddings).
envoyenvoyproxy/envoy:v1.31L7 edge proxy in front of the control plane.
Machine image

Or boot it from a baked image.

A Packer template bakes Docker, the compose stack, and the pinned substrate binaries into a machine image. It builds a real AMI for AWS, or provisions any reachable host over SSH using the exact same provisioner — so bare metal, a VM, or a CI runner all follow one path. A booted instance runs Recoder via a systemd unit.

packer
packer init deploy/packer/recoder.pkr.hcl
packer validate deploy/packer/recoder.pkr.hcl

# build a publishable AMI
packer build -only='amazon-ebs.recoder' deploy/packer/recoder.pkr.hcl

Need SSO, seats, and support on top of self-host?

Self-hosting is open to everyone. Enterprise adds single sign-on, per-seat management, governance approvals, and direct support.