Docker Compose
The easiest way to self-host Nimbus. One command starts the backend and frontend together.
Prerequisites
- Docker 24+
- Docker Compose 2.20+
Setup
Clone the repo:
git clone https://github.com/arpjw/nimbus.git
cd nimbus
Create your .env file:
cp .env.example .env
Edit .env with your API keys:
ANTHROPIC_API_KEY=sk-ant-...
VOYAGE_API_KEY=pa-...
GITHUB_TOKEN=ghp-...
Start
docker compose up --build
- Backend —
http://localhost:8000 - Frontend —
http://localhost:3000 - API docs —
http://localhost:8000/docs
Services
services:
backend:
build: ./backend
ports:
- "8000:8000"
volumes:
- nimbus-chroma:/app/.chroma
- /tmp/nimbus-workspaces:/tmp/nimbus-workspaces
env_file: .env
frontend:
build: ./frontend
ports:
- "3000:3000"
environment:
- NEXT_PUBLIC_API_URL=http://localhost:8000
- NEXT_PUBLIC_WS_URL=ws://localhost:8000
depends_on:
- backend
volumes:
nimbus-chroma:
Persistent volumes
ChromaDB data is stored in the nimbus-chroma Docker volume. It persists across docker compose down and up cycles.
To reset the vector store:
docker compose down -v # WARNING: deletes all vector data
docker compose up --build
Update
git pull
docker compose up --build