✨ Just In Case
Resilience when the internet goes dark. An offline emergency-knowledge search app that keeps preparedness and survival references available with no connection at all.
Install & availability
Not yet available. The build was historically blocked and a fix is in flight (see below). Until that fix merges and publishes,
ci-just-in-caseis not installable from the Hub.
| Hub App Store | Search Just In Case → Install (once published) |
| Container image | ghcr.io/companionintelligence/ci-just-in-case:latest (not yet published) |
| Web UI port | 8080 |
| Architecture | linux/amd64 only |
Status, honestly: the container build was blocked for a long time. The in-flight fix pins llama.cpp to tag b6591 and adds a degraded mode so the app can run even without GGUF models present. Until that change is merged and the image is published, Just In Case cannot be installed on the Hub.
amd64-only. This app is not multi-arch. Cross-compiling llama.cpp for arm64 under QEMU is impractical, so only linux/amd64 is built.
Overview
Just In Case is a locally-hosted offline emergency-knowledge search app. It bundles curated preparedness content — checklists, guides, first aid procedures, and scenario playbooks — and makes it searchable entirely offline. It is built on llama.cpp (inference), MuPDF (document extraction), and sqlite-vec (vector search), with a static UI served on port 8080.
When the internet is down — power grid failure, natural disaster, communications blackout — Just In Case runs from your Hub’s local storage and compute.
Current capabilities
What Just In Case does today (once published):
- Offline knowledge search over bundled preparedness content
- Local-only inference via llama.cpp with models bundled locally (no model download required at runtime)
- Document extraction with MuPDF and vector search with sqlite-vec
- A static UI on port 8080
- A degraded mode: if no GGUF models are present, the UI and status pages stay up but queries return HTTP 503
Models are bundled locally. With models present, queries are answered fully offline. With no models, the app runs in degraded mode — the interface and status are reachable, but search queries return a 503 until a model is available.
Use Cases
- “What’s in a 72-hour bug-out bag?” — offline checklist and rationale
- “How do I purify water without filters?” — step-by-step local reference
- “Earthquake just happened. What do we do?” — immediate-action guidance
- Keep critical preparedness knowledge searchable with no internet
Architecture
Just In Case (static UI, port 8080)
│
▼
Query Engine
├── Document extraction (MuPDF)
├── Vector search (sqlite-vec)
└── Local inference (llama.cpp, bundled GGUF models)
│
▼
Offline response (or HTTP 503 in degraded mode if no models)All data and models stay on your Hub.
Setup
Wait for publication
Until the llama.cpp b6591 / degraded-mode fix is merged and the image is published, the app won’t appear as installable. (This page will be updated when it ships.)
Install from Hub
Once published, search for Just In Case in the Hub app store and install.
Verify offline operation
After install, confirm the UI is reachable on port 8080. With bundled models present, run a query to confirm answers. If you see 503 responses, the app is in degraded mode (no models found).
Troubleshooting
App isn’t in the app store It hasn’t been published yet — the build fix is still in flight. See Install & availability.
UI loads but queries return 503 That’s degraded mode: no GGUF model was found. Provide/restore the bundled models so inference can run.
No arm64 build Just In Case is amd64-only by design. Run it on an x86_64 appliance.
Links
- GitHub Repository
- Spellbook
- Kiwix — offline reference library (Wikipedia, etc.)