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 Raspberry Pi or a mini-PC. 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.
- OpenStreetMap with locally-rendered tile data, so you have navigation that works 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 for running a local large language model with no external dependencies. Default install pulls a small model; you can pull bigger ones as your hardware allows.
Sized down to the popular ZIMs the whole thing fits on a Pi 5 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 tier: Pi or mini-PC?
Both work. They do different things well.
Raspberry Pi 4 or Pi 5 (8GB) is the price-friendly option. Total build cost under £150 including case, storage, and PSU. Pi 5 handles the reference side comfortably: Kiwix serving full Wikipedia, OSM rendering tiles, Kolibri streaming Khan Academy. Where the Pi struggles is local LLM inference. You can run small models (gemma 1B, phi-3-mini) but response times will be 30-60 seconds for a meaningful query. Acceptable for a fallback, frustrating as a daily-driver AI.
N100 mini-PC (or any used office-grade box with an N100, N305, or older i5/i7) gives you usable local LLM speed. £250-400 new, often £100-150 used. Same NOMAD stack, same software, real AI throughput. You can run gemma 7B or Llama 3.1 8B comfortably and get responses in 2-5 seconds. If you’re going to use the AI side seriously, this is the tier.
The trade-off isn’t capability. It’s responsiveness.
Reference is cheap. Inference isn’t.
What surprised me on the build: the AI angle
NOMAD ships Ollama and Kiwix in the same stack but doesn’t wire them together by default. They’re two separate services on the same box.
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:
Add Qdrant for proper semantic retrieval
Qdrant is an open-source vector database. Once you have it running alongside NOMAD you can ingest your own notes, your own codebase, your own library of PDFs, and retrieve by meaning rather than keyword. The Wikipedia corpus stays as keyword retrieval (Kiwix is good at that); your personal content becomes semantic. 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:
# Pi-side install (run on the device)
curl -sSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/main/install/install_nomad.sh | sudo bash
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, OSM region selection, and pulling your first Ollama model.
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: 30 minutes more for OSM region selection and tile generation
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)
- Project NOMAD — the bundle itself (GitHub)
- Internet in a Box (IIAB) — the historical category project
- Kiwix — offline ZIM viewer + server (ZIM library)
- OpenStreetMap — offline maps
- Kolibri — offline education platform from Learning Equality
- Ollama — local LLM server
Architecture extensions
- Qdrant — vector database for semantic retrieval
- OpenClaw — agentic runtime for local models
- Hermes Agent — alternative agentic runtime
Personal cloud layer
- Nextcloud — files, calendar, contacts
- OpenWebUI — ChatGPT-style UI for Ollama
- Vaultwarden — Bitwarden-compatible password server
- Immich — Google Photos replacement
- Jellyfin — self-hosted media server
Related context
- ZIM file library: library.kiwix.org
- Pi Imager: raspberrypi.com/software
- Docker on Pi OS: handled automatically by the NOMAD install script
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.

ReadTheManual is run, written and curated by Eric Lonsdale.
Eric has over 20 years of professional experience in IT infrastructure, cloud architecture, and cybersecurity, but started with PCs long before that.
He built his first machine from parts bought off tables at the local college campus, hoping they worked. He learned on BBC Micros and Atari units in the early 90s, and has built almost every PC he’s used between 1995 and now.
From helpdesk to infrastructure architect, Eric has worked across enterprise datacentres, Azure environments, and security operations. He’s managed teams, trained engineers, and spent two decades solving the problems this site teaches you to solve.
ReadTheManual exists because Eric believes the best way to learn IT is to build things, break things, and actually read the manual. Every guide on this site runs on infrastructure he owns and maintains.
Enjoyed this guide?
New articles on Linux, homelab, cloud, and automation every 2 days. No spam, unsubscribe anytime.
