Project NOMAD:离线优先的本地知识与教育服务器

Project NOMAD是一个以离线为先的知识与教育服务器。维基百科、成千上万本书籍、课程、地图以及可选的本地AI,全部运行在你拥有的硬件上,无需网络。

https://www.projectnomad.us


游牧计划

永不离线的知识


Project NOMAD是一个自成一体、以离线为先的知识与教育服务器,配备了关键工具、知识和人工智能,随时随地为您提供信息更新和赋能。

安装与快速启动

Project NOMAD 可以安装在任何基于 Debian 的操作系统上(我们推荐 Ubuntu 26.04 LTS;24.04 LTS 和 Debian 12 也支持)。安装完全基于终端,所有工具和资源都设计为通过浏览器访问,因此如果你想将 NOMAD 设置为“服务器”并通过其他客户端访问,无需桌面环境。

注意:运行安装脚本需要 sudo/root 权限

快速安装(仅限基于Debian的操作系统)

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现已安装在您的设备上!打开浏览器并导航到http://localhost:8080(或http://DEVICE_IP:8080开始探索!

完整的逐步攻略(包括 Ubuntu 安装),请参见安装指南.对于Windows用户,请参见WSL2 安装指南—— 社区支持的路径,涵盖原生 Docker 和 Docker Desktop 安装路由。

高级安装

为了更好地控制安装过程,可以复制粘贴Docker Compose 模板变成了docker-compose.yml归档并自定义(确保用实际值替换占位符)。然后,运行docker compose up -d启动指挥中心及其依赖。

注意:此方法仅推荐给高级用户,因为需要熟悉 Docker 并在开始前手动配置。

工作原理

NOMAD是一个管理界面(“指挥中心”)和API,通过以下方式协调一系列容器化工具和资源Docker.它负责安装、配置和更新——所以你根本不用亲自操作。

内置功能包括:

  • 带知识库的AI聊天—— 本地AI聊天由奥拉玛或者你也可以使用兼容 OpenAI API 的软件,如 LM Studio 或 llama.cpp,支持文档上传和语义搜索(RAG 通过Qdrant)
  • 信息图书馆——离线维基百科、医学参考资料、电子书等,通过以下渠道获取奇维克斯
  • 教育纲领—— 可汗学院课程,带进度跟踪,来源科利布里
  • 离线地图——可下载的区域地图ProtoMaps
  • 数据工具—— 加密、编码和分析赛博厨师
  • 注释—— 本地笔记平板笔记
  • 系统基准测试—— 硬件评分,带有社区排行榜
  • 补给站—— 一键应用目录(PDF 工具、文件浏览器、电子书库、密码管理器等)以及运行自定义 Docker 容器的能力
  • 自动更新—— 核心软件、已安装应用和离线内容的免干预更新,时间安排由你控制
  • 简单设置向导—— 首次引导配置,搭配精选内容集合

NOMAD 还内置了维基百科内容选择器、ZIM 图书馆管理器和内容浏览器等工具。

包含内容

能力 动力来源 你得到了什么
信息图书馆 奇维克斯 离线维基百科、医学参考、生存指南、电子书
AI助手 奥拉玛 + Qdrant 内置聊天功能,支持文档上传和语义搜索
教育纲领 科利布里 可汗学院课程、进度跟踪、多用户支持
离线地图 ProtoMaps 可下载的区域地图,供离线查看和搜索
数据工具 赛博厨师 加密、编码、哈希与数据分析
注释 平板笔记 支持折扣的本地笔记
系统基准测试 内置 硬件评分、建造者标签与社区排行榜
补给站 内置 一键应用目录 + 自带自定义Docker 容器

设备需求

许多类似的离线生存电脑设计为在极简、轻量化的硬件上运行,而Project NOMAD则恰恰相反。为了安装和运行现有的AI工具,我们强烈建议使用强大的GPU支持设备,以最大化安装效率。

然而,从核心上讲,NOMAD 仍然非常轻量。对于管理应用程序本身的基础安装,需要以下最低规范:

注意:Project NOMAD不受任何硬件制造商赞助,设计上尽可能实现硬件无关性。以下列出的硬件仅供参考/比较用途

最低规格

  • 处理器:2 GHz 或更高级别的双核处理器
  • 内存:4GB 系统内存
  • 存储空间:至少5GB的可用磁盘空间
  • 操作系统:基于Debian(推荐Ubuntu 26.04 LTS)
  • 稳定的网络连接(仅安装时要求)

要运行大型语言模型及其他内置的人工智能工具:

最优规格

  • 处理器:AMD Ryzen 7 或 Intel Core i7 或更高级别
  • 内存:32 GB 系统内存
  • 显卡:NVIDIA RTX 3060或AMD同等或更高(显存更高=运行更大机型)
  • 存储空间:至少250GB的空闲磁盘空间(最好在SSD上)
  • 操作系统:基于Debian(推荐Ubuntu 26.04 LTS)
  • 稳定的网络连接(仅安装时要求)

关于三个价位($150–$1,000+)的详细组装推荐,请参见硬件指南.

同样,Project NOMAD本身相当轻量——关键在于你选择安装的工具和资源,决定你独特部署所需的规格

在不同主机上运行AI模型

默认情况下,NOMAD安装程序会在安装AI助手后尝试在主机上设置Ollama。不过,如果你想在其他主机上运行AI模型,可以进入AI助手的设置,输入Ollama或兼容OpenAI的API服务器(如LM Studio)的URL。
请注意,如果您在其他主机上使用 Ollama,必须以以下选项启动服务器:OLLAMA_HOST=0.0.0.0.
Ollama 是使用 AI 助手的首选方式,因为它有 OpenAI API 不支持的模型下载等功能。所以比如使用 LM Studio,你必须用 LM Studio 来下载模型。你负责在另一台主机上搭建 Ollama/OpenAI 服务器。

常见问题解答(FAQ)

有关Project NOMAD常见问题解答,请参阅我们的相关内容常见问题侍从。

关于互联网使用与隐私

Project NOMAD 设计为离线使用。仅在初始安装(下载依赖)及您(用户)决定之后下载额外工具和资源时,才需要互联网连接。否则,NOMAD 无需互联网连接,且完全没有内置遥测功能。

为了测试互联网连接,NOMAD首先尝试向Cloudflare的公用事业端点发出请求,https://1.1.1.1/cdn-cgi/trace.如果那个端点无法访问(比如因为你的网络被阻挡了)1.1.1.1),它会退回到应用已经联系的其他端点(GitHub API 和 Project NOMAD API),并在其中任何端点响应时考虑连接。

你可以用两种方式覆盖用于此检查的端点。连接测试URL可以从下面的界面配置设置→高级(存储在你的实例本地),或者你可以设置INTERNET_STATUS_TEST_URL环境变量。

设置时,环境变量始终优先于UI配置的值。如果两者都未设置,则使用上述内置默认值。

关于安全

Project NOMAD的设计意图是开放且无障碍的——它不包含认证。如果你在安装后决定将设备连接到局域网(例如允许其他设备访问其资源),你可以屏蔽或打开端口,以控制哪些服务被暴露。

未来会加入认证吗?也许吧。目前这不是优先事项,但如果需求足够大,我们可能会考虑在未来版本中加入可选的认证层,以支持多个用户需要访问同一实例但权限等级不同的场景(例如家长控制的家庭使用,教师/管理员账户的课堂使用等)。

我们在公开路线图中已有相关建议,如果你想看到,请在这里点赞:https://roadmap.projectnomad.us/posts/1/user-authentication-please-build-in-user-auth-with-admin-user-roles

目前,如果你计划将 NOMAD 实例暴露给局域网络上的其他设备,我们建议使用网络级控制来管理访问。NOMAD 并非设计用于直接暴露于互联网,我们强烈建议除非你非常了解自己在做什么,采取了适当的安全措施并了解其中的风险。

贡献

欢迎并感谢大家的贡献!请参见CONTRIBUTING.md关于如何参与项目的指导方针。

测试自动更新(试跑)

指挥中心可以自动安装小问题/补丁在可配置窗口内更新自身,经过冷却期后,且仅在预检通过(新镜像磁盘足够、无下载或应用安装过程中)时进行。

主要版本总是需要手动更新。

由于在实版本的凸起中执行该逻辑不切实际,Ace命令执行整个决策流程,却从未触发更新.从那边跑admin/目录:

# 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

它会打印已解决的判决——当前版本、时钟是否在窗口内、合格目标(如有)以及预检屏蔽器——最终以明确的结论收尾,如WOULD UPDATE → v1.33.2或WOULD NOT UPDATE (outside-window): ….从未要求任何真正的更新。

旗帜 描述
--scenarios 运行内置的确定性场景套件并退出
--current= 模拟当前运行的版本(例如:1.32.0)
--force-enabled 把自动更新当作启用,忽略已保存的设置
--cooloff= 覆盖冷却期
--window-start=/--window-end= 覆盖更新窗口
--now= 模拟特定时间的钟表
--releases-file= 使用本地的JSON releases数组,而不是离线抓取GitHub。
--skip-preflight 绕过Docker/磁盘/队列的预检

社区与资源

许可

NOMAD项目的授权方式是Apache 许可证 2.0.

辅助脚本

安装后,Project NOMAD有几个辅助脚本,方便你在需要排查问题或进行无法通过指挥中心完成的维护时使用。所有这些脚本都可在Project NOMAD的安装目录中找到,/opt/project-nomad

启动脚本 - 启动所有已安装的项目容器

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

停止脚本 - 停止所有已安装的项目容器

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

更新脚本——尝试拉取指挥中心及其依赖(如 mysql)的最新镜像并重建容器。注意:此点只有更新 Command Center 容器。它不会更新可安装的应用容器——这应该通过 Command Center UI 来完成

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

卸载脚本——需要重新开始吗?使用卸载脚本让你的生活更轻松。注意:此操作无法撤销!

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
参与讨论