Editorial card: Project NOMAD, self-hosted internet in a box

Project NOMAD: Offline Wikipedia, Maps and a Local AI

A weekend rabbit hole worth sharing.

I stumbled across Project NOMAD a few days ago. It’s an open-source bundle (Apache 2.0, runs in Docker) that puts the useful parts of the internet on a mini-PC or any spare x86 box. The first thing that surprised me was that I’d never heard of it. The second was where it led me.

This is the practitioner write-up: what’s in the box, what category it sits in, what surprised me on the build, and where the architecture goes from here. The link hub at the bottom is the canonical list of every component and where to find it.

What Project NOMAD actually is

NOMAD is a packaged stack from Crosstalk Solutions. One install script, about an hour of setup, and you have a self-hosted offline-first knowledge layer running on your hardware.

The components:

  • Kiwix serves offline ZIM files. The popular ones are offline Wikipedia (the full English encyclopedia, around 100GB), the medical reference, iFixit’s repair guides, Khan Academy, and Stack Exchange archives. The full ZIM library has hundreds more.
  • Offline maps via ProtoMaps: downloadable regional maps built from OpenStreetMap data, so you have maps that work without cell signal.
  • Kolibri ships Khan Academy content and the K-12 curriculum from Learning Equality. Originally built for schools in low-connectivity environments.
  • Ollama plus Qdrant for the optional AI Assistant: a local large language model with no external dependencies and a knowledge base for retrieval. You choose and download models from the web UI, as big as your hardware allows.
  • Smaller extras: CyberChef data tools, FlatNotes for notes, and a one-click app catalogue.

Sized down to the popular ZIMs the whole thing fits on a small mini-PC with room for the OS. Sized up you can host most of human reference, plus a model that can talk to it, on hardware that costs less than a phone.

Internet in a Box: the category behind the project

The piece that actually surprised me was that NOMAD isn’t a one-off. It sits in a category called Internet in a Box. The flagship project is IIAB itself, which has been quietly deploying in rural schools, refugee camps, field clinics, and post-disaster zones for over a decade.

The original deployment context was educational equity. A school in a region where the nearest internet backbone is hours away has the same Wikipedia, the same Khan Academy, the same maths and science curriculum as a school in a major city, once you put a small server on the local network. The hardware cost is trivial. The operational lift is real but achievable. The impact is significant.

The same stack also gets deployed in:
– Field hospitals after natural disasters, where local infrastructure is rubble for weeks and the medical team needs offline reference
– Refugee camps where education continuity for displaced kids is months or years
– Rural clinics where a slow connection to PubMed is the difference between a confident drug interaction check and a half-remembered guess
– NGO field offices in low-connectivity areas
– Indigenous communities preserving language resources offline

NOMAD is one of several modern repackagings of this idea. It exists because the use cases for offline-first knowledge layers haven’t gone away just because most of the western internet got faster. The interesting part isn’t the survival framing. It’s that the same hardware that runs a homelab cabinet’s reference layer is what a field medic in a connectivity-dead zone is running.

Same hardware. Different scale of need.

Hardware: x86 only, and what that rules out

Correction, 22 September 2026. An earlier version of this post recommended a Raspberry Pi 4 or Pi 5 build. That was wrong and I have removed it. Project NOMAD requires x86-64. The project’s own documentation asks for a Debian-based x86-64 Linux machine (Ubuntu 26.04 LTS recommended, with Ubuntu 24.04 and Debian 12 also supported), and its FAQ says it has not been tested or optimised for ARM devices such as the Raspberry Pi and publishes no official ARM images. ARM support is on the roadmap and there are community forks, but nothing official. If you bought a Pi on the strength of the earlier version of this page, it is still a useful machine and the next section tells you what to run on it instead.

What I actually run it on: a four-core, 8GB, 500GB virtual machine on my Proxmox cluster running Ubuntu. That is the honest answer, and it is worth saying because a VM on hardware you already own costs nothing extra to try.

N100 mini-PC (or any used office-grade box with an N100, N305, or older i5/i7) is the buy-something tier for the reference layer: NOMAD itself needs about 5 GB of disk and runs in under 1 GB of RAM without the AI tools. The AI side is a different budget. Small models will run on a CPU-only box, slowly, but NOMAD’s own documentation recommends 32 GB of RAM and an NVIDIA RTX 3060-class GPU (or AMD equivalent) for its AI tools, and says adding the AI Assistant brings the install to roughly 25 GB. If you are going to use the AI side seriously, budget for a GPU.

The reference layer is cheap to serve. Inference is what you are actually paying for.

On a Raspberry Pi, use Internet-in-a-Box instead

This is the comparison people arrive here looking for, so here is the short answer. Internet-in-a-Box is the ARM-friendly equivalent, built to run on a Raspberry Pi. It covers the same reference ground: offline Wikipedia through Kiwix, maps, and educational content, on a Pi you may already own.

What you give up is the AI layer. NOMAD’s distinguishing feature is the local LLM sitting in front of the archive, and a Pi would not give you usable inference speed even if the stack ran. So the split is clean: reference on ARM, reference plus a model that can talk to it on x86.

What surprised me on the build: the AI angle

NOMAD ships Ollama, Qdrant and Kiwix in the same stack, and its AI Assistant can ingest ZIM files into its knowledge base. That is the interesting part: the model is not just sitting next to the archive, it can retrieve from it.

The moment you do wire them together, you have a local LLM with offline Wikipedia, the medical reference, the repair archives, and Stack Exchange dumps sitting next to it as retrieval sources. RAG (retrieval-augmented generation) against a curated 50-document corpus is a familiar pattern in AI demos. RAG against millions of articles is a different scale of grounding. The model can cite from a deterministic source instead of hallucinating from training data. The user can click through to the actual article and verify.

This is the part that doesn’t get covered in the typical NOMAD writeup. Most coverage frames the project as a fallback for when the internet fails. The more interesting position is combination: a local LLM with reference material sitting next to it as retrieval sources is materially more capable than the base model alone, and the capability doesn’t depend on connectivity.

This is where the practitioner arc gets interesting.

Architecture extensions: where this goes next

If you’ve got the base NOMAD stack running, three extensions earn the time:

Feed the knowledge base your own material

Qdrant is the open-source vector database behind NOMAD’s AI Assistant knowledge base, so it is already there once you install the AI tools. The extension is what you put in it: upload your own notes, documentation and PDFs alongside the ZIM content and the model can retrieve them by meaning rather than keyword. Kiwix still gives you fast keyword search over the archive itself; the knowledge base adds semantic retrieval. Different retrieval modes for different data shapes.

Layer an agentic runtime on top of Ollama

Ollama is a model server. It returns tokens to whatever client asks. An agentic runtime sits on top of Ollama (not in place of it) and gives the model multi-step reasoning, tool use, and a memory of what it’s discussed.

OpenClaw and Hermes Agent are two open frameworks worth comparing. They turn the model from “answer this query” into “given this goal, decide which tools to use, query them, reason over the results, draft a response, check your own work.” When the underlying tools are Kiwix and Qdrant, you have a model that can compose a meaningful answer from offline reference and your own notes without needing a connection.

If it’s a personal instance you can talk directly to the offline stack through the agent instead of learning each tool’s interface separately.

Put the whole stack on a mini-PC for a standalone remote unit

Single mini-PC, single LAN cable, self-contained reference and AI service for a remote workshop, allotment outbuilding, marine setup, or any site where uplink connectivity is patchy. The architecture doesn’t change. The deployment context does.

From reference layer to personal cloud

Push the practitioner arc one more step and the same hardware stops being a reference layer and starts being a personal cloud. Bolt on:

  • Nextcloud for files, calendar, and contacts. Replaces Google Drive, Workspace calendar, iCloud contacts.
  • OpenWebUI for a clean conversational front-end to your local Ollama. The Ollama equivalent of ChatGPT’s interface.
  • Vaultwarden for password management. Bitwarden-compatible, self-hosted.
  • Immich for photos. The Google Photos replacement that’s actually closing the feature gap.
  • Jellyfin for media library. Films, music, audiobooks, podcasts.

None of it leaves the box. The same hardware that started as “offline Wikipedia and maps” ends up as a self-contained replacement for most of what people pay Google or Apple for.

This isn’t a marketing claim. The components are mature, they install in Docker, and the documentation is sane.

The doomsday framing vs everyday resilience

The prepper framing exists and you can absolutely use the NOMAD stack that way. It’s worth being honest about that because the prepper community is a real source of NOMAD users.

The more interesting use is everyday resilience. The internet fails for boring reasons more often than dramatic ones. Your ISP’s BGP flap. The street fibre cabinet someone backed a van into. The maintenance window your hosting provider didn’t announce loudly enough. The data centre rack that lost power for the seventh time this year.

Having your reference layer in the building is the kind of thing you only notice the value of when the line goes down.

The doomsday framing is the marketing edge of a category that’s actually about resilience in mundane failure modes. And the same stack happens to be deployed in field hospitals and refugee camps. Different scale of need, same hardware.

What I’m building next: the Pip-Boy Vault

The natural shape of this architecture is client-server. A small portable device for reference on the move, a base station for the heavy lifting at home, and a sync layer between them.

I’m not a Fallout fan, but my dad played the original games and the Pip-Boy as a concept is a good silhouette for what I’m building: a wrist or arm-mounted Pi Zero 2 W with a small display, talking to a beefier base station running the full NOMAD plus personal cloud stack at home. When the Pip-Boy is on home WiFi it queries the base station for full Wikipedia, real AI, Nextcloud files. When it’s out of range it falls back to a local cache: tiny ZIM, abstract Wikipedia, cached map tiles for the local area, a small local LLM.

That’s the build I’m working on next. A practitioner’s edge-and-base personal infrastructure pattern, in a Pip-Boy-shaped enclosure because the form factor is recognisable.

Full series outline lives on the build doc. Episode one is this post.

Try it yourself

Quick start:

# Run on the x86-64 Debian or Ubuntu machine (or VM) that will host NOMAD
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

The script handles Docker, pulls the NOMAD stack, sets up the web UI on port 8080. Once it’s up, the project’s documentation walks you through ZIM downloads, map region downloads, and pulling your first Ollama model. NOMAD has no login of its own, so keep it on your LAN and do not expose it to the internet.

Plan for:
– 100GB+ storage for the popular ZIMs (full enWiki alone is around that)
– 2-4 hours including the larger Wikipedia download on a typical home connection
– Optional: extra time and disk for regional map downloads

After the base install, the architecture extensions (Qdrant, agentic runtime, personal cloud bolt-ons) are separate projects with their own install paths. Each is well-documented.

Component reference

Every project mentioned in the post, with the canonical link.

Core stack (what NOMAD bundles)

Architecture extensions

  • Qdrant: vector database for semantic retrieval (bundled with NOMAD’s AI Assistant)
  • OpenClaw — agentic runtime for local models
  • Hermes Agent — alternative agentic runtime

Personal cloud layer

Related context


If you’ve come across this category, are running something similar, or have built variations on the idea, get in touch. The Pip-Boy Vault build series is in flight — there’ll be more on this stack over the coming weeks.

Enjoyed this guide?

New articles on Linux, homelab, cloud, and automation every 2 days. No spam, unsubscribe anytime.

Scroll to Top