Skip to main content
Docker Compose is the fastest way to get the full stack running. All six services start with a single command.

Prerequisites

  • Docker Engine 24+ and Docker Compose v2
  • Git

Steps

1

Clone the repository

2

Configure environment variables

Open .env and fill in the required values:
For local development without Stripe, leave the Stripe vars blank — billing routes will return errors but all other functionality works.
3

Start the stack

On first run, Docker pulls the images and the migrate service runs alembic upgrade head to initialise the database schema before the API starts.
The migrate service is a one-shot container. It runs database migrations and exits with code 0. If you see it listed as “exited” in docker compose ps, that is expected — it completed successfully.
4

Open the dashboard

Navigate to http://localhost:3000.The proxy is available at http://localhost:8080 and the API at http://localhost:8000.
5

Point your SDK at the local stack

Services

Scaling safety workers

The safety_worker is stateless and horizontally scalable. Increase throughput by running multiple instances:
Each worker independently reads from the Redis queue. Three workers process three scoring jobs concurrently.

Updating

Database migrations run automatically via the migrate service on startup.

Stripe local webhook forwarding

To test billing flows locally, forward Stripe webhooks to your local API:
Copy the webhook signing secret printed by the CLI into STRIPE_WEBHOOK_SECRET in .env, then restart the API service.

Running in detached mode