# Project NOMAD and the hardware its offline promise actually costs

> Project NOMAD wraps Kiwix, Kolibri, ProtoMaps, CyberChef, FlatNotes, Ollama and Qdrant into one Docker orchestrated server you drive from a browser, and the project is candid that the offline promise costs a GPU backed machine rather than a small one.

**Crosstalk-Solutions/project-nomad** — Project NOMAD is an offline-first knowledge and education server. Wikipedia, thousands of books, courses, maps, and optional local AI, all running on hardware you own with no internet required.

- Repository: https://github.com/Crosstalk-Solutions/project-nomad
- Website: https://www.projectnomad.us
- Stars: 38,718 · Forks: 3,867
- Language: TypeScript
- License: Apache-2.0
- Published: 2026-08-17 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/crosstalk-solutions-project-nomad

## The quick install pipes a script from the main branch as root

The short path is four commands, and every one of them matters:

```bash
sudo apt-get update && \
sudo apt-get install -y curl && \
curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/install_nomad.sh \
  -o install_nomad.sh && \
sudo bash install_nomad.sh
```

Two things to notice. The URL points at refs/heads/main, not at a tag, so the script you execute is whatever the default branch holds at the moment you run it, and two machines installed a week apart can end up on different code. And the script runs under sudo, with the README stating plainly that root privileges are required. If you want a fixed starting point, that is the argument for the advanced route below, where you pin the version yourself.

## One Command Center in front of a stack of other people's containers

NOMAD is a management interface, called the Command Center, plus an API, and its job is to orchestrate containerized tools through Docker, handling installation, configuration, and updates so you do not have to.

What sits behind it is a stack of separate upstream projects, each with its own release history: Kiwix for offline Wikipedia and ebooks, Kolibri for Khan Academy courses with progress tracking, ProtoMaps for regional maps, CyberChef for encryption and encoding, FlatNotes for markdown notes, Ollama for local models, and Qdrant for the semantic search behind document upload. Alongside them are pieces NOMAD builds itself, such as a Wikipedia content selector, a ZIM library manager, a content explorer, a System Benchmark that posts hardware scores to a community leaderboard, and a Supply Depot for one-click apps plus your own custom containers.

The consequence: you inherit seven upstream release cadences inside one interface, and opting into Automatic Updates means core software, installed apps, and offline content can move on the schedule you pick rather than on a schedule you coordinate.

## The AI Assistant is what turns 5 GB of disk into 25 GB

The size numbers are where this project separates itself from the small offline boxes it resembles. NOMAD itself wants about 5 GB of disk and under 1 GB of RAM, and the minimum list asks for a 2 GHz dual-core processor, 4 GB of system memory, and at least 5 GB free, with 10 GB for comfort. Add the AI Assistant and the install grows to roughly 25 GB, because Ollama and a general purpose model are both large, and a model needs about its download size in memory while it answers.

Where that memory comes from is the part to plan for: VRAM if you have a discrete GPU, system RAM if you do not. The optimal list is an AMD Ryzen 7 or Intel Core i7, 32 GB of system memory, an NVIDIA RTX 3060 or AMD equivalent, and at least 250 GB of free disk on an SSD. The project's own words are that it is the opposite of a bare-minimum survival computer, and it is not sponsored by any hardware maker. On a small machine, the offline library still works and the model is what does not fit.

## Offline means after the install, and only on Debian

Both hardware lists end with the same line: a stable internet connection, required during install only. That qualifier carries the weight. Docker images, Kiwix content, Kolibri courses, map extracts, and model weights are all fetched during that window, and the README is explicit that the content you add afterwards is what actually fills a drive. So the no-internet claim is a property of the running system, not of the setup procedure, and a machine that is offline at install time cannot complete it.

Platform support is equally narrow. Installation is for Debian based systems, with Ubuntu 26.04 LTS recommended and 24.04 LTS plus Debian 12 also supported, and the quick install is marked Debian based OS only. Windows and macOS users are pointed at a WSL2 guide that the project calls community-supported, covering native Docker and Docker Desktop routes. Consequence: on anything but a Debian derivative you are on the path the maintainers do not own, and the browser-only workflow that makes NOMAD pleasant on a server is also the only interface that route gives you.

## The advanced route is a compose file you copy and then own

For more control, the project tells you to copy a Docker Compose template, management_compose.yaml, into a docker-compose.yml of your own, replace the placeholders with your real values, and start it:

```bash
docker compose up -d
```

That starts the Command Center and its dependencies, and the README marks the method as recommended for advanced users only, requiring familiarity with Docker and manual configuration before starting. The trade is ownership. The quick install script manages itself and receives updates; a compose file you copied is a snapshot, so a newer template reaches you only when you fetch it again, and every placeholder you filled in is a value you have to revisit. Pick the route by whether you want the project to drive your configuration or the other way around.

## The root package.json has a test script that always fails

The root manifest is a stub, and reading it tells you where the real code is not. It names project-nomad at version 1.35.0, points main at index.js, credits Crosstalk Solutions, LLC, and carries one script:

```json
"test": "echo \"Error: no test specified\" && exit 1"
```

That is the placeholder npm generates, and it exits non-zero by design, so running the test command in a fresh clone tells you nothing about whether the application works. The application itself lives in admin/, which is where the Dockerfile copies from, where the build runs npm run gen:curated-data, and where node ace build produces the output. The version in that stub file does match the published tag: v1.35.0 was released on 2026-09-29, with v1.35.0-rc.1 and v1.35.0-rc.2 preceding it, and .releaserc.json points at a semantic-release setup that drives the tagging.

## Content is generated at image build time, and the map tool is hashed

The Dockerfile shows how much of the content is derived rather than shipped. During the build it copies the repository root collections/ directory into the image and runs npm run gen:curated-data, regenerating the curated drug reference modules for conditions, natural remedies and home remedies from collections/*.json, so the JSON is what gets compiled in and the committed TypeScript cannot silently drift. The stated reason is worth keeping: edit the data in a fork and the change reaches the running system only when you rebuild the image.

The map tooling is pinned harder still. go-pmtiles is set to version 1.30.2 with separate SHA256 values for AMD64 and ARM64, because upstream releases ship no checksums file, and the comment explains the regeneration step. So the image carries a binary verified by hash rather than by a tag, which is the careful part of this build, and also the part that means a version bump is a deliberate edit in the Dockerfile by someone other than you.

## Conclusion

Project NOMAD fits a household or classroom that wants Kiwix, Kolibri and a local model on one machine it controls, with someone willing to own Docker and a disk full of content. It is a poor fit for a small box, for a Windows or macOS user who wants a supported path, or for anyone who needs the installed version pinned. Before you install, read the size jump from 5 GB to roughly 25 GB, decide whether the AI Assistant is worth it on your hardware, and check which compose file your install script is really running.

## FAQ

### What is Project NOMAD for?

It is a self-contained, offline-first knowledge and education server: offline Wikipedia, medical references, ebooks, Khan Academy courses with progress tracking, regional maps, note taking, data tools, and an optional local AI chat with document upload and semantic search. Everything runs on hardware you own and is reached through a browser at a local address.

### how to install project nomad

On a Debian based system, run the quick install, which needs sudo or root, and then open a browser to http://localhost:8080 or http://DEVICE_IP:8080. Ubuntu 26.04 LTS is the recommendation, with 24.04 LTS and Debian 12 also supported, and the setup wizard guides the first configuration.

### how to install project nomad on windows

The project points Windows users at a WSL2 install guide that it describes as a community-supported path, covering native Docker and Docker Desktop install routes. The quick install script itself is marked for Debian based operating systems only.

### how large is project nomad

NOMAD itself needs about 5 GB of disk and under 1 GB of RAM, and the minimum specification asks for 4 GB of system memory with 5 GB free, or 10 GB to install comfortably. Adding the AI Assistant brings the install to roughly 25 GB, and the recommended hardware list asks for 32 GB of memory and at least 250 GB of free disk on an SSD.

### is project nomad safe

The quick install downloads install_nomad.sh from the main branch of the GitHub repository and runs it with sudo, so the script you execute is whatever that branch holds at that moment. The repository is Apache-2.0 licensed, and the stack it orchestrates is built from containerized third party projects including Kiwix, Kolibri, ProtoMaps, CyberChef, FlatNotes, Ollama and Qdrant.

### What is the NOMAD program?

In this repository NOMAD is the server product rather than a grant or a study program. Its management layer is the Command Center, which orchestrates containerized tools through Docker, and it also ships a System Benchmark that scores hardware and posts results to a community leaderboard at benchmark.projectnomad.us.

## Sources

- [Official documentation](https://www.projectnomad.us)
- [Official README](https://github.com/Crosstalk-Solutions/project-nomad#readme)
- [Project repository](https://github.com/Crosstalk-Solutions/project-nomad)
- [Release notes](https://github.com/Crosstalk-Solutions/project-nomad/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/crosstalk-solutions-project-nomad
