1
Prerequisites
- Python 3.12+
- uv — the package manager MAEL’s
lockfile (
uv.lock) is built against - Docker + Docker Compose, for local infrastructure only
2
Configure environment
CHANGE_ME values in .env:3
Start infrastructure
pgvector/pgvector:pg16 — never plain
postgres, the RLS roles come from docker/init/postgres-init.sql),
Redis 7.2, Vault 1.16 in dev mode, and PgBouncer.4
Run migrations
database/migrations/versions/ — never
edit an already-applied one; every change is a new revision.5
Seed the platform registry
agents/*/*/agent.py),
workflow definitions, and the prompt registry in one pass.6
Bootstrap your first admin
No user exists yet on a fresh install, and the normal user-creation
endpoint requires an authenticated caller — so there’s a one-time,
out-of-band script that breaks the deadlock:Idempotent: if a
super_admin already exists, it exits cleanly without
making changes. Use POST /api/v1/users for every user after this one.7
Start the API
8
Log in and make your first call
access_token as a bearer token against any endpoint
in the API Reference.What’s next
Run your first agent
Walk through triggering
keyword-research end to end.Understand the architecture
How the pieces you just started fit together.
Onboard a tenant
Provision a client tenant + domain with
onboard_client.py.Deploy for real
Docker Compose on a VPS, or Kubernetes at scale.