So you want to survive the apocalypse? Or maybe you’re just tired of your ISP fucking you over every month. Or hell, maybe you just think it would be cool to have your own little digital kingdom. Either way, I’ve got something for you.
I built this offgrid-tools stack because relying on “the cloud” is getting old. Plus, there’s something deeply satisfying about having your own AI chatbot that can’t report your conversations to anyone. This isn’t some hipster “digital detox” bullshit – this is hardcore offline infrastructure that happens to be pretty fucking fun to play with.
What The Hell Is This?
It’s a Docker Compose stack that gives you everything you need to run your own little corner of the internet. No connectivity required once you’ve got it set up. Think of it as your digital survival kit:
- AI Chat (Ollama + Open WebUI) – Your personal AI that can’t snitch on you
- Offline Wikipedia (Kiwix) – All of human knowledge, zero ads, zero tracking
- Local IRC (InspIRCd + TheLounge) – Chat with your friends without Zuckerberg watching
- File Server – Your own cloud storage that actually belongs to you
- Audio Streaming (Icecast) – Run your own radio station from your basement
- Maps – Navigation that works when cell towers don’t
The Stack That Actually Works
Here’s the beautiful part – everything runs in containers. No dependency hell, no “works on my machine” bullshit.
# Clone the repo
git clone https://github.com/psyb0t/offgrid-tools.git
cd offgrid-tools
# Get the whole fucking internet offline
./trigger-downloads.sh
# Fire it up
docker-compose up -d
# You're now your own ISP
The download script grabs everything: Docker images, Android APKs, bootable ISOs, ZIM archives. All the useful shit, none of the tracking.
The Real Technical Breakdown
Docker Compose Stack Architecture
This isn’t some toy setup. Each service runs in its own container on a custom offgrid
network:
Kiwix (:8000
) – Serves ZIM archives containing offline websites. This is your Wikipedia, Stack Overflow, documentation sites, and more. The container mounts ./zim/data
as read-only and serves everything with wildcard matching.
Ollama (:11434
) – The AI backend with full GPU acceleration support (NVIDIA driver required). Stores models in ./ollama/data
so your downloaded LLMs persist. Configured to bind to all interfaces so other containers can reach it.
Open WebUI (:8001
) – ChatGPT-like interface that connects to Ollama. Has its own data persistence and runs completely offline once configured. Environment variable HF_HUB_OFFLINE=1
prevents it from trying to download shit from Hugging Face.
Ollama Chat Party (:8002
) – Multi-user AI chat with RAG (Retrieval-Augmented Generation) support. Password protected (offgrid123
) and can index documents you throw in ./ollama-chat-party/data
. Multi-user AI chat with document search.
InspIRCd (:6667
) – Full IRC server for local communication. Runs as non-root user for security. Perfect for when you need to coordinate with others in your bunker.
TheLounge (:8003
) – Web-based IRC client that connects to the local IRC server. No more fucking around with terminal IRC clients if you don’t want to.
Icecast (:8004
) – Audio streaming server. Set up your own radio station, stream music, or broadcast emergency communications. All passwords are offgrid123
because security through obscurity is bullshit anyway when you’re offline.
Nginx File Server (:8005
) – HTTP file browser with basic auth (offgrid:offgrid123
). Serves all your downloaded content: APKs, ISOs, Docker images, ZIM files, maps, and custom files. Has directory listings enabled so you can browse everything.
The Download Arsenal
The trigger-downloads.sh
script orchestrates four different download systems:
Docker Images (save-docker-images.sh
) – Pulls and saves all container images as .tar
files. Includes versioning and can be loaded on air-gapped systems with load-docker-images.sh
.
Android APKs (apps/android/apk/download.sh
) – Downloads essential Android apps:
- Kiwix mobile reader
- F-Droid app store
- VLC media player
- Termux terminal emulator
- Organic Maps for offline navigation
- Briar messenger for mesh networking
- BitChat for P2P communication
- KeePassDX password manager
- SDR++ for software-defined radio
Bootable ISOs (apps/iso/download.sh
) – Gets you bootable operating systems for when you need to resurrect dead hardware or set up new systems.
ZIM Archives (zim/download.sh
) – This is where the magic happens. Downloads gigabytes of offline content:
- FreeCodeCamp tutorials
- Programming documentation (C++, Go, Docker, JavaScript, HTML, CSS, Nginx)
- Linux man pages and command references
- Wikipedia (simplified version)
- Survival and preparedness guides
- Ham radio resources
- Signal identification databases
- GNU Radio documentation
- Cooking recipes (Based Cooking – no bullshit recipes)
- Music theory resources
- Computer science textbooks
Data Persistence Strategy
Everything important persists in mapped volumes:
ollama/data/ - AI models and configuration
openwebui/data/ - Chat history and user settings
zim/data/ - Offline web archives (ZIM files)
apps/android/apk/data/ - Downloaded Android applications
apps/iso/data/ - Bootable operating system images
docker-images/ - Saved container images for offline loading
file-server/other-files/ - Custom files you want to serve
maps/data/ - Offline map data
thelounge/ - IRC client configuration and logs
inspircd/conf/ - IRC server configuration
inspircd/logs/ - IRC server logs
ollama-chat-party/data/ - RAG documents and chat data
Network Architecture
The offgrid
bridge network isolates all services while allowing internal communication. Port mappings expose only what you need to the host system. Services communicate via container names (e.g., http://ollama:11434
), not IP addresses.
Content Creation and Customization
Custom Website Archiving
Want to archive your favorite sites? Use the ZIM creation script:
./zim/create.sh https://some-useful-site.com custom_name
This uses Docker and Zimit to crawl websites and create ZIM archives that Kiwix can serve offline. Configurable worker count and output directory. Perfect for archiving documentation sites, forums, or any web content you need offline access to.
Maps Download System
The maps system downloads OpenStreetMap data for offline navigation:
cd maps
./maps.sh list europe # See available regions
./maps.sh list romania # See specific country data
./maps.sh list romania | ./maps.sh download # Download everything for Romania
Downloads .mwm files from the Organic Maps project for offline navigation. Auto-detects the latest map version and supports filtering by region or country. Map data gets stored in maps/data/
and served through the file server for easy transfer to mobile devices.
Mobile Integration
The zim/copy-to-android.sh
script transfers ZIM files directly to Android devices over ADB. Automatically detects connected devices and copies archives to the Kiwix app directory. No more fucking around with manual file transfers.
Development Environment
The apps/linux/deb/install.sh
script sets up a comprehensive survival toolkit on Ubuntu/Debian systems. This isn’t just development tools – it’s the full package:
Programming Stack: Python, Go, PHP, GCC, GDB, Docker, QEMU/KVM virtualization
Radio Communications: GNU Radio, RTL-SDR, GQRX, FLDigi, JS8Call, WSJTX, Direwolf
Security Tools: John the Ripper, Hashcat, Binwalk, Foremost, Sleuthkit
System Utilities: Wine, XFCE desktop, ISO creation tools, audio processing
Emergency Radio: Ham radio logging, digital modes, APRS, satellite tracking
Over 200 packages covering everything from reverse engineering to emergency communications.
Why This Beats Everything Else
Most “offline solutions” are toys that fall apart the moment you actually need them. This stack was built for people who want something that actually fucking works:
It works offline – Zero external dependencies once downloaded. Every service is self-contained.
Real AI, not chatbots – Full Ollama stack supports any models you can download. Code Llama, Mistral, whatever fits your hardware.
Useful content – Programming docs, Wikipedia, survival guides, radio references, maps – the stuff you actually need instead of TikTok bullshit.
Communication tools – IRC server, mesh messaging, audio streaming. Build your own social network.
Development ready – Full documentation for every major programming language, containerized development environment.
Actually reliable – Everything persists across container restarts. Your data survives reboots, updates, hardware changes.
Hardware Requirements
Minimum: 8GB RAM, 100GB storage, x86_64 CPU
Recommended: 16GB RAM, 500GB+ SSD, discrete GPU for AI acceleration
Storage breakdown: Docker images (~10GB), ZIM archives (~50GB), APKs (~1GB), ISOs (~20GB), maps (varies), AI models (~10GB+ per model)
GPU acceleration requires NVIDIA Docker runtime. AMD/Intel graphics work but performance suffers for AI workloads.
Security Model
This isn’t designed for internet-facing deployment. It’s for local/offline use where physical security matters more than network security. Default passwords are intentionally simple because if someone has access to your offline bunker network, you have bigger problems.
Authentication exists to prevent accidental access, not determined attackers. Focus is on functionality over paranoia.
Get The Fucking Code
Ready to build your own digital kingdom?
GitHub Repository: https://github.com/psyb0t/offgrid-tools
Built for scenarios where “just use the cloud” isn’t an option.