Project N.O.M.A.D. — Installation¶
Primary audience: TAPPaaS admin.
Prerequisites¶
- The foundation installed.
- Disk for the libraries you want (see Choosing content below); the default 128 GB holds a local-language and the English Wikipedia.
Install¶
This creates the VM, applies its NixOS configuration (Docker and NOMAD's stack) and lets the home network reach it. The first start pulls the container images, which takes a few minutes.
Post-install¶
- Open
http://nomad.<zone>.internal:8080from the home network. - In the Command Center, run its Easy Setup, or install apps and content under Settings.
- The apps open at
http://nomad.<zone>.internal:<port>, from the Command Center's tiles.
Choosing content¶
The Information Library is Kiwix: it serves ZIM files from the Kiwix catalogue, which has Wikipedia in every language it is written in, not only English — pick the language in the Command Center's library browser. Sizes vary a lot; nopic and mini editions are a fraction of the full ones.
| Selection | What | About |
|---|---|---|
| Minimal | Wikipedia in the site's language (nopic), Notes | 1–10 GB |
| Full | Wikipedia in the site's language and in English (with pictures), Wiktionary, a course collection in the Education Platform, the Supply Depot tools you use | 150 GB and more |
Grow the disk before a large download:
Leave out the AI Assistant: the site's AI stack (Open WebUI) is the one to use.
Verification¶
| Check | Expected |
|---|---|
docker, project-nomad.service | active |
containers nomad_admin, nomad_mysql, nomad_redis, nomad_disk_collector | running |
http://localhost:8080/api/health on the VM | 200 |
| images | pinned tags, none :latest |
http://nomad.<zone>.internal:8080 | answers |
| NOMAD's URL | http://nomad.<zone>.internal:8080, so its apps open at that name |
Troubleshooting¶
The stack does not start. journalctl -u project-nomad on the VM shows the compose output; sudo docker ps -a which container stopped.
An app does not open. From outside the home network it is not reachable, by design. From inside it, check that the app's port is in the module's ingress rules (nomad.json): a port outside them is blocked by the site firewall.