Project NOMAD:离线优先的本地知识与教育服务器
Project NOMAD是一个以离线为先的知识与教育服务器。维基百科、成千上万本书籍、课程、地图以及可选的本地AI,全部运行在你拥有的硬件上,无需网络。
游牧计划
永不离线的知识
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/磁盘/队列的预检 |
社区与资源
- 网站: www.projectnomad.us- 了解更多关于该项目的信息
- Discord: 加入社区- 寻求帮助,分享你的构建,并与其他NOMAD用户交流
- 基准测试排行榜: benchmark.projectnomad.us- 看看你的硬件与其他NOMAD构建的表现如何
- 常见问题: FAQ.md- 查找常见问题解答
- 社区附加内容: admin/docs/community-add-ons.md- 社区开发的第三方内容包
许可
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