Run Nova on your
own hardware.
Nova runs in a single Docker container. Put it on your PC, a home server or your NAS, and keep every journal, rig and project in one folder you control.
Pick where Nova should run
All three paths use the same small compose file and keep your data in a folder called nova_data, so you can move between them later.
Install Docker Desktop
Download it from docker.com and run the installer. On Windows, keep WSL 2 enabled when asked. Start Docker Desktop and wait until it says the engine is running.
Create a folder and the compose file
Make a folder called nova in your home folder. Inside it, create a text file named docker-compose.yml with exactly this content:
services:
nova:
image: mrantonsg/nova-dso-tracker:latest
container_name: nova
ports:
- "127.0.0.1:5001:5001"
volumes:
- ./nova_data:/app/instance
restart: unless-stoppeddocker-compose.yml.txt. In Notepad, choose Save as type: All files.Start Nova
Open a terminal in the nova folder (Windows: right-click the folder → Open in Terminal; Mac: Terminal, then cd ~/nova) and run:
docker compose up -d
The first start downloads about 500 MB. After that, Nova shows up under Containers in Docker Desktop, where you can start and stop it with a click.
Open Nova
Go to http://localhost:5001 in your browser. The first start can take up to two minutes while Nova sets up its files in nova_data.
Prefer to click instead of using the terminal?
In Docker Desktop, search for mrantonsg/nova-dso-tracker, click Pull, then Run. Open Optional settings and set:
Container name nova · Host port 5001 · Volume: host path = your nova/nova_data folder, container path /app/instance.
Create the folder and compose file
mkdir -p ~/nova && cd ~/nova
cat > docker-compose.yml <<'EOF'
services:
nova:
image: mrantonsg/nova-dso-tracker:latest
container_name: nova
ports:
- "127.0.0.1:5001:5001"
volumes:
- ./nova_data:/app/instance
restart: unless-stopped
EOFStart Nova
docker compose up -d
docker compose logs -f # optional: watch the first start, Ctrl+C to leaveOpen Nova
On the same machine, open http://localhost:5001. Running it on a headless server or a Pi? See Open Nova from other devices below.
Use this compose file
It’s the same file with one change: the port line has no 127.0.0.1, so other devices on your network can reach Nova.
services:
nova:
image: mrantonsg/nova-dso-tracker:latest
container_name: nova
ports:
- "5001:5001"
volumes:
- ./nova_data:/app/instance
restart: unless-stoppedCreate it as a project on your NAS
Synology
Container Manager → Project → Create. Pick a folder such as /docker/nova, choose “Create docker-compose.yml” and paste the file.
Unraid
Install the Docker Compose Manager plugin, add a new stack named nova, paste the file and click Compose Up.
CasaOS
App Store → Custom Install → Import, paste the file and install.
On other systems (TrueNAS, OpenMediaVault, Portainer), use their “stack” or “compose” feature the same way.
Open Nova
Browse to http://<your-nas-ip>:5001 from any device on your home network.
Keeping Nova running
Everything below runs in your nova folder. Docker Desktop users can do the same from a terminal opened there.
Get the latest version
New releases arrive as a new image. Pull it and restart. Your data in nova_data stays untouched.
docker compose pull docker compose up -d
Back up your data
All of Nova lives in nova_data: database, settings, uploaded images and logs. Stop Nova, copy the folder somewhere safe, start it again.
docker compose stop cp -r nova_data nova_data_backup_$(date +%Y%m%d) docker compose start
Multi-user mode and Ask Nova
Advanced settings live in nova_data/.env. Set SINGLE_USER_MODE=False for several accounts, or add AI_PROVIDER, AI_API_KEY and AI_MODEL to use Ask Nova. AI_BASE_URL is needed for OpenAI-compatible providers and Ollama. Then restart:
docker compose restart
Change the port or open Nova from other devices
Edit the ports: line in docker-compose.yml, then run docker compose up -d.
"127.0.0.1:8080:5001" # use port 8080, this computer only "5001:5001" # reachable from your home network
Only open it to your own network, never directly to the internet.
Coming from the Nova Launcher?
The Launcher is no longer developed, but your installation keeps working. It’s a normal compose setup in ~/nova, with your data in ~/nova/instance. To update from now on:
cd ~/nova docker compose pull docker compose up -d
You can delete the Launcher app itself. Nova and your data stay.
Used the old docker run guide?
If you started Nova with docker run and a ~/nova-data folder, you can switch to compose and keep everything:
docker stop nova-tracker && docker rm nova-tracker
mkdir -p ~/nova && mv ~/nova-data ~/nova/nova_data
# save docker-compose.yml into ~/nova (see step 2), then:
cd ~/nova && docker compose up -d
Common questions
Still stuck? Open an issue on GitHub with your system, how you installed Nova and the output of docker compose logs.
localhost:5001 won’t load after I started Nova.
docker compose logs -f. If it still fails, make sure no other program uses port 5001, or change the port as shown above.The image download is stuck or very slow.
docker compose up -d again. Docker Hub occasionally rate-limits downloads, and waiting a few minutes usually helps.Where is my data, and is it safe during updates?
nova_data folder next to your compose file. Updating replaces only the container, never that folder. To back up, copy it. To move Nova to another machine, copy the whole nova folder and run docker compose up -d there.Can I move my data between self-hosted Nova, the web app and Nova for Mac?
How do I open Nova from my phone or another computer?
"5001:5001", run docker compose up -d, then open http://<computer-ip>:5001 on the other device. Keep it inside your home network. For access on the road, use a VPN like Tailscale instead of opening a port on your router.Does it run on a Raspberry Pi?
How do I stop or remove Nova?
docker compose stop pauses it, docker compose start resumes it. docker compose down removes the container but keeps nova_data. Delete that folder only if you really want your data gone.