Self-Hosted Overview
Self-hosting gives you full control over the Nimbus backend — your code never leaves your infrastructure.
When to self-host
Self-host when:
- Your codebase contains sensitive IP and can't leave your environment
- You need to run tasks against private GitHub Enterprise repos
- You want to integrate Nimbus with internal tooling
- You're running on-premise with no internet access (requires local Anthropic API access or a proxy)
Architecture
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Frontend │────│ FastAPI │────│ ChromaDB │
│ (Next.js) │ │ (backend) │ │ (vectors) │
└──────────────┘ └──────────────┘ └──────────────┘
│
┌──────────────┐
│ SQLite │
│ (tasks/db) │
└──────────────┘
Prerequisites
- Docker and Docker Compose, or
- Python 3.12+ and Node 20+ for manual setup
- Anthropic API key
- Voyage AI API key
- GitHub App or personal access token
Setup options
| Method | Best for |
|---|---|
| Docker Compose | Quickest setup, production-ready |
| Manual backend | Development, customization |
| Manual frontend | Custom frontend changes |
Data storage
| Data | Location | Notes |
|---|---|---|
| Tasks, repos, keys | backend/nimbus.db | SQLite, auto-created |
| Vector embeddings | .chroma/ | ChromaDB, persists across restarts |
| Task workspaces | /tmp/nimbus-workspaces/ | Ephemeral, cleaned after task |
| Sessions | ~/.nimbus/sessions/ | Local CLI only |