Docker Compose is the fastest way to get the full stack running. All six services start with a single command.Documentation Index
Fetch the complete documentation index at: https://cognisafeltd.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- Docker Engine 24+ and Docker Compose v2
- Git
Steps
Configure environment variables
.env and fill in the required values:Start the stack
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.Open the dashboard
Navigate to http://localhost:3000.The proxy is available at http://localhost:8080 and the API at http://localhost:8000.
Services
| Service | Port | Role |
|---|---|---|
postgres | 5432 | TimescaleDB — primary datastore |
redis | 6379 | Job queue (safety_score_jobs) |
migrate | — | One-shot: runs alembic upgrade head and exits |
api | 8000 | FastAPI backend — REST API and Stripe webhooks |
safety_worker | — | PyRIT scoring worker |
proxy | 8080 | Go LLM reverse proxy |
web | 3000 | Next.js dashboard |
Scaling safety workers
Thesafety_worker is stateless and horizontally scalable. Increase throughput by running multiple instances:
Updating
migrate service on startup.
Stripe local webhook forwarding
To test billing flows locally, forward Stripe webhooks to your local API:STRIPE_WEBHOOK_SECRET in .env, then restart the API service.

