Skip to content

Deployment

Terminal window
git clone https://github.com/arialabs/nova.git
cd nova
./setup

The setup wizard configures everything and starts all services. See Quick Start for details.

CommandDescription
make devStart all services with hot reload (or docker compose up --build --watch)
make watchSync Python source into running containers without rebuilding
make logsTail all container logs
make psShow container status

The dashboard dev server runs on port 5173 via Vite with proxy rules to backend services.

CommandDescription
make buildRebuild all Docker images
make upStart all services detached
make downStop all services

In production, the dashboard uses nginx on port 3000.

The setup script auto-detects GPU hardware, but you can manually apply GPU overlays:

Terminal window
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d
Terminal window
docker compose -f docker-compose.yml -f docker-compose.rocm.yml up -d

Nova supports a split topology where the main stack runs on one machine and GPU inference runs on a separate machine (connected over LAN):

  1. On the GPU machine, run the remote setup script:
Terminal window
bash <(curl -s https://raw.githubusercontent.com/arialabs/nova/main/scripts/setup-remote-ollama.sh)
  1. On the Nova machine, set the remote URL in .env:
Terminal window
OLLAMA_BASE_URL=http://192.168.1.50:11434
  1. Optional: Wake-on-LAN — configure WoL so Nova can wake the GPU machine on demand:
Terminal window
WOL_MAC_ADDRESS=AA:BB:CC:DD:EE:FF
WOL_BROADCAST_IP=192.168.1.255

This 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.

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:

Terminal window
# Single backend
COMPOSE_PROFILES=local-ollama
# Multiple backends
COMPOSE_PROFILES=local-ollama,local-sglang

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.

Terminal window
# Create a backup
make backup
# List available backups
make restore
# Restore a specific backup
make restore F=backups/nova-backup-2025-01-15.sql.gz

Backups are stored in the ./backups/ directory.