Skip to main content

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
  • Backendhttp://localhost:8000
  • Frontendhttp://localhost:3000
  • API docshttp://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