Skip to Content

✨ Just In Case

Resilience when the internet goes dark. An offline emergency-knowledge search app that keeps preparedness, austere medicine, engineering, and survival references available with zero network connection.

Install & availability

Hub App StoreSearch Just In Case → Install
Web UI port8080
Architecturelinux/amd64
Default ModelGoogle Gemma 4 E4B Mobile (Q4_0) + Gemini Embedding 2 (EmbeddingGemma)
Curated Catalog115 verified sources + BitTorrent ZIM & video archives

Zero-network operation. Once models and documents are provisioned to the jic-sources and jic-data volumes, Just In Case operates with complete independence from external networks, APIs, or cloud infrastructure.

Overview

Just In Case is a locally-hosted offline emergency-knowledge search appliance. It bundles a verified manifest of 115 curated preparedness sources — military field manuals, austere medicine guides, food preservation techniques, water/power engineering handbooks, emergency communications protocols, and civil resilience documents — and makes them searchable in natural language with source-grounded citations.

It is powered by llama.cpp for in-process LLM inference and embeddings, MuPDF for native document text extraction, and SQLite with sqlite-vec and FTS5 for Reciprocal Rank Fusion (RRF) hybrid search.

Content Library & Tiered Profiles

Content is acquired using the built-in content fetcher (fetch-source-data.sh) supporting tiered download profiles:

ProfileFootprintContent ScopeCommand
core (default)~350 MB115 curated emergency PDFs and TXTs across all 9 primary functional categories../helper-scripts/fetch-source-data.sh --profile core
emergency-zims~20 GBKiwix .zim archives: MDWiki, Ready.gov, iFixit Repair Guides, Wikipedia Medicine, MedlinePlus, FAS Tactical Medicine../helper-scripts/fetch-source-data.sh --profile emergency-zims
full-zims~240 GBFull-scale encyclopedias: English Wikipedia Maxi (110 GB), Project Gutenberg (77 GB / 70k books), WikiHow Illustrated (51 GB), TED Talks../helper-scripts/fetch-source-data.sh --profile full-zims
kalite~40 GBKA-Lite consolidated offline educational library (15,414 instructional MP4 videos and thumbnails)../helper-scripts/fetch-source-data.sh --profile kalite

BitTorrent & Magnet Distribution

For multi-gigabyte corpora, JIC includes a zero-dependency BitTorrent creator (helper-scripts/create-torrent.py) that can package arbitrary local folders into .torrent files and magnet URIs with public tracker fallbacks.

Categorization & Knowledge Areas

The 115 curated documents cover 9 core domains:

  1. 100_Survival: FEMA disaster checklists, US Army Survival FM 21-76, Map Reading FM 3-25.26, Kearney Nuclear War Survival Skills, FM 5-103 Survivability & Fortifications, FEMA CERT manual.
  2. 200_Medical: Hesperian Where There Is No Doctor / Dentist / Women, Emergency War Surgery (5th Ed), Austere Medicine, Special Operations Forces Medical Handbook (ST 31-91B), Emergency Childbirth.
  3. 300_Food: USDA Complete Guide to Home Canning, Peace Corps ICE agricultural series (Field Crops, Soils, Grain Storage, Animal Traction, Fish Pond Culture, Beekeeping).
  4. 400_Engineering: NREL Solar Resource, VITA Village Technology, Gravity-Flow Water Systems, SODIS, Army TMs (Hand Tools, Welding, Machine Tools, Hydraulics, Electrical, Plumbing FM 5-420, Roads FM 5-430, Generators).
  5. 500_Comms: ARRL Emergency Comms, CISA NIFOG v2.02, CISA AUXFOG, FCC Part 97 Amateur Radio, FM 24-18 Tactical Radio, FM 24-19 Radio Operator’s Handbook.
  6. 600_Education: OpenStax Elementary Algebra, Anatomy & Physiology 2e, College Physics 2e, Chemistry 2e.
  7. 700_Social: Universal Declaration of Human Rights, US Constitution, Federalist Papers, King James Bible.
  8. 800_Software: Think Python 2e, Think OS, Eloquent JavaScript 3e, Pro Git 2e.
  9. 900_Transport: TM 9-8000 Automotive Vehicles, FM 21-305 Wheeled Vehicle Driver, FM 20-22 Vehicle Recovery, NAVEDTRA 14050 Construction Mechanic, USCG Seamanship & Navigation.

Architecture

Setup & Quickstart

Fetch Models

Download the default GGUF models (~2.3 GB total):

./helper-scripts/fetch-models.sh

Launch Container Stack

Start the server and background ingestion watcher:

docker compose up --build -d

Populate Knowledge Library

Fetch the default curated emergency catalog:

docker compose --profile fetch run --rm content-fetch

Verify and Query

Open http://localhost:8080 or execute an API query:

curl -s -X POST http://localhost:8080/query \ -H "Content-Type: application/json" \ -d '{"query": "How do I purify surface water with chlorine bleach?"}'
Last updated on