schematrix/HAS_Prepper_Disk

DevOps & Self-hosting

Build a Raspberry Pi 5 offline knowledge server serving Wikipedia, maps and survival references over its own Wi-Fi hotspot.

166
16
HTML
MIT
5 days old

What it does

This project packages an offline knowledge archive for a Raspberry Pi 5. It runs Internet-in-a-Box and Kiwix, serves Wikipedia, maps, medical references and repair guides from the Pi, and exposes them over a hotspot that phones and laptops can join. The repository contributes the hardware recipe, an install script, an SSD setup script, a content download script, Internet-in-a-Box overrides and a custom homepage rather than the underlying server platform itself (overview).

It suits people who want a self-contained reference library where internet access is unavailable or unreliable, and who are comfortable with a Linux command line and Raspberry Pi hardware.

Hardware and preparation

The documented build needs a Raspberry Pi 5 (4 GB or 8 GB), an M.2 NVMe HAT with a 256 GB+ SSD for content, a 32 GB+ microSD card for the OS, a 5V/5A USB-C supply, an active cooler and, preferably, an Ethernet cable during installation (hardware table).

Quick start

  1. Flash Raspberry Pi OS Lite (64-bit) with Raspberry Pi Imager, enabling SSH and setting a username and password. Boot the Pi with the SSD attached and connect it via Ethernet.
  2. Update the system, install Git and clone the repository, then make the scripts executable:
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y git
git clone https://github.com/schematrix/HAS_Prepper_Disk.git
cd HAS_Prepper_Disk
chmod +x install.sh scripts/*.sh
  1. Find the SSD name with lsblk (usually nvme0n1) and mount it at /library:
sudo ./scripts/setup-ssd.sh /dev/nvme0n1

The script asks before formatting a disk that is not ext4 (SSD step).

  1. Run the installer, which prompts for the Wi-Fi name and password and then installs Internet-in-a-Box, taking roughly 30–60 minutes. Re-run the same command if the Pi reboots or the install stops; it resumes (install step):
sudo ./install.sh
  1. Edit config/content.conf to choose content, then download it. The defaults need about 150 GB and can take many hours; interrupted downloads resume on re-run (content step):
sudo ./scripts/download-content.sh
  1. Open http://<pi-ip>/admin (user iiab-admin) and select map regions in the Install Content menu.
  2. Join the Wi-Fi network created by the Pi and open the homepage at http://box.lan/home.

Constraints and known issues

The build is specific to the Raspberry Pi 5 and requires separate NVMe storage for content. The Pi's built-in Wi-Fi is dedicated to the hotspot; adding internet temporarily requires a second USB Wi-Fi adapter — the README notes MediaTek MT7601U adapters work without extra setup and warns never to run sudo iiab-network while such an adapter is plugged in, as it may move the hotspot onto it (optional internet).

After installation Internet-in-a-Box renames the host to box, so hostname.local SSH addresses stop working. Wi-Fi passwords must be 8–63 characters. Map downloads from contabostorage.com fail in some countries such as Turkey; the suggested workaround is installing Cloudflare WARP on the Pi, connecting, retrying, then disconnecting (troubleshooting). Some book collections fail in iPhone Safari private tabs or captive-portal windows because they rely on the browser's local database and need a normal tab.

The repository scripts and homepage are MIT-licensed, while Internet-in-a-Box, Kiwix and all downloaded content keep their own licenses; the project states it is not affiliated with either (license).

HotRepo's take

On its first recorded day on HotRepo's new-project list (2026-11-01), the repository was observed at 148 stars, up 34 during an observation window of roughly two hours, with 14 forks. That single snapshot shows early attention but no sustained trend, and no GitHub all-language daily rank has been recorded. The practical value is in the concrete assembly notes and troubleshooting that sit on top of Internet-in-a-Box, particularly the hostname, bridge and map-download issues — details that are easy to get wrong and hard to diagnose on a headless Pi.

Written by AI from the project's README, updated . The project's own docs are the source of truth.