Installation
Install and run bigRAG using Docker Compose or from source.
Prerequisites
- Docker and Docker Compose (recommended)
- Python 3.12+ and uv (for running the backend from source)
- An OpenAI, Cohere, Voyage, or OpenAI-compatible API key for embeddings
- A Turbopuffer API key for managed vector, keyword, and hybrid search
Install
The fastest way to get started. One command starts the full stack:
docker compose up -dThis starts:
- bigRAG API on port
4000(Swagger docs at/docs) - Admin UI on port
3000 - PostgreSQL for metadata on port
5432 - Redis for the ingestion queue on port
6379
Turbopuffer is configured from the admin UI after setup and provides the managed search backend; it is not a local Compose service.
Pre-built images are published to Docker Hub:
docker pull yoginth/bigrag-api:2026.4.30
docker pull yoginth/bigrag-ui:2026.4.30Release artifacts use CalVer (YYYY.M.D). Docker also publishes latest for convenience, but production deployments should pin the dated tag.
Start infrastructure services
docker compose up postgres redis -dInstall and run the backend
cd api
uv sync
uv run python -m bigrag.mainOr with pip:
cd api
python -m venv .venv && source .venv/bin/activate
pip install -e .
python -m bigrag.mainDevelopment Mode
The easiest way to start everything for development:
./dev.shThis script:
- Kills stale processes on port 4000 and old local
bigrag-workerprocesses. - Validates required commands (
docker,curl,uv). - Starts Docker services (Postgres and Redis) and waits for readiness.
- Installs Python dependencies with
uv. - Starts the backend with auto-reload and a bounded
/healthstartup probe. - Starts
bigrag-workerwith five Dramatiq processes on Redis. - Gracefully stops everything on Ctrl+C.
If the admin UI shows bigrag-worker is offline, check the terminal for the colored work log stream. Each worker-side log line includes the active Dramatiq process label and PID, such as worker=worker-1 pid=12345. Override the local process count with BIGRAG_WORKER_PROCESSES and thread count with BIGRAG_WORKER_THREADS. A healthy local worker should keep running and /v1/stats should report a recent worker heartbeat for the signed-in admin session.
Verify
curl http://localhost:4000/health
# → {"status": "ok", "version": "2026.4.30"}Interactive Swagger docs are available at http://localhost:4000/docs once the server is running. Database migrations run automatically on startup.