project-nomad Documentation

Project NOMAD is an offline-first knowledge and education server. Wikipedia, thousands of books, courses, maps, and optional local AI, all running on...

35,754 stars TypeScript TypeScript 1 file · ~30,370 tokens
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy project-nomad on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name project-nomad --restart always crosstalk-solutions/project-nomad:latest

File: README.md


Project NOMAD is a self-contained, offline-first knowledge and education server packed with critical tools, knowledge, and AI to keep you informed and empowered — anytime, anywhere.

Installation & Quickstart

Project NOMAD can be installed on any Debian-based operating system (we recommend Ubuntu 26.04 LTS; 24.04 LTS and Debian 12 are also supported). Installation is completely terminal-based, and all tools and resources are designed to be accessed through the browser, so there's no need for a desktop environment if you'd rather setup NOMAD as a "server" and access it through other clients.

Note: sudo/root privileges are required to run the install script

Quick Install (Debian-based OS Only)

bash
sudo apt-get update && \
sudo apt-get install -y curl && \
curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/install_nomad.sh \
  -o install_nomad.sh && \
sudo bash install_nomad.sh

Project NOMAD is now installed on your device! Open a browser and navigate to http://localhost:8080 (or http://DEVICE_IP:8080) to start exploring!

For a complete step-by-step walkthrough (including Ubuntu installation), see the Installation Guide. For Windows users, see the WSL2 install guide — community-supported path covering native Docker and Docker Desktop install routes.

Advanced Installation

For more control over the installation process, copy and paste the Docker Compose template into a docker-compose.yml file and customize it to your liking (be sure to replace any placeholders with your actual values). Then, run docker compose up -d to start the Command Center and its dependencies. Note: this method is recommended for advanced users only, as it requires familiarity with Docker and manual configuration before starting.

How It Works

NOMAD is a management UI ("Command Center") and API that orchestrates a collection of containerized tools and resources via Docker. It handles installation, configuration, and updates for everything — so you don't have to.

Built-in capabilities include:

  • AI Chat with Knowledge Base — local AI chat powered by Ollama or you can use OpenAI API compatible software such as LM Studio or llama.cpp, with document upload and semantic search (RAG via Qdrant)
  • Information Library — offline Wikipedia, medical references, ebooks, and more via Kiwix
  • Education Platform — Khan Academy courses with progress tracking via Kolibri
  • Offline Maps — downloadable regional maps via ProtoMaps
  • Data Tools — encryption, encoding, and analysis via CyberChef
  • Notes — local note-taking via FlatNotes
  • System Benchmark — hardware scoring with a community leaderboard
  • Supply Depot — a one-click app catalog (PDF tools, file browser, e-book library, password manager, and more) plus the ability to run your own custom Docker containers
  • Automatic Updates — opt-in, hands-off updates for the core software, installed apps, and offline content, on a schedule you control
  • Easy Setup Wizard — guided first-time configuration with curated content collections

NOMAD also includes built-in tools like a Wikipedia content selector, ZIM library manager, and content explorer.

What's Included

Capability Powered By What You Get
Information Library Kiwix Offline Wikipedia, medical references, survival guides, ebooks
AI Assistant Ollama + Qdrant Built-in chat with document upload and semantic search
Education Platform Kolibri Khan Academy courses, progress tracking, multi-user support
Offline Maps ProtoMaps Downloadable regional maps for offline viewing and search
Data Tools CyberChef Encryption, encoding, hashing, and data analysis
Notes FlatNotes Local note-taking with markdown support
System Benchmark Built-in Hardware scoring, Builder Tags, and community leaderboard
Supply Depot Built-in One-click app catalog + bring-your-own custom Docker containers

Device Requirements

While many similar offline survival computers are designed to be run on bare-minimum, lightweight hardware, Project NOMAD is quite the opposite. To install and run the
available AI tools, we highly encourage the use of a beefy, GPU-backed device to make the most of your install.

At its core, however, NOMAD is still very lightweight. For a barebones installation of the management application itself, the following minimal specs are required:

Note: Project NOMAD is not sponsored by any hardware manufacturer and is designed to be as hardware-agnostic as possible. The hardware listed below is for example/comparison use only

Minimum Specs

  • Processor: 2 GHz dual-core processor or better
  • RAM: 4GB system memory
  • Storage: At least 5 GB free disk space
  • OS: Debian-based (Ubuntu 26.04 LTS recommended)
  • Stable internet connection (required during install only)

To run LLMs and other included AI tools:

Optimal Specs

  • Processor: AMD Ryzen 7 or Intel Core i7 or better
  • RAM: 32 GB system memory
  • Graphics: NVIDIA RTX 3060 or AMD equivalent or better (more VRAM = run larger models)
  • Storage: At least 250 GB free disk space (preferably on SSD)
  • OS: Debian-based (Ubuntu 26.04 LTS recommended)
  • Stable internet connection (required during install only)

For detailed build recommendations at three price points ($150–$1,000+), see the Hardware Guide.

Again, Project NOMAD itself is quite lightweight — it's the tools and resources you choose to install with NOMAD that will determine the specs required for your unique deployment

Running AI models on a different host

By default, NOMAD's installer will attempt to setup Ollama on the host when the AI Assistant is installed. However, if you would like to run the AI model on a different host, you can go to the settings of the AI assistant and input a URL for either an ollama or OpenAI-compatible API server (such as LM Studio).
Note that if you use Ollama on a different host, you must start the server with this option: OLLAMA_HOST=0.0.0.0.
Ollama is the preferred way to use the AI assistant, as it has features such as model download that OpenAI API does not support. So when using LM Studio, for example, you will have to use LM Studio to download models.
You are responsible for the setup of Ollama/OpenAI server on the other host.

Frequently Asked Questions (FAQ)

For answers to common questions about Project NOMAD, please see our FAQ page.

About Internet Usage & Privacy

Project NOMAD is designed for offline usage. An internet connection is only required during the initial installation (to download dependencies) and if you (the user) decide to download additional tools and resources at a later time. Otherwise, NOMAD does not require an internet connection and has ZERO built-in telemetry.

To test internet connectivity, NOMAD first attempts to make a request to Cloudflare's utility endpoint, https://1.1.1.1/cdn-cgi/trace. If that endpoint is unreachable (for example, because your network blocks 1.1.1.1), it falls back to other endpoints the application already contacts (the GitHub API and the Project NOMAD API) and considers the connection online if any of them respond.

You can override the endpoint used for this check in two ways. The connectivity test URL can be configured from the UI under Settings → Advanced (stored locally on your instance), or you can set the INTERNET_STATUS_TEST_URL environment variable. When set, the environment variable always takes precedence over the UI-configured value. If neither is set, the built-in defaults above are used.

About Security

By design, Project NOMAD is intended to be open and available without hurdles — it includes no authentication. If you decide to connect your device to a local network after install (e.g. for allowing other devices to access its resources), you can block/open ports to control which services are exposed.

Will authentication be added in the future? Maybe. It's not currently a priority, but if there's enough demand for it, we may consider building in an optional authentication layer in a future release to support use cases where multiple users need access to the same instance but with different permission levels (e.g. family use with parental controls, classroom use with teacher/admin accounts, etc.). We have a suggestion for this on our public roadmap, so if this is something you'd like to see, please upvote it here: https://roadmap.projectnomad.us/posts/1/user-authentication-please-build-in-user-auth-with-admin-user-roles

For now, we recommend using network-level controls to manage access if you're planning to expose your NOMAD instance to other devices on a local network. NOMAD is not designed to be exposed directly to the internet, and we strongly advise against doing so unless you really know what you're doing, have taken appropriate security measures, and understand the risks involved.

Contributing

Contributions are welcome and appreciated! Please see CONTRIBUTING.md for guidelines on how to contribute to the project.

Testing Auto-Updates (Dry Run)

The Command Center can automatically install minor/patch updates of itself during a configurable window, after a cool-off period, and only when pre-flight checks pass (sufficient disk for the new image, no downloads or app installs in progress). Major versions always require a manual update.

Because exercising this logic with real version bumps is impractical, an Ace command runs the entire decision pipeline without ever triggering an update. Run it from the admin/ directory:

bash
# 1) Deterministic scenario suite — no network, DB, or Docker required.
#    Proves every branch (major-only, cool-off, prerelease/draft, window wrap, …)
#    and exits non-zero on failure, so it's safe to wire into CI.
node ace auto-update:dry-run --scenarios

# 2) Simulate "what would happen if I were running 1.32.0 right now?"
#    against the LIVE GitHub releases feed and real pre-flight checks:
node ace auto-update:dry-run --current=1.32.0 --force-enabled

# 3) Fully offline simulation with a canned release list and a fixed clock:
node ace auto-update:dry-run --current=1.32.0 --force-enabled \
  --releases-file=./fixtures/releases.json --now=2026-06-04T21:00:00Z \
  --window-start=20:00 --window-end=23:00 --cooloff=72 --skip-preflight

It prints the resolved decision — current version, whether the clock is inside the window, the eligible target (if any), and pre-flight blockers — ending in a clear verdict such as WOULD UPDATE → v1.33.2 or WOULD NOT UPDATE (outside-window): …. No real update is ever requested.

Flag Description
--scenarios Run the built-in deterministic scenario suite and exit
--current=<version> Simulate this currently-running version (e.g. 1.32.0)
--force-enabled Treat auto-update as enabled, ignoring the saved setting
--cooloff=<hours> Override the cool-off period
--window-start=<HH:MM> / --window-end=<HH:MM> Override the update window
--now= Simulate the clock at a specific time
--releases-file= Use a local JSON releases array instead of fetching GitHub (offline)
--skip-preflight Bypass the Docker/disk/queue pre-flight checks

Community & Resources

License

Project NOMAD is licensed under the Apache License 2.0.

Helper Scripts

Once installed, Project NOMAD has a few helper scripts should you ever need to troubleshoot issues or perform maintenance that can't be done through the Command Center. All of these scripts are found in Project NOMAD's install directory, /opt/project-nomad

Start Script - Starts all installed project containers

bash
sudo bash /opt/project-nomad/start_nomad.sh

Stop Script - Stops all installed project containers

bash
sudo bash /opt/project-nomad/stop_nomad.sh

Update Script - Attempts to pull the latest images for the Command Center and its dependencies (i.e. mysql) and recreate the containers. Note: this *only* updates the Command Center containers. It does not update the installable application containers - that should be done through the Command Center UI

bash
sudo bash /opt/project-nomad/update_nomad.sh

Uninstall Script - Need to start fresh? Use the uninstall script to make your life easy. Note: this cannot be undone!

bash
curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/uninstall_nomad.sh -o uninstall_nomad.sh && sudo bash uninstall_nomad.sh

File: admin/docs/about.md

About Project NOMAD

Project NOMAD ("NOMAD" for short) is a project started in 2025 by Chris Sherwood of Crosstalk Solutions, LLC. The goal of the project is not to create just another utility for storing offline resources, but rather to allow users to run their own ultimate "survival computer". The name started as a backronym, Node for Offline Maps, Archives, and Data, but these days we just call it NOMAD.

While many similar offline survival computers are designed to be run on bare-minimum, lightweight hardware, Project NOMAD is quite the opposite. To install and run the available AI tools, we highly encourage the use of a beefy, GPU-backed device to make the most of your install. See the Hardware Guide for detailed build recommendations at three price points.

Since its initial release, NOMAD has grown to include built-in AI chat with a Knowledge Base for document-aware responses, a System Benchmark with a community leaderboard, curated content collections with tiered options, and an Easy Setup Wizard to get new users up and running quickly.

Project NOMAD is open source, released under the Apache License 2.0.


File: admin/docs/community-add-ons.md

Community Add-Ons

Project NOMAD ships with a curated set of built-in tools and content, but the community has started building add-ons that extend the platform with specialized offline content packs. These are third-party projects, not maintained by the NOMAD team. Install them at your own discretion, and please direct any bugs or feature requests to the add-on's own repository.

Have you built a NOMAD add-on? Open an issue on the Project NOMAD GitHub repository or send us a note through the contact form on projectnomad.us, and we'll review it for inclusion on this page.


ZIM Content Packs

ZIM content packs drop additional offline reference material into your existing Kiwix library. They typically ship with an install.sh script that downloads source material, builds a ZIM file with zimwriterfs, and registers it with your running Kiwix container.

U.S. Military Field Manuals

Repository: github.com/jrsphoto/ZIM-military-field-manuals

Roughly 180 public-domain U.S. military field manuals covering field medicine, survival, combat first aid, map reading, and more. Built into a searchable ZIM that drops into your Kiwix library.

Final ZIM size is around 2 GB. The builder downloads about 2 GB of source PDFs from archive.org during the build.

W3Schools Programming Archive

Repository: github.com/kennethbrewer3/ZIM-w3schools-offline

A full offline copy of the W3Schools programming tutorials, covering HTML, CSS, JavaScript, Python, SQL, and more. Good for learning to code, looking up syntax, or teaching programming in an environment without internet.

Final ZIM size is around 700 MB. The builder downloads about 6 GB of source files from a GitHub mirror during the build.


Installing a Community Add-On

Each add-on has its own install instructions, but most ZIM packs follow the same shape:

  1. Clone the add-on's repository onto your NOMAD host over SSH.
  2. Check the README for required build dependencies. Most need git, python3, unzip, and zim-tools.
  3. Run the included install.sh with a --deploy flag, pointing it at your Kiwix library path (/opt/project-nomad/storage/zim) and your Kiwix container name (nomad_kiwix_server).
  4. The script builds the ZIM, copies it into your Kiwix library, registers it with Kiwix, and restarts the Kiwix container.

Once the script finishes, the new content will appear in your Information Library the next time you load it.

Expect the initial build to take anywhere from a few minutes to an hour or more depending on the add-on's size and your host's CPU.


A Note on Support

These add-ons are community-built and community-maintained. If something goes wrong with an install script or the content inside a ZIM, please open an issue on the add-on's own repository rather than Project NOMAD's. We're happy to help if the issue is with NOMAD itself, for example if Kiwix isn't picking up a new ZIM after an install, but we can't maintain or support third-party content.


File: admin/docs/faq.md

Frequently Asked Questions

General Questions

What is NOMAD?

NOMAD is a personal server that gives you access to knowledge, education, and AI assistance without requiring an internet connection. It runs on your own hardware, keeping your data private and accessible anytime.

Do I need internet to use NOMAD?

No — that's the whole point. Once your content is downloaded, everything works offline. You only need internet to:

  • Download new content
  • Update the software
  • Sync the latest versions of Wikipedia, maps, etc.

What operating system does NOMAD need?

Debian-based Linux. Ubuntu 26.04 LTS is what we recommend and test on for new installs.

Ubuntu 24.04 LTS and Debian 12 are also supported, so there is no need to reinstall if you are already on one of those. Windows users can follow the WSL2 guide, which is community-supported.

macOS and non-Debian distributions like Fedora or Arch are not officially supported. NOMAD does not need a desktop environment, so Ubuntu Server is a fine choice if you are comfortable at the terminal.

For a full walkthrough including the Ubuntu install itself, see the Installation Guide.

What hardware do I need?

NOMAD is designed for capable hardware, especially if you want to use the AI features. Recommended:

  • Modern multi-core CPU (AMD Ryzen 7 with Radeon graphics is the community sweet spot)
  • 16GB+ RAM (32GB+ for best AI performance)
  • SSD storage (size depends on content — 500GB minimum, 1TB+ recommended)
  • NVIDIA or AMD GPU recommended for faster AI responses

For detailed build recommendations at three price points ($150–$1,000+), see the Hardware Guide.

How much storage do I need?

It depends on what you download:

  • Full Wikipedia: ~95GB
  • Khan Academy courses: ~50GB
  • Medical references: ~500MB
  • US state maps: ~2-3GB each
  • AI models: 10-40GB depending on model

Start with essentials and add more as needed.


Content Questions

How do I add more Wikipedia content?

  1. Go to Settings (hamburger menu → Settings)
  2. Click Content Explorer
  3. Browse available Wikipedia packages
  4. Click Download on items you want

You can also use the Content Explorer to browse all available ZIM content beyond Wikipedia.

How do I add more educational courses?

  1. Open Kolibri
  2. Sign in as an admin
  3. Go to Device → Channels
  4. Browse and import available channels

How current is the content?

Content is as current as when it was last downloaded. Wikipedia snapshots are typically updated monthly. Check the file names or descriptions for dates.

Can I add my own files?

Yes — with the Knowledge Base. Upload PDFs, text files, and other documents to the Knowledge Base, and the AI can reference them when answering your questions. This uses semantic search to find relevant information from your uploaded files.

For Kiwix content, NOMAD uses standard ZIM files. For educational content, Kolibri uses its own channel format.

What are curated collection tiers?

When selecting content in the Easy Setup wizard or Content Explorer, collections are organized into three tiers:

  • Essential — Core content for the category (smallest download)
  • Standard — Essential plus additional useful content
  • Comprehensive — Everything available for the category (largest download)

This helps you balance content coverage against storage usage.


AI Questions

How do I use the AI chat?

  1. Go to AI Chat from the Command Center
  2. Type your question or request
  3. The AI responds in conversational style

The AI must be installed first — enable it during Easy Setup or install it from the Supply Depot page.

How do I upload documents to the Knowledge Base?

  1. Go to Knowledge Base →
  2. Upload your documents (PDFs, text files, etc.)
  3. Documents are processed and indexed automatically
  4. Ask questions in AI Chat — the AI will reference your uploaded documents when relevant

You can also remove documents from the Knowledge Base when they're no longer needed.

NOMAD documentation is automatically added to the Knowledge Base when the AI Assistant is installed.

What is the System Benchmark?

The System Benchmark tests your hardware performance and generates a NOMAD Score — a weighted composite of CPU, memory, disk, and AI performance. You can create a Builder Tag (a NOMAD-themed identity like "Tactical-Llama-1234") and share your results with the community leaderboard.

Go to System Benchmark → to run one.

What is the Early Access Channel?

The Early Access Channel lets you opt in to receive release candidate builds with the latest features and improvements before they hit stable releases. You can enable or disable it from Settings → Check for Updates. Early access builds may contain bugs — if you prefer stability, stay on the stable channel.


Troubleshooting

A feature isn't loading or shows a blank page

Try these steps:

  1. Wait 30 seconds — some features take time to start
  2. Refresh the page (Ctrl+R or Cmd+R)
  3. Go back to the Command Center and try again
  4. Check Settings → System to see if the service is running
  5. Try restarting the service (Stop, then Start in the Supply Depot)

Maps show a gray/blank area

The Maps feature requires downloaded map data. If you see a blank area:

  1. Go to Settings → Maps Manager
  2. Download map regions for your area
  3. Wait for downloads to complete
  4. Return to Maps and refresh

ERROR: Failed to load the XML library file '/data/kiwix-library.xml'

This usually means the Information Library service started before its Kiwix library index was fully initialized.

Try this recovery flow:

  1. Go to Supply Depot
  2. Stop Information Library (Kiwix)
  3. Wait 10-15 seconds, then start it again
  4. If the error persists, run Force Reinstall for Information Library from the same page

After restart/reinstall completes, refresh the Information Library page.

AI responses are slow

Local AI requires significant computing power. To improve speed:

  • Add a GPU — An NVIDIA GPU with the NVIDIA Container Toolkit can improve AI speed by 10-20x or more
  • Close other applications on the server
  • Ensure adequate cooling (overheating causes throttling)
  • Consider using a smaller/faster AI model if available

How do I enable GPU acceleration for AI?

NOMAD automatically detects NVIDIA GPUs when the NVIDIA Container Toolkit is installed on the host system. To set up GPU acceleration:

  1. Install an NVIDIA GPU in your server (if not already present)
  2. Install the NVIDIA Container Toolkit on the host — follow the official installation guide
  3. Reinstall the AI Assistant — Go to Supply Depot, find AI Assistant, and click Force Reinstall

NOMAD will detect the GPU during installation and configure the AI to use it automatically. You'll see "NVIDIA container runtime detected" in the installation progress.

Tip: Run a System Benchmark before and after to see the difference. GPU-accelerated systems typically see 100+ tokens per second vs 10-15 on CPU only.

I added/changed my GPU but AI is still slow

When you add or swap a GPU, NOMAD needs to reconfigure the AI container to use it:

  1. Make sure the NVIDIA Container Toolkit is installed on the host
  2. Go to Supply Depot
  3. Find the AI Assistant and click Force Reinstall

Force Reinstall recreates the AI container with GPU support enabled. Without this step, the AI continues to run on CPU only.

I see a "GPU passthrough not working" warning

NOMAD checks whether your GPU is actually accessible inside the AI container. If a GPU is detected on the host but isn't working inside the container, you'll see a warning banner on the System Information and AI Settings pages. Click the "Fix: Reinstall AI Assistant" button to recreate the container with proper GPU access. This preserves your downloaded AI models.

AI Chat not available

The AI Chat page requires the AI Assistant to be installed first:

  1. Go to Supply Depot
  2. Install the AI Assistant
  3. Wait for the installation to complete
  4. The AI Chat will then be accessible from the home screen or Chat

Knowledge Base upload stuck

If a document upload appears stuck in the Knowledge Base:

  1. Check that the AI Assistant is running in Settings → Supply Depot
  2. Large documents take time to process — wait a few minutes
  3. Try uploading a smaller document to verify the system is working
  4. Check Settings → System for any error messages

Benchmark won't submit to leaderboard

To share results with the community leaderboard:

  • You must run a Full Benchmark (not System Only or AI Only)
  • The benchmark must include AI results (AI Assistant must be installed and working)
  • Your score must be higher than any previous submission from the same hardware

If submission fails, check the error message for details.

"Service unavailable" or connection errors

The service might still be starting up. Wait 1-2 minutes and try again.

If the problem persists:

  1. Go to Settings → Supply Depot
  2. Find the problematic service
  3. Click Restart
  4. Wait 30 seconds, then try again

Downloads are stuck or failing

  1. Check your internet connection
  2. Go to Settings and check available storage
  3. If storage is full, delete unused content
  4. Cancel the stuck download and try again

The server won't start

If you can't access the Command Center at all:

  1. Verify the server hardware is powered on
  2. Check network connectivity
  3. Try accessing directly via the server's IP address
  4. Check server logs if you have console access

I forgot my Kolibri password

Kolibri passwords are managed separately:

  1. If you're an admin, you can reset user passwords in Kolibri's user management
  2. If you forgot the admin password, you may need to reset it via command line (contact your administrator)

Updates and Maintenance

How do I update NOMAD?

  1. Go to Settings → Check for Updates
  2. If an update is available, click to install
  3. The system will download updates and restart automatically
  4. This typically takes 2-5 minutes

Should I update regularly?

Yes, while you have internet access. Updates include:

  • Bug fixes
  • New features
  • Security improvements
  • Performance enhancements

Can NOMAD update itself automatically?

Yes. NOMAD can keep its software, its installed apps, and its content current on its own. Automatic updates are opt-in and off by default — you turn on what you want from Settings → Updates (and, for apps, a per-app toggle in the Supply Depot). They only run inside a time window you choose, after safety checks, and never apply major version jumps automatically. See the Updates guide for a full walkthrough.

How do I update content (Wikipedia, etc.)?

Content updates are separate from software updates:

  1. Go to Settings → Content Manager or Content Explorer
  2. Check for newer versions of your installed content
  3. Download updated versions as needed

You can also turn on automatic content updates so installed Wikipedia/ZIM libraries and map regions refresh on their own overnight — see the Updates guide.

Tip: New Wikipedia snapshots are released approximately monthly.

What happens if an update fails?

The system is designed to recover gracefully. If an update fails:

  1. The previous version should continue working
  2. Try the update again later
  3. Check Settings → System for error messages

Command-Line Maintenance

For advanced troubleshooting or when you can't access the web interface, NOMAD includes helper scripts in /opt/project-nomad:

Start all services:

bash
sudo bash /opt/project-nomad/start_nomad.sh

Stop all services:

bash
sudo bash /opt/project-nomad/stop_nomad.sh

Update Command Center:

bash
sudo bash /opt/project-nomad/update_nomad.sh

Note: This updates the Command Center only, not individual apps. Update apps through the web interface.

Uninstall NOMAD:

bash
curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/uninstall_nomad.sh -o uninstall_nomad.sh
sudo bash uninstall_nomad.sh

Warning: This cannot be undone. All data will be deleted.


Privacy and Security

Is my data private?

Yes. NOMAD runs entirely on your hardware. Your searches, AI conversations, and usage data never leave your server.

Can others access my server?

By default, NOMAD is accessible on your local network. Anyone on the same network can access it. For public networks, consider additional security measures.

Does the AI send data anywhere?

No. The AI runs completely locally. Your conversations are not sent to any external service. The AI chat is built into the Command Center — there's no separate service to configure.


Getting More Help

The AI can help

Try asking a question in AI Chat. The local AI can answer questions about many topics, including technical troubleshooting. If you've uploaded NOMAD documentation to the Knowledge Base, it can also help with NOMAD-specific questions.

Check the documentation

You're in the docs now. Use the menu to find specific topics.

Join the community

Get help from other NOMAD users on Discord.

Release Notes

See what's changed in each version: Release Notes


File: admin/docs/getting-started.md

Getting Started with NOMAD

This guide will help you get the most out of your NOMAD server.


System Requirements

If you already have NOMAD running, you can skip this section. It is here for when you are planning a second server, moving to different hardware, or helping someone else get set up.

Operating System

NOMAD runs on Debian-based Linux.

Support level Operating system
Recommended Ubuntu 26.04 LTS
Also supported Ubuntu 24.04 LTS, Debian 12
Community-supported Windows via WSL2, other Debian derivatives

Ubuntu 26.04 LTS is the version we test on and the one we recommend for new installs. If you are already running 24.04 LTS or Debian 12, there is no need to reinstall, both are still supported.

Ubuntu Desktop is the friendlier choice if you are coming from Windows or macOS. Ubuntu Server works just as well if you are comfortable at the terminal, and NOMAD does not need a desktop environment either way since everything is accessed through a browser.

macOS and non-Debian distributions like Fedora or Arch are not officially supported.

Hardware

NOMAD itself is lightweight. What drives your requirements is the content and tools you choose to install, and whether you want to run AI locally.

Minimum, without local AI:

  • 2 GHz dual-core processor
  • 4 GB RAM
  • 5 GB free disk space, plus room for whatever content you download

Recommended, with local AI:

  • AMD Ryzen 7 or Intel Core i7 or better
  • 32 GB RAM
  • NVIDIA RTX 3060 or AMD equivalent, more VRAM lets you run larger models
  • 250 GB or more of free disk space, preferably an SSD

A stable internet connection is required during installation only. After that, NOMAD is designed to run fully offline.

A note on GPU drivers

The installer sets up Docker and the NVIDIA Container Toolkit for you, but it does not install the GPU driver itself. You need that on the host beforehand.

On Ubuntu, the easiest way is to check "Install third-party drivers for graphics and Wi-Fi hardware" during setup. If you skipped that, or you added the GPU later, install the driver first and then use Force Reinstall on the AI Assistant in the Supply Depot to pick it up.

Without a GPU, the AI Assistant still works. It just runs on the CPU, which is considerably slower.


Easy Setup Wizard

If this is your first time using NOMAD, the Easy Setup wizard will help you get everything configured.

Launch Easy Setup →

The wizard walks you through four simple steps:

  1. Capabilities — Choose what to enable: Information Library, AI Assistant, Education Platform, Maps, Data Tools, and Notes

  2. Maps — Select geographic regions for offline maps

  3. Content — Choose curated content collections with Essential, Standard, or Comprehensive tiers

  4. Review — Confirm your selections and start downloading

Depending on what you selected, downloads may take a while. You can monitor progress in the Settings area, continue using features that are already installed, or leave your server running overnight for large downloads.


Understanding Your Tools

Information Library — Offline Knowledge (Kiwix)

The Information Library stores compressed versions of websites and references that work without internet.

What's included:

  • Full Wikipedia (millions of articles)
  • Medical references and first aid guides
  • How-to guides and survival information
  • Classic books from Project Gutenberg

How to use it:

  1. Click Information Library from the Command Center home screen or the Supply Depot
  2. Choose a collection (like Wikipedia)
  3. Search or browse just like the regular website

Education Platform — Offline Courses (Kolibri)

The Education Platform provides complete educational courses that work offline.

What's included:

  • Khan Academy video courses
  • Math, science, reading, and more
  • Progress tracking for learners
  • Works for all ages

How to use it:

  1. Click Education Platform from the Command Center home screen or the Supply Depot
  2. Sign in or create a learner account
  3. Browse courses and start learning

Tip: Kolibri supports multiple users. Create accounts for each family member to track individual progress.


AI Assistant — Built-in Chat

NOMAD includes a built-in AI chat interface powered by Ollama. It runs entirely on your server — no internet needed, no data sent anywhere.

What can it do:

  • Answer questions on any topic
  • Explain complex concepts simply
  • Help with writing and editing
  • Reference your uploaded documents via the Knowledge Base
  • Brainstorm ideas and assist with problem-solving

How to use it:

  1. Click AI Chat from the Command Center or go to Chat
  2. Type your question or request
  3. The AI responds in conversational style

Tip: Be specific in your questions. Instead of "tell me about plants," try "what vegetables grow well in shade?"

Note: The AI Assistant must be installed first. Enable it during Easy Setup or install it from the Supply Depot.

GPU Acceleration: If your server has an NVIDIA GPU, NOMAD's installer sets up GPU support for you (it installs the NVIDIA Container Toolkit and configures Docker automatically). You only need the NVIDIA driver present on the host, which on Ubuntu you get by enabling "Install third-party drivers" during setup. With a GPU, AI responses are dramatically faster (10-20x improvement). If you add a GPU later, go to the Supply Depot and Force Reinstall the AI Assistant to enable it.


Knowledge Base — Document-Aware AI

The Knowledge Base lets you upload documents so the AI can reference them when answering your questions. It uses semantic search (RAG via Qdrant) to find relevant information from your uploaded files.

Supported file types:

  • PDFs, text files, and other document formats
  • NOMAD documentation is automatically loaded when the AI Assistant is installed

How to use it:

  1. Go to Knowledge Base →
  2. Upload your documents (PDFs, text files, etc.)
  3. Documents are processed and indexed automatically
  4. Ask questions in AI Chat — the AI will reference your uploaded documents when relevant
  5. Remove documents you no longer need — they'll be deleted from the index and local storage

Use cases:

  • Upload emergency plans for quick reference during a crisis
  • Load technical manuals and SOPs for offline work sites
  • Add curriculum guides for homeschooling
  • Store research papers for academic work

Maps — Offline Navigation

View maps without internet. Download the regions you need before going offline.

How to use it:

  1. Click Maps from the Command Center
  2. Navigate by dragging and zooming
  3. Search for locations using the search bar

To add more map regions:

  1. Go to Settings → Maps Manager
  2. Select the regions you need
  3. Click Download

Tip: Download maps for areas you travel to frequently, plus neighboring regions just in case.

Open Maps →


Managing Your Server

Adding More Content

As your needs change, you can add more content anytime:

  • More apps: Settings → Supply Depot
  • More references: Settings → Content Explorer or Content Manager
  • More map regions: Settings → Maps Manager
  • More educational content: Through Kolibri's built-in content browser

Wikipedia Selector

NOMAD includes a dedicated Wikipedia content management tool for browsing and downloading Wikipedia packages.

How to use it:

  1. Go to Content Explorer →
  2. Browse available Wikipedia packages by language and size
  3. Select and download the packages you want

Note: Selecting a different Wikipedia package replaces the previously downloaded version. Only one Wikipedia selection is active at a time.

System Benchmark

Test your hardware performance and see how your NOMAD build stacks up against the community.

How to use it:

  1. Go to System Benchmark →
  2. Choose a benchmark type: Full, System Only, or AI Only
  3. View your NOMAD Score (a weighted composite of CPU, memory, disk, and AI performance)
  4. Create a Builder Tag (your NOMAD-themed identity, like "Tactical-Llama-1234")
  5. Share your results with the community leaderboard

Note: Only Full Benchmarks with AI data can be shared to the community leaderboard.

Keeping Things Updated

While you have internet, periodically check for updates:

  1. Go to Settings → Check for Updates
  2. If updates are available, click to install
  3. Wait for the update to complete (your server will restart)

Content updates (Wikipedia, maps, etc.) can be managed separately from software updates.

Automatic updates: NOMAD can also keep itself current without you having to check. Software, installed apps, and content can each be set to update automatically on an opt-in basis, with safety checks and a time window you control. See the Updates guide for the full picture.

Early Access Channel: Want the latest features before they hit stable? Enable the Early Access Channel from the Check for Updates page to receive release candidate builds. You can switch back to stable anytime.

Monitoring System Health

Check on your server anytime:

  1. Go to Settings → System
  2. View CPU, memory, and storage usage
  3. Check system uptime and status

Tips for Best Results

Before Going Offline

  • Update everything — Run software and content updates
  • Download what you need — Maps, references, educational content
  • Test it — Make sure features work while you still have internet to troubleshoot

Storage Management

Your server has limited storage. Prioritize:

  • Content you'll actually use
  • Critical references (medical, survival)
  • Maps for your region
  • Educational content matching your needs

Check storage usage in Settings → System.

Getting Help

  • In-app docs: You're reading them now
  • AI assistant: Ask a question in AI Chat
  • Release notes: See what's new in each version

Next Steps

You're ready to use NOMAD Here are some things to try:

  1. Look something up — Search for a topic in the Information Library
  2. Learn something — Start a Khan Academy course in the Education Platform
  3. Ask a question — Chat with the AI in AI Chat
  4. Explore maps — Find your neighborhood in the Maps viewer
  5. Upload a document — Add a PDF to the Knowledge Base and ask the AI about it

Enjoy your offline knowledge server!


File: admin/docs/release-notes.md

Release Notes

Version 1.34.0 - August 4, 2026

Features

  • AI: nomad.md for custom instructions (#1127). Thanks @jakeaturner for the contribution!
  • AI: per-model thinking toggle with global default (off) (#1079). Thanks @chriscrosstalk for the contribution!
  • API Documentation: Auto-generating OpenAPI docs with Scalar UI (#1128). Thanks @jakeaturner for the contribution!
  • Benchmark: official multi-arch sysbench, resolved digest, platform metadata (#1158). Thanks @chriscrosstalk for the contribution!
  • Benchmark: lock Score v2 AI reference to 13.2 (measured, was placeholder) (#1097). Thanks @chriscrosstalk for the contribution!
  • Benchmark: dashboard re-run banner prompting a Score v2 re-run (#1096). Thanks @chriscrosstalk for the contribution!
  • Benchmark: Score v2 app client — raws, uncapped score, v2 payload + UI. Thanks @chriscrosstalk for the contribution!
  • Benchmark: harness hardening — fail loudly + pin sysbench + record provenance (#1089). Thanks @chriscrosstalk for the contribution!
  • Benchmark: end-of-run score reveal + NVIDIA GPU-util overlay (#1087). Thanks @chriscrosstalk for the contribution!
  • Benchmark: authoritative in-test sysbench numbers + results strip (#1085). Thanks @chriscrosstalk for the contribution!
  • Benchmark: live telemetry during benchmark runs (#1082) (#1084). Thanks @chriscrosstalk for the contribution!
  • Collections: support gated downloads for self-hosted curated content (#1172). Thanks @chriscrosstalk for the contribution!
  • Creator Packs: gated per-creator video packs, offline via Kiwix (#1106). Thanks @chriscrosstalk for the contribution!
  • Dashboard: add dismissable "What's new" banner for v1.34 (#1112). Thanks @chriscrosstalk for the contribution!
  • Dashboard: round out the v1.34 What's new highlights (#1197). Thanks @chriscrosstalk for the contribution!
  • Debug Info: add storage, docker, GPU health, and auto-update diagnostics (#1102). Thanks @chriscrosstalk for the contribution!
  • Drug Reference: Add offline FDA drug reference (labels, interaction view, conditions, remedies) (#1040). Thanks @caweis for the contribution!
  • Kiwix Library: Expandable rows in Kiwix Library browser (#1060). Thanks @jarvisxyz for the contribution!
  • Maps: add notes input to map pin placement popup (#926). Thanks @chriscrosstalk for the contribution!
  • RAG: add subject/collection organization to knowledge base (#1063). Thanks @just-jbc for the contribution!

Bug Fixes

  • AI: stream thinking from /v1 reasoning field + abort on client disconnect (#1078). Thanks @chriscrosstalk for the contribution!
  • AI: stop forcing HSA_OVERRIDE=11.0.0 on natively-supported AMD iGPUs (#1076). Thanks @chriscrosstalk for the contribution!
  • AI: set OLLAMA_IGPU_ENABLE on AMD provisioning so iGPUs are used (#1074). Thanks @chriscrosstalk for the contribution!
  • AI: coerce gfx1103 (780M) to HSA_OVERRIDE 11.0.0 so it stays on GPU (#1134). Thanks @jakeaturner for the contribution!
  • Benchmark: fix various typescript errors. Thanks @jakeaturner for the contribution!
  • Benchmark: partial runs are not the NOMAD Score (relabel + renormalize) (#1088). Thanks @chriscrosstalk for the contribution!
  • Benchmark: remove stale progress setter (#1136). Thanks @NgoQuocViet2001 for the contribution!
  • Benchmark: surface a clear reason when leaderboard submission fails (#1138). Thanks @chriscrosstalk for the contribution!
  • Benchmark: warm the AI model before timed runs for reproducible scores (#1140). Thanks @chriscrosstalk for the contribution!
  • Benchmark: block leaderboard submission when AI runs on a remote host (#1157). Thanks @chriscrosstalk for the contribution!
  • Benchmark: don't block submission when the AI host is this machine (#1166). Thanks @chriscrosstalk for the contribution!
  • Chat: make conversation layout responsive (#1090). Thanks @Bortlesboat for the contribution!
  • Chat: open full chat in place instead of a new window (#1181). Thanks @chriscrosstalk for the contribution!
  • Content: resolve current ZIM URL before download (#1091). Thanks @NgoQuocViet2001 for the contribution!
  • Content: refresh installed ZIMs when a download completes to prune ghost entries (#1099). Thanks @chriscrosstalk for the contribution!
  • Creator Packs: add missing Modern Rogue banner asset (#1147). Thanks @chriscrosstalk for the contribution!
  • Downloads: send a descriptive User-Agent so Wikimedia mirrors don't 403 (#1114). Thanks @chriscrosstalk for the contribution!
  • Downloads: add retry button and resource download link for failed downloads (#1059). Thanks @jarvisxyz for the contribution!
  • Downloads: don't 500 the jobs endpoint on an orphaned BullMQ job (#1191). Thanks @chriscrosstalk for the contribution!
  • Downloads: don't retry a rejected entitlement for four hours (#1205). Thanks @chriscrosstalk for the contribution!
  • Downloads: let interrupted content downloads resume (#1202). Thanks @chriscrosstalk for the contribution!
  • Easy Setup: streamline wizard + robust model recommendations (#1110). Thanks @chriscrosstalk for the contribution!
  • Install: define missing header_red + colors in uninstall/update scripts (#1098). Thanks @chriscrosstalk for the contribution!
  • KB: stop the collection dropdown in from being clipped, widen the modal (#1198). Thanks @chriscrosstalk for the contribution!
  • KB: keep the collection when a file is indexed after assignment (#1200). Thanks @chriscrosstalk for the contribution!
  • KVStore: fix missing apps.homebox key. Thanks @jakeaturner for the contribution!
  • Maps: warn when world basemap missing instead of silent grey map (#1104). Thanks @not-knope for the contribution!
  • RAG: add proper .docx text extraction via mammoth (#1100). Thanks @just-jbc for the contribution!
  • RAG: stop re-creating payload indexes on every embedded document (#1135). Thanks @bragaus for the contribution!
  • Content: respect ingest policy when a ZIM is uploaded locally (#1184). Thanks @chriscrosstalk for the contribution!
  • Supply Depot: generate Homebox API key pepper so it stops crash-looping (#1077). Thanks @chriscrosstalk for the contribution!
  • UI: add API reference link to the Settings sidebar. Thanks @jakeaturner for the contribution!
  • Updater: prune superseded images after update to reclaim disk (#1101). Thanks @chriscrosstalk for the contribution!

Improvements

  • Brand: add ™ to Project NOMAD wordmark on prominent surfaces. Thanks @chriscrosstalk for the contribution!
  • Brand: standardize brand name to Project NOMAD, retire backronym. Thanks @chriscrosstalk for the contribution!
  • Build: run drug reference codegen step (#1132). Thanks @jakeaturner for the contribution!
  • Supply Depot: sunset orphaned Meshtastic Daemon card (#1049). Thanks @chriscrosstalk for the contribution!
  • Catalog: add The Modern Rogue creator pack (dev) (#1146). Thanks @chriscrosstalk for the contribution!
  • CI: fix collection URL validation. Thanks @jakeaturner for the contribution!
  • Collections: update stale URLs (#1148). Thanks @jakeaturner for the contribution!
  • Collections: fix four dead Wikipedia download URLs (#1189). Thanks @chriscrosstalk for the contribution!
  • Content Manager: filter non-content sections + render tables in ZIM extraction (#1044). Thanks @chriscrosstalk for the contribution!
  • Dependencies: bump tar, vite, and dockerode in admin. Thanks @jakeaturner for the contribution!
  • Dependencies: bump axios and systeminformation in admin. Thanks @jakeaturner for the contribution!
  • Docs: make storage-relocation guidance accurate and consistent (#1103). Thanks @chriscrosstalk for the contribution!
  • Docs: add UI Consistency section (#1080). Thanks @chriscrosstalk for the contribution!
  • Docs: recommend Ubuntu 26.04 LTS as the default base (#1141). Thanks @chriscrosstalk for the contribution!
  • Docs: point MeshCore Web to the official meshcore.io site (#1142). Thanks @chriscrosstalk for the contribution!
  • Drug Reference: make collections JSON the single source for curated data (#1130). Thanks @caweis for the contribution!
  • Drug Reference: tabbed redesign with grouped search, multi-select situations, and a disclaimer gate (#1137). Thanks @chriscrosstalk for the contribution!

Version 1.33.0 - June 23, 2026

Features

  • Supply Depot — Custom Apps: The Supply Depot is NOMAD's new home for installable apps, and it now lets you run your own custom Docker containers — not just the curated catalog. Specify an image, port mappings, volume binds, environment variables, and memory/CPU limits, and NOMAD spins it up as a managed sibling container. A live, debounced pre-flight check warns about port conflicts and resource limits as you type and hard-blocks unsafe configurations, with an "install anyway" override for warning-only cases (e.g. an untrusted registry or a :latest tag). Installed custom apps can be edited, updated (re-pull latest + recreate with a safe rollback if the new container fails), and removed (optionally deleting the image), and every installed app — curated or custom — gets per-container Logs and Stats modals. Host-path binds are hardened against escapes and logs/stats are scoped to NOMAD-managed containers only. Thanks @jakeaturner for the contribution!
  • Supply Depot — Curated App Onboarding & Fixes: Each curated app now ships with NOMAD-specific getting-started docs (first run, default logins, where data lives, what does and doesn't work offline), deep-linked from a Manage › Docs item on the card. Alongside it is a round of install fixes so the nine documented apps — Stirling PDF, File Browser, Calibre-Web, IT Tools, Excalidraw, Homebox, Vaultwarden, Jellyfin, Meshtastic Web — work out of the box: seeded logins instead of random passwords buried in logs, a bundled Calibre library, HTTPS-by-default where the app requires a secure context (Vaultwarden), corrected internal ports (Meshtastic Web), pre-created media folders (Jellyfin), and a swap to a maintained image (Homebox). You can now also edit curated apps, not just custom ones — edits are merged into the app's existing config (preserving advanced settings like GPU device requests) and flag the app so the seeder stops overwriting it, while untouched apps still receive catalog updates. Thanks @chriscrosstalk for the contribution!
  • Automatic Core Updates: NOMAD's own admin/core image can now update itself hands-off, gated by layered safety checks. It's opt-in and off by default, runs only inside a user-configured time window, and applies only same-major, strictly-newer GA releases (major bumps stay manual) past a configurable cool-off — behind pre-flight checks for the update sidecar, no in-flight updates/downloads/installs, and sufficient host disk. It auto-disables after repeated genuine failures, while transient offline release lookups are treated as harmless skips. Settings → Updates exposes the toggle, window, cool-off, and live status. This is the first leg of the auto-update trilogy. Thanks @jakeaturner for the contribution!
  • Automatic App Updates: Installed apps (the "Supply Depot" sibling containers) can now keep themselves up to date with opt-in, hands-off minor/patch updates, mirroring the core auto-update feature. Updates are gated behind a two-level opt-in — a global master switch in Settings → Updates and a per-app toggle in the Supply Depot — and respect the shared update window, cool-off period, disk/in-progress pre-flight checks, and per-app failure backoff. Major versions are never auto-applied. Thanks @jakeaturner for the contribution!
  • Automatic Content Updates: Completing the auto-update trilogy, installed Kiwix ZIM files and PMTiles maps can now update themselves on an opt-in basis. Content updates run on their own dedicated overnight window and bandwidth cap (separate from the app/core schedule, since content downloads are multi-GB), check the upstream Kiwix and PMTiles catalogs directly (no more reliance on external Project NOMAD API), and keep the AI Knowledge Base in sync when a ZIM is replaced. Thanks @jakeaturner for the contribution!
  • Supply Depot — Custom Launch URLs: You can now override an app's "Open" link with a reverse-proxy or local-DNS address (e.g. https://jellyfin.myhomelab.net). The override is stored separately so the default link is always recoverable, survives reseeds/upgrades, and is validated on both client and server. Thanks @jakeaturner for the contribution!
  • Supply Depot — Version & Update visibility: App cards now show the installed version next to the app name (e.g. Kiwix · 3.7.0), and the "Update available" pill now stands out with a solid desert-orange fill so available updates actually draw the eye. Thanks @chriscrosstalk for the contribution!
  • Maps — Persistent View: The Maps page now remembers your position and zoom across refreshes instead of resetting to the default US-wide view. The saved view is bounds-checked, so a corrupt value safely falls back to the default. Thanks @chriscrosstalk for the contribution!
  • Content Manager — Rescan Library: A new "Rescan Library" button rebuilds the Kiwix index from the ZIM files currently on disk, so files sideloaded outside NOMAD's download flow (USB stick, SSH, network share) can be served without dropping to a terminal. It reports how many new books were found and, in library mode, hot-reloads without a container restart. Thanks @chriscrosstalk for the contribution!
  • Configuration — Redis database selection: Added a REDIS_DB environment variable so operators can pick a Redis logical database (0–15) for the job queue and live-update transport. This prevents key collisions when a single Redis instance is shared across multiple stacks (common in homelabs). Defaults to db 0, preserving existing behavior. Thanks @johno10661 for the contribution!
  • Advanced Settings — Internet Test URL: Added a new Advanced Settings page with an option to override the default internet test "beacon" URL (more advanced settings to come). Previously, overriding this URL required an ENV variable change and container restart. The legacy ENV variable is still respected if you've set it. Thanks @jakeaturner for the contribution!
  • RAG: Embedding jobs can now be cancelled, allowing users to clear stuck jobs that haven't explicitly failed. Thanks @jakeaturner for the contribution!

Bug Fixes

  • Storage: When the admin storage volume is relocated to another disk, child apps (Kiwix, Ollama, Qdrant, Flatnotes, Kolibri) now automatically follow to the new location instead of mounting the old, empty path. The host storage root is now derived from the admin's actual mount, with an explicit NOMAD_STORAGE_PATH override and clearer compose comments. Thanks @chriscrosstalk for the fix!
  • System: A failed service update now rolls back to the previous container if the new one fails to start, so the service stays up on the old version instead of being left down. Also clears any stale leftover container so a retry can't wedge indefinitely. Thanks @chriscrosstalk for the fix!
  • System: Service install failures caused by a host port conflict (commonly a native Ollama install already on port 11434) now show a clear, actionable message with the exact commands to resolve it, instead of a raw Docker error. Thanks @chriscrosstalk for the fix!
  • System: The per-service Update button is now disabled and shows "Updating..." while an update is in flight, preventing double-clicks that previously raced into Docker errors. The in-progress state is durable, so it survives a page reload during a multi-GB pull. Thanks @chriscrosstalk for the fix!
  • System Updates: Update checks no longer crash for images with more than 1,000 tags (e.g Ollama). Registry pagination URLs are now resolved correctly, so the "Check for Updates" flow returns versions instead of failing silently — fixing Ollama appearing pinned at an old version. Thanks @chriscrosstalk for the fix!
  • System: Internet status checks no longer report "No internet connection" on networks that block or hijack Cloudflare's 1.1.1.1. The check now probes additional hosts the app already contacts (GitHub and the Project NOMAD API) in parallel and accepts any HTTP response as "online." Thanks @akashsalan for the fix!
  • AI Assistant: Oversized embedding chunks are now truncated and retried instead of being silently dropped, ending the retry storm that could peg the GPU and flood logs (the "api/embed for weeks" issue). The OpenAI-compatible fallback path now also passes context and truncation settings. Thanks @chriscrosstalk for the fix!
  • AI Assistant: Chat suggestions now use your selected model (falling back to the smallest installed model) instead of the largest. This prevents a flagship model that exceeds available VRAM from hanging the chat page and returning a 500 error. Thanks @johno10661 for the fix!
  • AI Assistant: The assistant no longer disclaims "Sorry, I couldn't find specific context regarding X..." when relevant material was actually retrieved. The RAG prompt now treats retrieved context as the authoritative source and falls back to general knowledge silently, the model-visible relevance scores that primed smaller models to distrust correct context were replaced with neutral source-title labels, and a conservative heading-match boost improves the ranking of already-retrieved chunks. Thanks @jakeaturner for the fix!
  • Knowledge Base: The embedded-chunk count for batched ZIM ingestion is now persisted accurately across continuation batches, instead of reporting only the final batch's count. Thanks @Metbcy for the fix!
  • Knowledge Base: The "ingestion may have stalled" (partial-stall) warning no longer fires falsely on link-out- or PDF-heavy ZIMs that legitimately have little embeddable text. Thanks @chriscrosstalk for the fix!
  • Knowledge Base: ZIM ingestion progress no longer freezes at 99% on multi-page archives (e.g. iFixit). Progress now creeps forward monotonically and only reports 100% on the genuinely final batch. Thanks @chriscrosstalk for the fix!
  • Content: Installing a newer version of a curated map or ZIM now removes the superseded file from disk, preventing silent accumulation of orphaned content (potentially hundreds of GB). Deletion is gated behind strict safety rails — only tracked, genuinely-replaced, strictly-newer files within the content store are ever removed; sideloaded files are never touched. Thanks @chriscrosstalk for the fix!
  • Content: Curated Wikipedia-themed ZIMs (e.g. wikipedia_en_medicine_maxi from Medicine → Comprehensive) are no longer wiped on restart. Reconciliation now skips only the single file actually managed by the Wikipedia selector, matched by exact filename. Thanks @chriscrosstalk for the fix!
  • Maps: Having both an old and new copy of the same map region on disk no longer blanks the entire map. Map sources are now de-duplicated to the newest file per region, and already-broken installs recover automatically on the next page load. Thanks @chriscrosstalk for the fix!
  • Information Library (Kiwix): Kiwix now self-heals a missing or corrupt library file on startup by rebuilding it from the ZIM files on disk, instead of coming up with an empty library and no path to recovery. Thanks @chriscrosstalk for the fix!
  • Docker: Failed image pulls (dropped/metered connection, bad manifest, disk full mid-pull) are now correctly treated as failures across all pull paths, instead of proceeding to create a container from a missing or partial image and surfacing a confusing downstream error. Thanks @chriscrosstalk for the fix!
  • Security: Hardened the private-URL/SSRF guard by replacing the regex blocklist with proper IP-range classification (ipaddr.js) and normalizing the host first. This blocks alternate IP encodings and trailing-dot bypasses (e.g. localhost.) while no longer over-blocking legitimate public addresses. RFC1918 ranges and bare LAN hostnames remain allowed for local appliances. Thanks @chriscrosstalk for the fix!
  • Install: Hardened the install script — the NVIDIA toolkit GPG step now runs non-interactively so it doesn't silently skip on non-TTY installs, and helper-script downloads now retry to reduce transient partial-install failures. Thanks @Gujiassh for the fix!

Improvements

  • License & Docs: Corrected the package license metadata to Apache-2.0 (the project has been Apache-2.0 for some time), added a real project description, and fixed a dead Troubleshooting link plus several README typos. Thanks @aqilaziz for the contribution!
  • Docs: Fixed a few typos and punctuation in the README. Thanks @teccdev for the contribution!
  • Dependencies: Bumped React and React DOM. Thanks @jakeaturner for the contribution!
  • Dependencies: Bumped autoprefixer. Thanks @jakeaturner for the contribution!
  • Dependencies: Bumped BullMQ to 5.77.6 and updated affected job calls to the new arguments shape. Thanks @jakeaturner for the contribution!
  • Supply Depot: Pinned all curated image versions to ensure consistent baseline deployments. Thanks @jakeaturner for the contribution!
  • Supply Depot: Bumped the default versions of CyberChef to 10.24.0 and Ollama to 0.24.0. Thanks @jakeaturner for the contribution!

Version 1.32.1 - May 27, 2026

Features

Bug Fixes

  • fix(logging): also write production logs to stdout for docker visibility (#870). Thanks @chriscrosstalk for the contribution!
  • fix(KB): cursor on Always/Manual ingest policy buttons (#927). Thanks @chriscrosstalk for the contribution!

Improvements

  • perf(KB): swap Qdrant full-scroll for facet on source enumeration (#928). Thanks @chriscrosstalk for the contribution!
  • chore(deps): bump various dependencies. Thanks @jakeaturner for the contribution!

Version 1.32.0 - May 20, 2026

Features

  • AI: improved AMD GPU acceleration for Ollama via ROCm + HSA override (#804)
  • chat: confirm-on-switch + one-chat-model-at-a-time enforcement (#ffa70a5)
  • content-manager: add sortable file size column (#698), closes #685
  • content-updates: show size, surface downloads in Active Downloads (#299b767)
  • Content: custom ZIM library sources with pre-seeded mirrors (#593) (#62e75fd), closes #576
  • easy-setup: split AI into its own conditional step (issue #905) (#0617d54), closes #907
  • GPU: auto-remediate nomad_ollama passthrough loss on admin boot (#755) (#2997637), closes #208 #804
  • KB: Always/Manual ingest policy toggle (RFC #883 §1/§4) (#894) (#8eb8809), closes #880 #886 #886 #886 #888 #888 #888 #888 #888
  • KB: conditional warnings A + B on Stored Files (RFC #883 §6) (#563f86a), closes #891 #891 #890 #881
  • KB: first-chat JIT prompt for ingest policy (RFC #883 Phase 3 task 12) (#fd153b4), closes #894 #894 #894
  • KB: group admin docs into single row in Stored Files (RFC #883 §9) (#c64ec97)
  • KB: guardrail modal at 50GB / 10%-free thresholds (RFC #883 §7) (#cf3a924), closes #897 #897 #894 #899
  • KB: per-file ingest action + state indicator on Stored Files (RFC #883 §5) (#d850cb9), closes #907 #907 #907 #908
  • KB: per-file ingest state machine (Phase 1 of RFC #883) (#888) (#743549c), closes #880 #886 #886 #886
  • KB: ratio registry for disk + time estimates (Phase 1B of RFC #883) (#159d57b)
  • KB: status pill + last-activity timestamp on Processing Queue (RFC #883 §5/§10) (#43ca584)
  • KB: surface embedding-disk estimate in curated tier-change modal (RFC #883 §1) (#e68c753), closes #891 #891
  • KB: wizard AI policy step (RFC #883 Phase 3 task 13) (#7a681d0), closes #899 #894 #894 #899
  • Maps: regional map downloads via go-pmtiles extract (#780) (#94059b0)
  • maps: show map coordinates on mouse move (#786) (#08838b1)

Bug Fixes

  • AI: add truncation DEBUG log (#e3b758f)
  • AI: improve remote Ollama url validation to prevent SSRF vulnerability (#989a401)
  • AI: pre-cap embed input + log fallback reason (#881) (#2dec5bf), closes #369 #670
  • AI: preserve semver tag in DB on AMD Ollama updates (#019a5a4)
  • AI: rewrite RAG query on first follow-up (off-by-one in skip-rewrite threshold) (#43645e4)
  • AI: vendor-aware AMD HSA override + benchmark discrete-GPU detection (#a2e2f7f), closes #804 #804 #810
  • API: accept notes, marker_type, and position on markers endpoints (#770) (#132ec9c), closes #768
  • API: skip compression for Server-Sent Events (#798) (#4b21ea6)
  • content: show selected tier on cards while downloads are in flight (#059cf2a), closes #36b6d8e
  • DockerService: improve volume logic and documentation in forceReinstall (#501860a)
  • Downloads: treat missing Content-Type as octet-stream (#848) (#3abf338)
  • install: warn loudly on non-x86_64 architectures before pulling images (#797) (#cb129d2), closes #419
  • KB: add re-embed and reset & rebuild opts to fix broken embeddings (#886) (#4c21196)
  • KB: align chunks_per_mb column type with TS contract (#4d6b140)
  • KB: blank-screen on panel open + tooltips on bulk-action buttons (#633a3c3), closes #892 #895 #post-#892
  • KB: guardrail bypass during estimate load + Transition sibling (PR #901 review) (#7e768f3)
  • KB: remove redundant Refresh button from Processing Queue (#4e8cadd), closes #893
  • KB: respect Manual ingest policy on post-download dispatch (#a5fe52f), closes #909
  • KB: silent maybe-later error + redundant prompt-state refetches (PR #899 review) (#9a684a5)
  • KB: surface file-warning compute failures instead of masking as healthy (PR #895 review) (#a0047c1)
  • KB: TierSelectionModal hook order + register IconLibrary (#6e5284e), closes #915
  • KB: union Stored Files list with state-machine file paths (#898) (#8ed0bdf), closes #886 #888 #888
  • Maps: render notes in marker popup when populated (#f41027c), closes #770
  • Maps: send filename instead of full path to delete endpoint (#6a68bac)
  • models: correct inverted belongsTo keys on ChatMessage.session (#921) (#82f67de)
  • queue: singleton QueueService to stop ioredis connection leak (#ba53702), closes #872
  • RAG: add start button in kb modal and ensure restart policy exists (#700) (#2d8a02f)
  • RAG: anchor continuation-batch initial progress to overall-file frame (#889) (#f304d80)
  • RAG: pace continuation batches when embedding is CPU-only (#a22c640)
  • RAG: pass num_ctx and truncate to Ollama embed call (#763) (#7bebedc), closes #756 #369 #670
  • RAG: report ZIM ingestion progress in overall-file frame (#d28eb9b)
  • RAG: unbreak multi-batch ZIM ingestion (jobId dedupe) (#74cef75)
  • security: canonicalize hostnames to block IPv4-mapped IPv6 IMDS bypass (#736c9bd)
  • security: match IPv6 SSRF patterns against unbracketed hostnames (#b3dac9b)
  • System: correct AMD VRAM in Graphics card + harden log probe (#d2f2172), closes #835 #850 #208
  • System: correct NVIDIA VRAM in Graphics card (#835) (#6c799dd), closes #804
  • System: self-heal stale updateAvailable flag after sidecar-driven update (#825) (#318276c)
  • System: validate StartedAt with fallback to tail:500 (PR review) (#662a6c4)
  • UI: Country Picker UX polish + auto-refresh stored files (#817) (#8c06b5b), closes #780
  • UI: four fixes for the System Update page (#827) (#3a2e92a)
  • UI: improve global map banner display logic (#702) (#5517e82)
  • UI: wire map file delete confirmation to API (#732) (#e561ce8)
  • ZIM: preserve co-existing Wikipedia corpora on cleanup (#884) (#5e2c599)

Improvements

Version 1.31.1 - April 21, 2026

Features

  • feat(content): custom ZIM library sources with pre-seeded mirrors (#593). Thanks @chriscrosstalk!
  • feat(content-manager): add sortable file size column (#698). Thanks @chriscrosstalk!
  • feat(ai-chat): allow cancelling in-progress model downloads (#701). Thanks @chriscrosstalk!
  • feat(content-updates): show size, surface downloads in Active Downloads (#773). Thanks @chriscrosstalk!
  • feat(maps): regional map downloads via go-pmtiles extract (#780). Thanks @bgauger!
  • feat(maps): show map coordinates on mouse move (#786). Thanks @kennethbrewer3!
  • feat(AI): re-enable AMD GPU acceleration for Ollama via ROCm + HSA override (#804). Thanks @chriscrosstalk!
  • feat(GPU): auto-remediate nomad_ollama passthrough loss on admin boot (#878). Thanks @chriscrosstalk!
  • feat(KB): per-file ingest state machine (Phase 1 of RFC #883) (#888). Thanks @chriscrosstalk!
  • feat(KB): ratio registry for disk + time estimates (Phase 1B of RFC #883) (#891). Thanks @chriscrosstalk!
  • feat(KB): group admin docs into single row in Stored Files (§9) (#892). Thanks @chriscrosstalk!
  • feat(KB): status pill + last-activity on Processing Queue (§5/§10) (#893). Thanks @chriscrosstalk!
  • feat(KB): Always/Manual ingest policy toggle (§1/§4) (#894). Thanks @chriscrosstalk!
  • feat(KB): conditional warnings A + B on Stored Files (§6) (#895). Thanks @chriscrosstalk!
  • feat(KB): surface embedding-disk estimate in curated tier-change modal (§1) (#897). Thanks @chriscrosstalk!
  • feat(KB): first-chat JIT prompt for ingest policy (Phase 3 task 12) (#899). Thanks @chriscrosstalk!
  • feat(KB): wizard AI policy step (Phase 3 task 13) (#900). Thanks @chriscrosstalk!
  • feat(KB): guardrail modal at 50GB / 10%-free thresholds (§7) (#901). Thanks @chriscrosstalk!
  • feat(easy-setup): split AI into its own conditional step (#908). Thanks @chriscrosstalk!
  • feat(KB): per-file ingest action + state indicator on Stored Files (§5) (#909). Thanks @chriscrosstalk!
  • feat(chat): confirm-on-switch + one-chat-model-at-a-time enforcement (#916). Thanks @chriscrosstalk!

Bug Fixes

  • fix(downloads): stage downloads to .tmp to prevent Kiwix loading partial files (#448). Thanks @artbird309!
  • fix(security): close remaining security audit items 3 & 4 (CWE-918, CWE-209) (#552). Thanks @LuisMIguelFurlanettoSousa!
  • fix(ai-chat): add null check to model name (#645). Thanks @hestela!
  • fix(ai-chat): qwen2.5 loading on every chat message (#649). Thanks @hestela!
  • fix(disk-collector): fix storage reporting for NFS mounts (#686). Thanks @bgauger!
  • fix(rag): add start button in kb modal and ensure restart policy exists (#700). Thanks @hestela!
  • fix(admin): only hide global map banner after download (#702). Thanks @Gujiassh!
  • fix(maps): wire delete confirmation to API (#732). Thanks @cuyua9!
  • fix: prevent ZIM corrupt file crash and deduplicate Ollama download logs (#741). Thanks @jakeaturner!
  • fix(ai): stop local nomad_ollama when remote Ollama is configured (#744). Thanks @chriscrosstalk!
  • fix(rag): repair ZIM embedding pipeline (sync filter, batch gate, DOM walk) (#745). Thanks @chriscrosstalk!
  • fix(zim): accumulate across Kiwix pages to prevent empty Content Explorer (#746). Thanks @chriscrosstalk!
  • fix(qdrant): disable anonymous telemetry by default (#747). Thanks @chriscrosstalk!
  • fix(disk-display): gate NAS Storage label on network filesystem type (#749). Thanks @bgauger!
  • fix(docker): write /app/version.json from VERSION build-arg (#754). Thanks @chriscrosstalk!
  • fix(rag): pass num_ctx and truncate to Ollama embed call (#763). Thanks @chriscrosstalk!
  • fix(api): accept notes, marker_type, and position on markers endpoints (#770). Thanks @jrsphoto!
  • fix(install): warn loudly on non-x86_64 architectures before pulling images (#797). Thanks @chriscrosstalk!
  • fix(stream): skip compression for Server-Sent Events (#798). Thanks @chriscrosstalk!
  • fix(maps): Country Picker UX polish + auto-refresh stored files (#817). Thanks @chriscrosstalk!
  • fix(System): self-heal stale updateAvailable flag after sidecar-driven update (#825). Thanks @jakeaturner!
  • fix(settings/update): four UI/UX fixes for the System Update page (#827). Thanks @chriscrosstalk!
  • fix(Maps): send filename instead of full path to delete endpoint (#829). Thanks @bgauger!
  • fix(Maps): render notes in marker popup when populated (#830). Thanks @chriscrosstalk!
  • fix(AI): vendor-aware AMD HSA override + benchmark discrete-GPU detection (#832). Thanks @chriscrosstalk!
  • fix(System): correct NVIDIA VRAM in Graphics card (#850). Thanks @bgauger!
  • fix(Downloads): treat missing Content-Type as octet-stream (#859). Thanks @bgauger!
  • fix(AI): preserve semver tag in DB on AMD Ollama updates (#868). Thanks @chriscrosstalk!
  • fix(AI): rewrite RAG query on first chat follow-up (#869). Thanks @chriscrosstalk!
  • fix(RAG): unbreak multi-batch ZIM ingestion (jobId dedupe) (#872). Thanks @chriscrosstalk!
  • fix(RAG): pace continuation batches when embedding is CPU-only (#873). Thanks @chriscrosstalk!
  • fix(queue): singleton QueueService to stop ioredis connection leak (#877). Thanks @chriscrosstalk!
  • fix(System): correct AMD VRAM in Graphics card + harden log probe (#879). Thanks @chriscrosstalk!
  • fix(RAG): report ZIM ingestion progress in overall-file frame (#880). Thanks @chriscrosstalk!
  • fix(KB): add re-embed and reset & rebuild options to fix broken embeddings (#886). Thanks @jakeaturner!
  • fix(ZIM): preserve co-existing Wikipedia corpora on cleanup (#887). Thanks @chriscrosstalk!
  • fix(RAG): anchor continuation-batch initial progress to overall-file frame (#889). Thanks @chriscrosstalk!
  • fix(AI): pre-cap embed input + log fallback reason (#890). Thanks @chriscrosstalk!
  • fix(KB): remove redundant Refresh button from Processing Queue (#896). Thanks @chriscrosstalk!
  • fix(KB): union Stored Files list with state-machine file paths (#898). Thanks @chriscrosstalk!
  • fix(KB): blank-screen on panel open + tooltips on bulk-action buttons (#907). Thanks @chriscrosstalk!
  • fix(KB): TierSelectionModal hook order + register IconLibrary (#917). Thanks @chriscrosstalk!
  • fix(content): show selected tier on cards while downloads are in flight (#918). Thanks @chriscrosstalk!
  • fix(KB): respect Manual ingest policy on post-download dispatch (#919). Thanks @chriscrosstalk!
  • fix(AI): improve remote Ollama url validation to prevent SSRF vuln (#920). Thanks @jakeaturner!
  • fix(models): correct inverted belongsTo keys on ChatMessage.session (#921). Thanks @jakeaturner!

Improvements

  • docs: add Community Add-Ons page with field manuals + W3Schools packs (#753). Thanks @chriscrosstalk!
  • docs: add map marker API reference (#783). Thanks @kennethbrewer3!
  • docs: require linked issue for non-trivial PRs (#799). Thanks @chriscrosstalk!
  • docs(map): updated notes on the map pin api (#803). Thanks @kennethbrewer3!
  • docs: link to new WSL2 install guide from README and FAQ (#811). Thanks @chriscrosstalk!
  • build(deps): bump picomatch in /admin (#544). Thanks @dependabot[bot]!
  • build(deps): bump lodash from 4.17.23 to 4.18.1 in /admin (#643). Thanks @dependabot[bot]!
  • build(deps-dev): bump vite from 6.4.1 to 6.4.2 in /admin (#677). Thanks @dependabot[bot]!
  • build(deps): bump axios from 1.13.5 to 1.15.0 in /admin (#708). Thanks @dependabot[bot]!
  • build(deps): bump @adonisjs/http-server from 7.8.0 to 7.8.1 in /admin (#724). Thanks @dependabot[bot]!
  • build(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /admin (#729). Thanks @dependabot[bot]!
  • build(deps): bump protocol-buffers-schema from 3.6.0 to 3.6.1 in /admin (#736). Thanks @dependabot[bot]!
  • build(deps): bump protobufjs from 7.5.4 to 7.5.5 in /admin (#737). Thanks @dependabot[bot]!

Version 1.31.1 - April 21, 2026

Features

  • AI Assistant: Added improved support for AMD GPU acceleration for Ollama via ROCm + HSA override. Thanks @chriscrosstalk for the contribution!
  • Content Explorer: Added support for custom ZIM library sources and pre-seeded ZIM library mirrors in addition to the default Kiwix library. Thanks @chriscrosstalk for the contribution!
  • Content Manager: Content update sizes and downloads are now properly displayed in Active Downloads with progress bars and friendly names. Thanks @chriscrosstalk for the contribution!
  • Maps: Map regions can now be extracted and downloaded locally from PMTiles to avoid the need for a full global map download for users who only want specific regions. Thanks @bgauger for the contribution!

Bug Fixes

  • API: Compression is now skipped for Server-Sent Events (SSE) responses to prevent issues with streaming endpoints. Thanks @chriscrosstalk for the fix!
  • Maps: Fixed logic issues with the global map banner display. Thanks @Gujiassh for the fix!
  • Maps: The selected map file is now properly deleted after confirming the action in the UI. Thanks @cuyua9 for the fix!
  • System: Fixed an issue where the a pending update could still be indicated in the UI even after the system was updated successfully. Thanks @jakeaturner for the fix!

Improvements

  • Build: The Command Center image now uses the VERSION build arg to write app/version.json with the current version for improved version tracking and debugging, even in RC environments. Thanks @chriscrosstalk for the contribution!
  • Content Manager: Added a sortable file size column to the ZIM files table in the Content Manager for easier management of storage space. Thanks @chriscrosstalk for the contribution!
  • Dependencies: All package.json dependencies have been pinned to specific versions to ensure stability and reduce the risk of unexpected breaking changes/supply-chain compromises from upstream packages. Thanks @jakeaturner for the contribution!
  • Dependencies: Updated various dependencies to close security vulnerabilities and improve stability
  • Docs: Update CONTIRBUTING.md to require an issue to be opened before submitting a PR for non-trivial changes to ensure proper discussion and review of proposed changes. Thanks @chriscrosstalk for the contribution!
  • Docs: Added the map markers endpoints to the API reference documentation. Thanks @kennethbrewer3 for the contribution!
  • Docs: Added a link to the new WSL2 install guide in the README and FAQ. Thanks @chriscrosstalk for the contribution!
  • Install: The install script now warns loudly if the user is attempting to install on a non-x86_64/amd64 platform to prevent unsupported installations and potential issues. Thanks @chriscrosstalk for the contribution!
  • Maps: The maps API endpoints now properly accept and validate notes, marker_type, and position data for map markers and persist them in the database for retrieval in the UI. Thanks @jrsphoto for the contribution!
  • Maps: The current coordinates of the mouse pointer can now be displayed in the map viewer for easier navigation and exploration. Thanks @kennethbrewer3 for the contribution!
  • RAG: NOMAD now properly passed num_ctx and truncation to the Ollama embedding endpoint to ensure that the context window of the model is best utilized for embeddings. Thanks @chriscrosstalk for the contribution!
  • RAG: Added a manual start button for Qdrant and a self-healing mechanism for Qdrant's restart-policy to ensure that the vector database is running properly for embedding and retrieval tasks. Thanks @hestela for the contribution!

Version 1.31.1 - April 21, 2026

Features

Bug Fixes

  • AI Assistant: In-progress model downloads can now be cancelled properly and the progress UI now matches that of file downloads. Thanks @chriscrosstalk for the contribution!
  • AI Assistant: Fixed an issue where the AI Assistant settings page could crash if a model object did not have a details property. Thanks @hestela for the fix!
  • AI Assistant: Fixed an issue with non-embeddable files being queued for embedding and flooding logs with errors. Thanks @sbruschke for the bug report and @chriscrosstalk for the fix!
  • AI Assistant: Fixed an issue with ZIM batch embedding using the wrong batch count and causing remaining batches to be skipped. Thanks @sbruschke for the bug report and @chriscrosstalk for the fix!
  • AI Assistant: Fixed an issue with ZIM content extraction only extracting the first-level children of the article body and thus missing a lot of content. Thanks @sbruschke for the bug report and @chriscrosstalk for the fix!
  • Disk Collector: Improved reporting for NFS mount stats and display in the UI. Thanks @bgauger and @bravosierra99 for the contribution!
  • Downloads: Downloads are now staged to .tmp files and atomically renamed upon completion to prevent issues with incomplete/corrupt files. Thanks @artbird309 for the contribution!
  • Downloads: Removed a duplicate error listener and improved stability when handling Range requests for file downloads. Thanks @jakeaturner for the contribution!
  • Downloads: Added improved handling for corrupt ZIM file downloads and removed duplicate Ollama download logs. Thanks @aegisman for the contribution!
  • Security: Closed a potential SSRF vulnerability in the map file download functionality by implementing stricter URL validation and blocking private IP ranges. Thanks @LuisMIguelFurlanettoSousa for the fix!
  • Security: Sanitized error messages from the backend to prevent potential information disclosure. Thanks @LuisMIguelFurlanettoSousa for the fix!
  • UI: Fixed an issue with broken pagination for the Content Explorer that could cause some users to see a "No records found" message indefinitely. Thanks @johno10661 for the bug report and @chriscrosstalk for the fix!
  • UI: Fixed an issue where all storage devices could report as "NAS Storage" regardless of actual type. Thanks @bgauger for the fix!

Improvements

  • AI Assistant: Now uses the currently loaded model for query rewriting and chat title generation for improved performance and consistency. Thanks @hestela for the contribution!
  • AI Assistant: When a remote Ollama URL is configured, the Command Center will now attempt to stop NOMAD's local Ollama container to free up resources and avoid confusion. Thanks @chriscrosstalk for the contribution!
  • Dependencies: Updated various dependencies to close security vulnerabilities and improve stability
  • Docs: Added a "Community Add-Ons" page to the documentation to highlight some of the amazing community contributions that have been made since launch. Thanks @chriscrosstalk for the contribution!
  • Privacy: Added the appropriate environment variable to disable telemetry for the Qdrant container. Note that this will only take effect on new installations of if the Qdrant container is force re-installed on existing installations. Thanks @berkdamerc for the find and @chriscrosstalk for the contribution!

Version 1.31.0 - April 3, 2026

Features

  • AI Assistant: Added support for remote OpenAI-compatible hosts (e.g. Ollama, LM Studio, etc.) to support running models on seperate hardware from the Command Center host. Thanks @hestela for the contribution!
  • AI Assistant: Disabled Ollama Cloud support (not compatible with NOMAD's architecture) and added support for flash_attn to improve performance of compatible models. Thanks @hestela for the contribution!
  • Information Library (Kiwix): The Kiwix container now uses an XML library file approach instead of a glob-based approach to inform the Kiwix container of available ZIM files. This allows for much more robust handling of ZIM files and avoids issues with the container failing to start due to incomplete/corrupt ZIM files being present in the storage directory. Thanks @jakeaturner for the contribution!
  • RAG: Added support for EPUB file embedding into the Knowledge Base. Thanks @arn6694 for the contribution!
  • RAG: Added support for multiple file uploads (<=5, 100mb each) to the Knowledge Base. Thanks @jakeaturner for the contribution!
  • Maps: Added support for customizable location markers on the map with database persistence. Thanks @chriscrosstalk for the contribution!
  • Maps: The global map file can now be downloaded directly from PMTiles for users who want to the full map and/or regions outside of the U.S. that haven't been added to the curated collections yet. Thanks @bgauger for the contribution!
  • Maps: Added a scale bar to the map viewer with imperial and metric options. Thanks @chriscrosstalk for the contribution!
  • Downloads: Added support/improvements for rich progress, friendly names, cancellation, and live status updates for active downloads in the UI. Thanks @chriscrosstalk for the contribution!
  • UI: Converted all PNGs to WEBP for reduced image sizes and improved performance. Thanks @hestela for the contribution!
  • UI: Added an Installed Models section to AI Assistant settings. Thanks @chriscrosstalk for the contribution!

Bug Fixes

  • Maps: The maps API endpoints now properly check for "X-Forwarded-Proto" to support scenarios where the Command Center is behind a reverse proxy that terminates TLS. Thanks @davidgross for the fix!
  • Maps: Fixed an issue where the maps API endpoints could fail with an internal error if a hostname was used to access the Command Center instead of an IP address or localhost. Thanks @jakeaturner for the fix!
  • Queue: Increased the BullMQ lockDuration to prevent jobs from being killed prematurely on slower systems. Thanks @bgauger for the contribution!
  • Queue: Added better handling for very large downloads and user-initated cancellations. Thanks @bgauger for the contribution!
  • Install: The install script now checks for the presence of gpg (required for NVIDIA toolkit install) and automatically attempts to install it if it's missing. Thanks @chriscrosstalk for the fix!
  • Security: Added key validation to the settings read API endpoint. Thanks @LuisMIguelFurlanettoSousa for the fix!
  • Security: Improved URL validation logic for ZIM downloads to prevent SSRF vulnerabilities. Thanks @sebastiondev for the fix!
  • UI: Fixed the activity feed height in Easy Setup and added automatic scrolling to the latest message during installation. Thanks @chriscrosstalk for the contribution!

Improvements

  • Dependencies: Updated various dependencies to close security vulnerabilities and improve stability
  • Docker: NOMAD now adds 'com.docker.compose.project': 'project-nomad-managed' and 'io.project-nomad.managed': 'true' labels to all containers installed via the Command Center to improve compatibility with other Docker management tools and make it easier to identify and manage NOMAD containers. Thanks @techyogi for the contribution!
  • Docs: Added a simple API reference for power users and developers. Thanks @hestela for the contribution!
  • Docs: Re-formatted the Quick Install command into multiple lines for better readability in the README. Thanks @samsara-02 for the contribution!
  • Docs: Updated the CONTRIBUTING and FAQ guides with the latest information and clarified some common questions. Thanks @jakeaturner for the contribution!
  • Ops: Bumped GitHub Actions to their latest versions. Thanks @salmanmkc for the contribution!
  • Performance: Shrunk the bundle size of the Command Center UI significantly by optimizing dependencies and tree-shaking, resulting in faster load times and a snappier user experience. Thanks @jakeaturner for the contribution!
  • Performance: Implemented gzip compression by default for all HTTP registered routes from the Command Center backend to further improve performance, especially on slower connections. The DISABLE_COMPRESSION environment variable can be used to turn off this feature if needed. Thanks @jakeaturner for the contribution!
  • Performance: Added light caching of certain Docker socket interactions and custom AI Assistant name resolution to improve performance and reduce redundant calls to the Docker API. Thanks @jakeaturner for the contribution!
  • Performance: Switched to Inertia router navigation calls where appropriate to take advantage of Inertia's built-in caching and performance optimizations for a smoother user experience. Thanks @jakeaturner for the contribution!

Version 1.30.3 - March 25, 2026

Features

Bug Fixes

  • Benchmark: Fixed an issue where CPU and Disk Write scores could be displayed as 0 if the measured values was less than half of the reference mark. Thanks @bortlesboat for the fix!
  • Content Manager: Fixed a missing API client method that was causing ZIM file deletions to fail. Thanks @LuisMIguelFurlanettoSousa for the fix!
  • Install: Fixed an issue where the install script could incorrectly report the Docker NVIDIA runtime as missing. Thanks @brenex for the fix!
  • Support the Project: Fixed a broken link to Rogue Support. Thanks @chriscrosstalk for the fix!

Improvements

  • AI Assistant: Improved error reporting and handling for model downloads. Thanks @chriscrosstalk for the contribution!
  • AI Assistant: Bumped the default version of Ollama installed to v0.18.1 to take advantage of the latest performance improvements and bug fixes.
  • Apps: Improved error reporting and handling for service installation failures. Thanks @trek-e for the contribution!
  • Collections: Updated various curated collection links to their latest versions. Thanks @builder555 for the contribution!
  • Cyberchef: Bumped the default version of CyberChef installed to v10.22.1 to take advantage of the latest features and bug fixes.
  • Docs: Added a link to the step-by-step installation guide and video tutorial. Thanks @chriscrosstalk for the contribution!
  • Install: Increased the retries limit for the MySQL service in Docker Compose to improve stability during installation on systems with slower performance. Thanks @dx4956 for the contribution!
  • Install: Fixed an issue where stale data could cause credentials mismatch in MySQL on reinstall. Thanks @chriscrosstalk for the fix!

Version 1.30.0 - March 20, 2026

Features

  • Night Ops: Added our most requested feature — a dark mode theme for the Command Center interface! Activate it from the footer and enjoy the sleek new look during your late-night missions. Thanks @chriscrosstalk for the contribution!
  • Debug Info: Added a new "Debug Info" modal accessible from the footer that provides detailed system and application information for troubleshooting and support. Thanks @chriscrosstalk for the contribution!
  • Support the Project: Added a new "Support the Project" page in settings with links to community resources, donation options, and ways to contribute.
  • Install: The main NOMAD image is now fully self-contained and directly usable with Docker Compose, allowing for more flexible and customizable installations without relying on external scripts. The image remains fully backwards compatible with existing installations, and the install script has been updated to reflect the simpler deployment process.

Bug Fixes

  • Settings: Storage usage display now prefers real block devices over tempfs. Thanks @Bortlesboat for the fix!
  • Settings: Fixed an issue where device matching and mount entry deduplication logic could cause incorrect storage usage reporting and missing devices in storage displays.
  • Maps: The Maps page now respects the request protocol (http vs https) to ensure map tiles load correctly. Thanks @davidgross for the bug report!
  • Knowledge Base: Fixed an issue where file embedding jobs could cause a retry storm if the Ollama service was unavailable. Thanks @skyam25 for the bug report!
  • Curated Collections: Fixed some broken links in the curated collections definitions (maps and ZIM files) that were causing some resources to fail to download.
  • Easy Setup: Fixed an issue where the "Start Here" badge would persist even after visiting the Easy Setup Wizard for the first time. Thanks @chriscrosstalk for the fix!
  • UI: Fixed an issue where the loading spinner could look strange in certain use cases.
  • System Updates: Fixed an issue where the update banner would persist even after the system was updated successfully. Thanks @chriscrosstalk for the fix!
  • Performance: Various small memory leak fixes and performance improvements across the UI to ensure a smoother experience.

Improvements

  • Ollama: Improved GPU detection logic to ensure the latest GPU config is always passed to the Ollama container on update
  • Ollama: The detected GPU type is now persisted in the database for more reliable configuration and troubleshooting across updates and restarts. Thanks @chriscrosstalk for the contribution!
  • Downloads: Users can now dismiss failed download notifications to reduce clutter in the UI. Thanks @chriscrosstalk for the contribution!
  • Logging: Changed the default log level to "info" to reduce noise and focus on important messages. Thanks @traxeon for the suggestion!
  • Logging: NOMAD's internal logger now creates it's own log directory on startup if it doesn't already exist to prevent errors on fresh installs where the logs directory hasn't been created yet.
  • Dozzle: Dozzle shell access and container actions are now disabled by default. Thanks @traxeon for the recommendation!
  • MySQL & Redis: Removed port exposure to host by default for improved security. Ports can still be exposed manually if needed. Thanks @traxeon for the recommendation!
  • Dependencies: Various dependency updates to close security vulnerabilities and improve stability
  • Utility Scripts: Added a check for the expected Docker Compose version (v2) in all utility scripts to provide clearer error messages and guidance if the environment is not set up correctly.
  • Utility Scripts: Added an additional warning to the installation script to inform about potential overwriting of existing customized configurations and the importance of backing up data before running the installation script again.
  • Documentation: Updated installation instructions to reflect the new option for manual deployment via Docker Compose without the install script.

Version 1.29.0 - March 11, 2026

Features

  • AI Assistant: Added improved user guidance for troubleshooting GPU pass-through issues
  • AI Assistant: The last used model is now automatically selected when a new chat is started
  • Settings: NOMAD now automatically performs nightly checks for available app updates, and users can select and apply updates from the Apps page in Settings

Bug Fixes

  • Settings: Fixed an issue where the AI Assistant settings page would be shown in navigation even if the AI Assistant was not installed, thus causing 404 errors when clicked
  • Security: Path traversal and SSRF mitigations
  • AI Assistant: Fixed an issue that was causing intermittent failures saving chat session titles

Improvements

  • AI Assistant: Extensive performance improvements and improved RAG intelligence/context usage

Version 1.28.0 - March 5, 2026

Features

  • RAG: Added support for viewing active embedding jobs in the processing queue and improved job progress tracking with more granular status updates
  • RAG: Added support for removing documents from the knowledge base (deletion from Qdrant and local storage)

Bug Fixes

  • Install: Fixed broken url's in install script and updated to prompt for Apache 2.0 license acceptance
  • Docs: Updated legal notices to reflect Apache 2.0 license and added Qdrant attribution
  • Dependencies: Various minor dependency updates to close security vulnerabilities

Improvements

  • License: Added Apache 2.0 license file to repository for clarity and legal compliance

Version 1.27.0 - March 4, 2026

Features

  • Settings: Added pagination support for Ollama model list
  • Early Access Channel: Allows users to opt in to receive early access builds with the latest features and improvements before they hit stable releases

Bug Fixes

Improvements

  • AI Assistant: Improved chat performance by optimizing query rewriting and response streaming logic
  • CI/CD: Updated release workflows to support release candidate versions
  • KV Store: Improved type safety in KV store implementation

Version 1.26.0 - February 19, 2026

Features

  • AI Assistant: Added support for showing reasoning stream for models with thinking capabilities
  • AI Assistant: Added support for response streaming for improved UX

Bug Fixes

Improvements

Version 1.25.2 - February 18, 2026

Features

Bug Fixes

  • AI Assistant: Fixed an error from chat suggestions when no Ollama models are installed
  • AI Assistant: Improved discrete GPU detection logic
  • UI: Legacy links to /docs and /knowledge-base now gracefully redirect to the correct pages instead of showing 404 errors

Improvements

  • AI Assistant: Chat suggestions are now disabled by default to avoid overwhelming smaller hardware setups

Version 1.25.1 - February 12, 2026

Features

Bug Fixes

  • Settings: Fix potential stale cache issue when checking for system updates
  • Settings: Improve user guidance during system updates

Improvements

Version 1.25.0 - February 12, 2026

Features

  • Collections: Complete overhaul of collection management with dynamic manifests, database tracking of installed resources, and improved UI for managing ZIM files and map assets
  • Collections: Added support for checking if newer versions of installed resources are available based on manifest data

Bug Fixes

  • Benchmark: Improved error handling and status code propagation for better user feedback on submission failures
  • Benchmark: Fix a race condition in the sysbench container management that could lead to benchmark test failures

Improvements


Version 1.24.0 - February 10, 2026

🚀 Features

  • AI Assistant: Query rewriting for enhanced context retrieval
  • AI Assistant: Allow manual scan and resync of Knowledge Base
  • AI Assistant: Integrated Knowledge Base UI into AI Assistant page
  • AI Assistant: ZIM content embedding into Knowledge Base
  • Downloads: Display model download progress
  • System: Cron job for automatic update checks
  • Docs: Polished documentation rendering with desert-themed components

🐛 Bug Fixes

  • AI Assistant: Chat suggestion performance improvements
  • AI Assistant: Inline code rendering
  • GPU: Detect NVIDIA GPUs via Docker API instead of lspci
  • Install: Improve Docker GPU configuration
  • System: Correct memory usage percentage calculation
  • System: Show host OS, hostname, and GPU instead of container info
  • Collections: Correct devdocs ZIM filenames in Computing & Technology
  • Downloads: Sort active downloads by progress descending
  • Docs: Fix multiple broken internal links and route references

✨ Improvements

  • Docs: Overhauled in-app documentation with sidebar ordering
  • Docs: Updated README with feature overview
  • GPU: Reusable utility for running nvidia-smi

Version 1.23.0 - February 5, 2026

🚀 Features

  • Maps: Maps now use full page by default
  • Navigation: Added "Back to Home" link on standard header pages
  • AI: Fuzzy search for AI models list
  • UI: Improved global error reporting with user notifications

🐛 Bug Fixes

  • Kiwix: Avoid restarting the Kiwix container while download jobs are running
  • Docker: Ensure containers are fully removed on failed service install
  • AI: Filter cloud models from API response and fallback model list
  • Curated Collections: Prevent duplicate resources when fetching latest collections
  • Content Tiers: Rework tier system to dynamically determine install status on the server side

✨ Improvements

  • Docs: Added pretty rendering for markdown tables in documentation pages

Version 1.22.0 - February 4, 2026

🚀 Features

  • Content Manager: Display friendly names (Title and Summary) instead of raw filenames for ZIM files
  • AI Knowledge Base: Automatically add NOMAD documentation to AI Knowledge Base on install

🐛 Bug Fixes

  • Maps: Ensure map asset URLs resolve correctly when accessed via hostname
  • Wikipedia: Prevent loading spinner overlay during download
  • Easy Setup: Scroll to top when navigating between wizard steps
  • AI Chat: Hide chat button and page unless AI Assistant is actually installed
  • Settings: Rename confusing "Port" column to "Location" in Apps Settings

✨ Improvements

  • Ollama: Cleanup model download logic and improve progress tracking

Version 1.21.0 - February 2, 2026

🚀 Features

  • AI Assistant: Built-in AI chat interface — no more separate Open WebUI app
  • Knowledge Base: Document upload with OCR, semantic search (RAG), and contextual AI responses via Qdrant
  • Wikipedia Selector: Dedicated Wikipedia content management with smart package selection
  • GPU Support: NVIDIA and AMD GPU passthrough for Ollama (faster AI inference)

🐛 Bug Fixes

  • Benchmark: Detect Intel Arc Graphics on Core Ultra processors
  • Easy Setup: Remove built-in System Benchmark from wizard (now in Settings)
  • Icons: Switch to Tabler Icons for consistency, remove unused icon libraries
  • Docker: Avoid re-pulling existing images during install

✨ Improvements

  • Ollama: Fallback list of recommended models if api.projectnomad.us is down
  • Ollama/Qdrant: Docker images pinned to specific versions for stability
  • README: Added website and community links
  • Removed Open WebUI as a separate installable app (replaced by built-in AI Chat)

Version 1.20.0 - January 28, 2026

🚀 Features

  • Collections: Expanded curated categories with more content and improved tier selection modal UX
  • Legal: Expanded Legal Notices and moved to bottom of Settings sidebar

🐛 Bug Fixes

  • Install: Handle missing curl dependency on fresh Ubuntu installs
  • Migrations: Fix timestamp ordering for builder_tag migration

Version 1.19.0 - January 28, 2026

🚀 Features

  • Benchmark: Builder Tag system — claim leaderboard spots with NOMAD-themed tags (e.g., "Tactical-Llama-1234")
  • Benchmark: Full benchmark with AI now required for community sharing; HMAC-signed submissions
  • Release Notes: Subscribe to release notes via email
  • Maps: Automatically download base map assets if missing

🐛 Bug Fixes

  • System Info: Fall back to fsSize when disk array is empty (fixes "No storage devices detected")

Version 1.18.0 - January 24, 2026

🚀 Features

  • Collections: Improved curated collections UX with persistent tier selection and submit-to-confirm workflow

🐛 Bug Fixes

  • Benchmark: Fix AI benchmark connectivity (Docker container couldn't reach Ollama on host)
  • Open WebUI: Fix install status indicator

✨ Improvements

  • Docker: Container URL resolution utility and networking improvements

Version 1.17.0 - January 23, 2026

🚀 Features

  • System Benchmark: Hardware scoring with NOMAD Score, circular gauges, and community leaderboard submission
  • Dashboard: User-friendly app names with "Powered by" open source attribution
  • Settings: Updated nomenclature and added tiered content collections to Settings pages
  • Queues: Support working all queues with a single command

🐛 Bug Fixes

  • Easy Setup: Select valid primary disk for storage projection bar
  • Docs: Remove broken service links that pointed to invalid routes
  • Notifications: Improved styling
  • UI: Remove splash screen
  • Maps: Static path resolution fix

Version 1.16.0 - January 20, 2026

🚀 Features

  • Apps: Force-reinstall option for installed applications
  • Open WebUI: Manage Ollama models directly from Command Center
  • Easy Setup: Show selected AI model size in storage projection bar

✨ Improvements

  • Curated Categories: Improved fetching from GitHub
  • Build: Added dockerignore file

Version 1.15.0 - January 19, 2026

🚀 Features

  • Easy Setup Wizard: Redesigned Step 1 with user-friendly capability cards instead of app names
  • Tiered Collections: Category-based content collections with Essential, Standard, and Comprehensive tiers
  • Storage Projection Bar: Visual disk usage indicator showing projected additions during Easy Setup
  • Windows Support: Docker Desktop support for local development with platform detection and NOMAD_STORAGE_PATH env var
  • Documentation: Comprehensive in-app documentation (Home, Getting Started, FAQ, Use Cases)

✨ Improvements

  • Easy Setup: Renamed step 3 label from "ZIM Files" to "Content"
  • Notifications: Fixed auto-dismiss not working due to stale closure
  • Added Survival & Preparedness and Education & Reference content categories

Version 1.14.0 - January 16, 2026

🚀 Features

  • Collections: Auto-fetch latest curated collections from GitHub

🐛 Bug Fixes

  • Docker: Improved container state management

Version 1.13.0 - January 15, 2026

🚀 Features

  • Easy Setup Wizard: Initial implementation of the guided first-time setup experience
  • Maps: Enhanced missing assets warnings
  • Apps: Improved app cards with custom icons

🐛 Bug Fixes

  • Curated Collections: UI tweaks
  • Install: Changed admin container pull_policy to always

Version 1.12.0 - 1.12.3 - December 24, 2025 - January 13, 2026

🚀 Features

  • System: Check internet status on backend with custom test URL support

🐛 Bug Fixes

  • Admin: Improved service install status management
  • Admin: Improved duplicate install request handling
  • Admin: Fixed base map assets download URL
  • Admin: Fixed port binding for Open WebUI
  • Admin: Improved memory usage indicators
  • Admin: Added favicons
  • Admin: Fixed container healthcheck
  • Admin: Fixed missing ZIM download API client method
  • Install: Fixed disk info file mount and stability
  • Install: Ensure update script always pulls latest images
  • Install: Use modern docker compose command in update script
  • Install: Ensure update script is executable
  • Scripts: Remove disk info file on uninstall

Version 1.11.0 - 1.11.1 - December 24, 2025

🚀 Features

  • Maps: Curated map region collections
  • Collections: Map region collection definitions

🐛 Bug Fixes

  • Maps: Fixed custom pmtiles file downloads
  • Docs: Documentation renderer fixes

Version 1.10.1 - December 5, 2025

✨ Improvements

  • Kiwix: ZIM storage path improvements

Version 1.10.0 - December 5, 2025

🚀 Features

  • Disk info monitoring

✨ Improvements

  • Install: Add Redis env variables to compose file
  • Kiwix: Initial download and setup

Version 1.9.0 - December 5, 2025

🚀 Features

  • Background job management with BullMQ

✨ Improvements

  • Install: Character escaping in env variables
  • Install: Host env variable

Version 1.8.0 - December 5, 2025

🚀 Features

  • Alert and button styles redesign
  • System info page redesign
  • Collections: Curated ZIM Collections with slug, icon, and language support
  • Custom map and ZIM file downloads (WIP)
  • New maps system (WIP)

✨ Improvements

  • DockerService: Cleanup old OSM stuff
  • Install: Standardize compose file names

Version 1.7.0 - December 5, 2025

🚀 Features

  • Alert and button styles redesign
  • System info page redesign
  • Collections: Curated ZIM Collections
  • Custom map and ZIM file downloads (WIP)
  • New maps system (WIP)

✨ Improvements

  • DockerService: Cleanup old OSM stuff
  • Install: Standardize compose file names

Version 1.6.0 - November 18, 2025

🚀 Features

  • Added Kolibri to standard app library

✨ Improvements

  • Standardize container names in management-compose

Version 1.5.0 - November 18, 2025

🚀 Features

  • Version footer and fix CI version handling

Version 1.4.0 - November 18, 2025

🚀 Features

  • Services: Friendly names and descriptions

✨ Improvements

  • Scripts: Logs directory creation improvements
  • Scripts: Fix typo in management-compose file path

Version 1.3.0 - October 9, 2025

🚀 New Features

  • Uninstall script now removes non-management NOMAD app containers

✨ Improvements

  • OpenStreetMap: Apply dir permission fixes more robustly

Version 1.2.0 - October 7, 2025

🚀 New Features

  • Added CyberChef to standard app library
  • Added Dozzle to core containers for enhanced logs and metrics
  • Added FlatNotes to standard app library
  • Uninstall helper script available

✨ Improvements

  • OpenStreetMap:
    • Fixed directory paths and access issues
    • Improved error handling
    • Fixed renderer file permissions
    • Fixed absolute host path issue
  • ZIM Manager:
    • Initial ZIM download now hosted in Project NOMAD GitHub repo for better availability

Version 1.1.0 - August 20, 2025

🚀 New Features

OpenStreetMap Installation

  • Added OpenStreetMap to installable applications
  • Automatically downloads and imports US Pacific region during installation.
  • Supports rendered tile caching for enhanced performance.

✨ Improvements

  • Apps: Added start/stop/restart controls for each application container in settings
  • ZIM Manager: Error-handling/resumable downloads + enhanced UI
  • System: You can now view system information such as CPU, RAM, and disk stats in settings
  • Legal: Added legal notices in settings
  • UI: Added general UI enhancements such as alerts and error dialogs
  • Standardized container naming to reduce potential for conflicts with existing containers on host system

⚠️ Breaking Changes

  • Container Naming: As a result of standardized container naming, it is recommend that you do a fresh install of Project NOMAD and any apps to avoid potential conflicts/duplication of containers

📚 Documentation

  • Added release notes page

Version 1.0.1 - July 11, 2025

🐛 Bug Fixes

  • Docs: Fixed doc rendering
  • Install: Fixed installation script URLs
  • OpenWebUI: Fixed Ollama connection

Version 1.0.0 - July 11, 2025

🚀 New Features

  • Initial alpha release for app installation and documentation
  • OpenWebUI, Ollama, Kiwix installation
  • ZIM downloads & management

Support


For the full changelog, see our GitHub releases.


File: admin/docs/use-cases.md

What Can You Do With NOMAD?

NOMAD is designed to be your information lifeline when internet isn't available. Here's how different people use it.


Emergency Preparedness

When disasters strike, internet and cell service often go down first. NOMAD keeps critical information at your fingertips.

What you can do:

  • Look up first aid and emergency medical procedures
  • Access survival guides and emergency protocols
  • Find information about water purification, food storage, shelter building
  • Use offline maps to navigate when GPS services are degraded
  • Research plant identification, weather patterns, radio frequencies
  • Upload emergency plans and protocols to the Knowledge Base for quick AI-assisted reference

Recommended content:

  • Medical Library ZIM collection
  • Survival/Prepper reference guides
  • Maps for your region and evacuation routes
  • Wikipedia (searchable for almost any topic)

Homeschooling and Education

Teach your children anywhere, with or without internet. Complete curriculum available offline.

What you can do:

  • Access Khan Academy's full course library (math, science, reading, history)
  • Track progress for multiple students
  • Supplement with Wikipedia for research projects
  • Use the AI as a patient tutor for any subject
  • Access classic literature through Project Gutenberg
  • Upload curriculum guides to the Knowledge Base so the AI can help answer curriculum-specific questions

Recommended content:

  • Khan Academy courses via Kolibri
  • Wikipedia for Schools (curated for younger learners)
  • Project Gutenberg (classic books)
  • Educational ZIM collections

Tip: Create separate Kolibri accounts for each child to track their individual progress.


Off-Grid Living

Living away from reliable internet doesn't mean living without information.

What you can do:

  • Research DIY projects and repairs
  • Look up gardening, animal husbandry, food preservation
  • Access medical references for remote healthcare
  • Learn new skills through educational videos
  • Get AI help with planning and problem-solving

Recommended content:

  • How-to and DIY reference collections
  • Medical and first aid guides
  • Agricultural and homesteading references
  • Maps for your rural area
  • Practical skills courses in Kolibri

Remote Work Sites

Construction sites, research stations, ships, and remote facilities often lack reliable internet.

What you can do:

  • Access technical references and documentation
  • Use AI for writing assistance and analysis
  • Upload technical manuals and SOPs to the Knowledge Base for document-aware AI responses
  • Look up regulations, standards, and procedures
  • Provide educational resources for workers
  • Maintain communication records with note-taking apps

Recommended content:

  • Industry-specific technical references
  • Relevant Wikipedia categories
  • Maps of work areas
  • Documentation and compliance guides

Travel and Expeditions

International travel, cruises, camping trips — stay informed anywhere.

What you can do:

  • Access maps without expensive roaming data
  • Research destinations, history, and culture
  • Translate concepts with AI assistance
  • Identify plants, animals, and geological features
  • Access travel health information

Recommended content:

  • Maps for destination countries/regions
  • Wikipedia in relevant languages
  • Medical/health references
  • Cultural and historical content

Privacy-Conscious Users

Some people simply prefer to keep their searches and questions private.

What you can do:

  • Search Wikipedia without being tracked
  • Ask AI questions that stay on your own hardware
  • Upload sensitive documents to the Knowledge Base — they never leave your server
  • Learn about sensitive topics privately
  • Keep your intellectual curiosity to yourself

How it works:

  • All data stays on your server
  • No search history sent to companies
  • No AI conversations leave your network — the AI chat is built into the Command Center
  • All Knowledge Base processing happens locally
  • You control your own information

Medical Reference

When you can't reach a doctor, having reliable medical information can be critical.

What you can access:

  • NHS Medicines A-Z (drug information and interactions)
  • Medical Library (field medicine, emergency procedures)
  • First aid guides
  • Anatomy and physiology references
  • Disease and symptom information

Important: Medical references are for information only. They don't replace professional medical care. In emergencies, always seek professional help when possible.

Recommended content:

  • Medical Essentials ZIM collection
  • NHS Medicines reference
  • First aid and emergency medicine guides

Academic Research

Students and researchers can work without depending on university networks.

What you can do:

  • Access Wikipedia's extensive article database
  • Use AI for research assistance and summarization
  • Upload research papers to the Knowledge Base for AI-assisted analysis and cross-referencing
  • Work on papers and projects offline
  • Cross-reference multiple sources
  • Take notes with built-in tools

Recommended content:

  • Full Wikipedia
  • Academic and educational references
  • Subject-specific ZIM collections
  • Note-taking apps (FlatNotes)

Setting Up for Your Use Case

Step 1: Identify Your Needs

What situations might you face without internet? What information would you need?

Step 2: Prioritize Content

Storage is limited. Focus on:

  1. Critical safety information (medical, emergency)
  2. Content matching your primary use case
  3. General reference (Wikipedia)
  4. Nice-to-have additions

Step 3: Upload Relevant Documents

Add your own documents to the Knowledge Base — emergency plans, technical manuals, curriculum guides, or research papers. The AI can reference these when you ask questions.

Step 4: Download While You Can

Keep your server updated while you have internet. You never know when you'll need to go offline.

Step 5: Practice

Try using NOMAD before you need it. Familiarity with the tools makes them more useful in a crisis.


Need Something Specific?

NOMAD content is customizable. If you don't see what you need:

  1. Browse Content Explorer — Thousands of ZIM files including Wikipedia packages
  2. Check Content Manager — Manage your installed content
  3. Browse Kolibri channels — Educational content for many subjects
  4. Upload your own documents — Add files to the Knowledge Base for AI-aware reference
  5. Request features — Let us know what content would help you on Discord

Your offline server, your content choices.