In a recent hands-on home-lab project published by XDA Developers, writer João Carrasqueira set out to solve that exact dependency by hosting an offline copy of Wikipedia on a local server and wiring it up to a local AI model so he could ask natural-language questions without an active internet connection. It is a clever piece of digital self-reliance, and it highlights an important distinction for anyone tinkering with home servers, Windows PCs, or local AI: building a rock-solid offline reference library is surprisingly easy, while getting a local language model to read that library without making things up is another challenge entirely.
The Foundation: How Offline Wikipedia Actually Works
When people talk about "downloading Wikipedia," the phrase sounds like a storage nightmare that belongs in an enterprise data center. In practice, the open-source tool Kiwix makes offline hosting accessible on everything from a Proxmox virtualized home lab to a standard Windows desktop or a Raspberry Pi.
Kiwix works by reading compressed ZIM archives—single-file packages that bundle web content, internal links, and search indexes into a browsable offline "book". According to official Kiwix documentation, its command-line HTTP server (kiwix-serve, distributed in the kiwix-tools package, as Docker images, or as static binaries) shares those ZIM files across a local area network so any phone, laptop, or desktop on the same Wi-Fi or Ethernet subnet can browse the archive through a standard web browser. Better yet for desktop users who do not run a dedicated Linux hypervisor, Kiwix bundles a version of Kiwix Server directly inside Kiwix Reader for Windows, Linux, macOS, iOS, and Android.
"All of Wikipedia" vs. What Fits in a Small Container
A critical detail for anyone planning their own deployment is understanding Kiwix's archive tiers. While the XDA project headline mentions putting "all of Wikipedia" on a home server, Carrasqueira notes in his walkthrough that he actually installed the Simple English edition of Wikipedia in its nopic variant to fit inside a modest container.
Official Kiwix documentation breaks its Wikipedia ZIM archives into three distinct flavors:
| Kiwix ZIM Variant | What Is Included | Approximate Space Savings | Best Use Case |
|---|---|---|---|
| mini | Article introductions and infoboxes only | ~95% smaller than full version | Ultra-tight storage, quick fact-checking |
| nopic | Complete article text, but no images | ~75% smaller than full version | Text-heavy research, low-storage containers, LLM text parsing |
| maxi | The default full snapshot, including images | Baseline (full size) | Complete offline browsing with diagrams and photos |
In the XDA setup, Carrasqueira deployed Kiwix inside a Proxmox container using a community script, bumping the virtual disk allocation from the default 4 GB up to 10 GB. By choosing the Simple English nopic archive, the download came in at just over 1 GB. He considered pulling a standard English database—which he estimated at around 50 GB (and which grows significantly larger if you opt for the full maxi edition with images)—but skipped it to save time and space.
For home-lab builders who do want the full English maxi archive or other massive ZIM snapshots, Kiwix's community documentation notes that every file in its download repository (download.kiwix.org/zim/) supports BitTorrent simply by appending .torrent to the standard file URL—a helpful trick when pulling tens of gigabytes over a home connection.
Section Summary:
- Kiwix serves compressed
.zimarchives over your local network via HTTP (kiwix-serveor the built-in server inside Kiwix Reader on Windows). - You can load multiple ZIM files simultaneously as separate "books".
- Internal cross-article links work offline, while external citation links still require an internet connection when you want to verify outside sources.
Wiring a Local LLM to Your Offline Library
Having an offline encyclopedia that loads instantly in a browser is already a practical victory. However, Carrasqueira wanted to take the experiment a step further: instead of typing keywords into Kiwix's search bar, could he ask a locally hosted AI assistant questions in plain English and have it pull the answers from the local Kiwix server?
To bridge the gap between a static ZIM archive and a conversational AI, his architecture relied on three components running locally:
- The Knowledge Base: The Proxmox Kiwix container serving the Simple English
nopicZIM archive. - The Bridge (MCP Server): A Model Context Protocol (MCP) server capable of querying Kiwix and passing article content back to an AI client.
- The Brain and Harness: A local LLM running via
llama.cpppaired with an agent harness called Pi to manage tool calls and natural-language prompts.
The Hardware and Troubleshooting Reality Check
If hosting Kiwix is a five-minute weekend warm-up, wiring up local agentic retrieval is where home-lab tinkering turns into debugging. Carrasqueira reported several friction points while assembling the pipeline:
- Fixing the MCP Build: The community TypeScript MCP server he selected failed to compile out of the box because its
main.tsfile declared a non-existentcapabilitiesparameter; he had to strip that parameter out before building the server withnpm. - Forcing Tool Calls in the Agent Harness: When connecting the MCP server to the Pi agent harness, Pi initially ignored the local Wikipedia server and answered from its own weights until he switched the MCP exposure setting from the default
codemodetodirect. - Stepping Up the Hardware and Model Size: He initially tested a distilled 4-billion-parameter model, which returned garbled and fabricated answers. To get usable results, he moved the
llama.cppworkload onto a Minisforum AI X1 Pro mini-PC equipped with an AMD Ryzen AI 9 HX 370 processor and 64 GB of DDR5 RAM, running a much larger model he identified as Qwen3.8-27B.
Even on a modern Ryzen AI 9 system with 64 GB of memory, generating an answer through this local retrieval pipeline took a few minutes per query.
Why Local AI Still Hallucinates Over Offline Data
You might assume that handing an AI model the exact encyclopedia page would guarantee 100% factual accuracy. In reality, how the data is fed into the model's context window matters enormously.
When Carrasqueira tested the setup with the prompt "Who is Paul Rudd?", the 4B model got basic biographical facts right but invented an entire filmography. Moving up to the 27B model drastically improved the output, yet on its first pass it still claimed Paul Rudd played a Marvel character named "Pete Peterson" (instead of Scott Lang / Ant-Man) and fabricated a movie titled Down and Out with the Ducks. A second run of the exact same prompt did not repeat those errors.
Conversely, when he asked "What is the Nintendo Switch 2?", the 27B model delivered a nearly spotless summary of the reveal date, US launch date, hardware specs, and early games. It did state that the console launched on August 8 in Canada—Wait, a hallucination? Not this time. When Carrasqueira checked the underlying Kiwix page, that erroneous date was actually written inside the Simple English Wikipedia snapshot itself.
The HTML Token Trap
Why did the AI stumble on Paul Rudd's filmography while nailing the console summary? Carrasqueira noticed that when his MCP tool fetched an article from Kiwix, it pulled the raw HTML markup first and then crudely stripped the tags into plain text. On a page with a massive HTML table—like an actor's filmography—that raw markup and messy table structure can devour context tokens and degrade the model's attention as it scans further down the page.
This highlights a broader architectural quirk of Kiwix. Because kiwix-serve was built for human web browsers, it exposes an OPDS catalog and HTML search/article endpoints rather than a clean JSON API for LLMs. If an MCP wrapper does not cleanly parse and chunk that HTML before handing it to llama.cpp, smaller models get overwhelmed by structural noise.
Section Summary:
- Local retrieval-augmented generation (RAG) via MCP is only as clean as its text parser; messy HTML tables can burn context tokens and trigger hallucinations even on 27B-parameter models.
- An LLM cannot fix errors that already exist inside your static offline ZIM snapshot.
- Expect multi-minute response times when feeding long articles into a large local model on CPU/integrated-NPU mini-PC hardware.
Practical Advice for Building Your Own Offline Knowledge Server
If you want to build an outage-proof reference system on your Windows PC, NAS, or Proxmox server, the smartest approach is to separate the archive from the AI:
- Start with Kiwix Alone: For 99% of real-world internet outages, browsing Kiwix directly in a web browser is faster, uses almost zero CPU or RAM, and never invents fake movies. On Windows, you can install Kiwix Reader, download a ZIM file, and toggle on the local server option so every device on your home LAN can search it instantly.
- Pick the Right ZIM Combination: Instead of one gigantic file, take advantage of Kiwix's multi-book design. Grab the
nopicEnglish Wikipedia for deep text reference, and pair it with specialized archives (such as Stack Exchange snapshots or medical and survival guides). - Keep Your Local Network Alive: Remember that "offline" means your WAN link to your ISP is down, not that your house has lost electricity. If you want your home server accessible during a storm, your server, network switch, and Wi-Fi router need to sit on an uninterruptible power supply (UPS).
- Mind Your Network Security: According to Kiwix's official server documentation,
kiwix-servecommunicates over plainHTTP/1.1without native SSL/TLS. That is completely fine inside a trusted home LAN, but if you ever expose your Kiwix instance outside your house, always place it behind a reverse proxy with HTTPS enabled. - Treat Local AI as an Optional Search Assistant: If you do wire up
llama.cppand an MCP server, use the LLM to summarize short concepts or point you toward relevant articles—and always verify critical details by clicking straight into the Kiwix article yourself.
References
- I put all of Wikipedia on my home server, and it still answers when the internet is down XDA · 2026-10-16T20:01:20+00:00
- What do mini, nopic and maxi mean in the Wikipedia ZIM files? – Kiwix get.kiwix.org
- With just a Raspberry Pi, you can host your own offline Wikipedia: here's how I did it xda-developers.com