Deployment
Quick start
Section titled “Quick start”git clone https://github.com/arialabs/nova.gitcd nova./setupThe setup wizard configures everything and starts all services. See Quick Start for details.
Development commands
Section titled “Development commands”| Command | Description |
|---|---|
make dev | Start all services with hot reload (or docker compose up --build --watch) |
make watch | Sync Python source into running containers without rebuilding |
make logs | Tail all container logs |
make ps | Show container status |
The dashboard dev server runs on port 5173 via Vite with proxy rules to backend services.
Production commands
Section titled “Production commands”| Command | Description |
|---|---|
make build | Rebuild all Docker images |
make up | Start all services detached |
make down | Stop all services |
In production, the dashboard uses nginx on port 3000.
GPU overlays
Section titled “GPU overlays”The setup script auto-detects GPU hardware, but you can manually apply GPU overlays:
NVIDIA
Section titled “NVIDIA”docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -dAMD ROCm
Section titled “AMD ROCm”docker compose -f docker-compose.yml -f docker-compose.rocm.yml up -dRemote GPU setup
Section titled “Remote GPU setup”Nova supports a split topology where the main stack runs on one machine and GPU inference runs on a separate machine (connected over LAN):
- On the GPU machine, run the remote setup script:
bash <(curl -s https://raw.githubusercontent.com/arialabs/nova/main/scripts/setup-remote-ollama.sh)- On the Nova machine, set the remote URL in
.env:
OLLAMA_BASE_URL=http://192.168.1.50:11434- Optional: Wake-on-LAN — configure WoL so Nova can wake the GPU machine on demand:
WOL_MAC_ADDRESS=AA:BB:CC:DD:EE:FFWOL_BROADCAST_IP=192.168.1.255This topology is ideal when you have a low-power always-on server (like a mini PC) running Nova and a separate desktop with a GPU that only powers on when inference is needed.
Inference backend selection
Section titled “Inference backend selection”Nova supports multiple local inference backends beyond Ollama: vLLM, SGLang, and llama.cpp. Each has different strengths for concurrent workloads, CPU-only deployments, or agent pipeline optimization.
See Inference Backends for a full comparison and configuration guide.
Enable backends via Docker Compose profiles in .env:
# Single backendCOMPOSE_PROFILES=local-ollama
# Multiple backendsCOMPOSE_PROFILES=local-ollama,local-sglangBackup and restore
Section titled “Backup and restore”Via the Recovery UI (recommended)
Section titled “Via the Recovery UI (recommended)”The Recovery service runs at http://localhost:8888 and is accessible from the dashboard at /recovery. It provides:
- One-click database backup
- Backup history and restore
- Factory reset
- Service health monitoring
The Recovery service only depends on PostgreSQL — it stays alive even when other services crash, so you always have access to backup and restore.
Via the CLI
Section titled “Via the CLI”# Create a backupmake backup
# List available backupsmake restore
# Restore a specific backupmake restore F=backups/nova-backup-2025-01-15.sql.gzBackups are stored in the ./backups/ directory.