先想一个场景:断网了,或者你在一台没有网络的设备上——比如野外作业的车里、断网的教学点、没有宽带的老房子。这时候你还想查维基百科、看可汗学院的课、翻医学手册、问 AI 一个问题。
Project NOMAD 就是为这个场景做的。但它跟那些「离线维基 U 盘」的做法不太一样:它不是把内容打包给你,而是把七八个成熟的开源工具编排成一套系统,再用一个统一的管理界面把它们串起来。装完打开浏览器,看到的是一个有九个入口的控制台,而不是一个塞满文件的目录。
项目在 GitHub 上有 43189 星、4442 个 fork,TypeScript 写的,Apache-2.0 协议。这个星数在自托管圈里属于头部,但它主打的「离线生存计算机」概念在国内讨论不多,所以值得认真拆一拆。
一、它的工作方式:一个控制台,编排一堆容器
官方对自身的描述很准确:NOMAD 是一个管理界面(Command Center)加一套 API,通过 Docker 编排一组容器化的工具和资源。安装、配置、更新这些活它都替你干了。
这句话的重点在「编排」。Kiwix、Kolibri、Ollama、Qdrant、ProtoMaps、CyberChef、FlatNotes 这些工具单独拿出来都是成熟项目,各自有自己的部署方式。NOMAD 做的事是:把它们统一成一个安装单元,共享一套配置和更新机制,并在一个界面里给它们各自的入口。
九个卡片对应九件事:
| 入口 | 底层是啥 | 你能得到什么 |
|---|---|---|
| Information Library | Kiwix | 离线维基百科、医学参考、生存手册、电子书 |
| Education Platform | Kolibri | 可汗学院课程,带进度跟踪与多用户 |
| AI Assistant | Ollama + Qdrant | 本地大模型对话,支持上传文档做语义检索 |
| Maps | ProtoMaps | 按区域下载的离线地图,可看可搜 |
| Knowledge Base | Qdrant 向量库 | 把你的文档喂进去,让 AI 基于它答问 |
| Install Apps | Supply Depot | 一键装 PDF 工具、文件浏览器、电子书库、密码管理器,也能跑自定义容器 |
| Easy Setup | 内置向导 | 首次配置:勾选要装的内容合集 |
| Docs | 内置文档 | 项目手册与指南 |
| Settings | 内置 | 实例配置 |
这个组合有个明显的好处:你不必分别去学七套部署方法。坏处也很明显——任何一个组件出问题,排查路径都会变长,因为中间隔了一层编排层。
二、AI 助手:模型体积就是内存需求
AI 助手是这套东西里最「现代」的部分:本地跑 Ollama,右上角直接显示当前加载的模型和它的体积(截图里是 llama3.2:latest,1.88 GB)。它也支持接 OpenAI API 兼容的服务,比如 LM Studio 或 llama.cpp——意味着你可以在别的机器上跑推理,NOMAD 只做前端。
RAG 部分是 Qdrant 向量库。往 Knowledge Base 里传文档,AI 回答时会先检索你的文档再生成——这就是为什么控制台里「Knowledge Base」是独立一个入口,而不是塞在 AI 助手里。
这里必须把一个常被误解的点讲清楚,因为它决定了你该买什么机器:
模型回答问题时的内存占用,大致等于它的下载体积。有独立显卡时这部分从显存出,没有就从系统内存出。
官方文档写得很直白:装上 AI 助手后,整套东西的占用会从 5 GB 涨到约 25 GB,因为 Ollama 加一个通用模型本身就很大。也就是说,一台 4 GB 内存的小主机可以跑 NOMAD,但跑不动 AI;而想跑得舒服,官方给的建议是 32 GB 内存 + RTX 3060 级别的显卡 + 250 GB SSD。
还有一句官方特别强调的话值得抄下来:真正把硬盘塞满的不是 NOMAD,是你后来下载的离线内容。NOMAD 本体只有 5 GB 上下,一个完整的离线维基 ZIM 加上医学库、可汗学院课程包、几个区域地图,轻松几十上百 GB。装之前先想清楚你要装什么,比纠结主机配置更重要。
三、离线资料库:内容浏览器的实际形态
Information Library 底层是 Kiwix,也就是维基百科离线版那套东西。NOMAD 在它上面加了两层:一个内容选择器(挑要下哪些 ZIM)和一个资料库管理器(已下载内容的浏览与清理)。
截图里能看到「Curated Collections」的概念——不让你在一堆 ZIM 文件里瞎挑,而是按用途打包:医学与参考、教育、生存手册等。对不熟悉 Kiwix 生态的人来说,这个改动挺关键,否则新手面对几百个 ZIM 条目根本不知道该下哪个。
另外它还有 content explorer(内容浏览器)和 ZIM library manager(ZIM 库管理)这两个内置工具,都是解决同一个问题的不同侧面:离线内容的「选、装、找」。
四、离线地图:ProtoMaps 那套
地图用的是 ProtoMaps——一套开源的矢量瓦片方案,特点是可以按区域打包下载,不需要在线瓦片服务。界面上有「Manage Map Regions」,管的是你下载了哪些区域。
这东西的实际价值取决于你在哪:如果是城市里,手机地图够用;如果是野外、海上、灾区,或者手机没信号的地方,一张能离线搜索的矢量地图就是刚需。它的问题也一样明显——地图区域要手动下、手动管,忘了下就等于没有。
五、安装:一条脚本,或者一份 compose
官方支持两条路:
- 一键脚本:只支持 Debian 系系统(推荐 Ubuntu 26.04 LTS,24.04 LTS 与 Debian 12 也支持),脚本会装依赖、拉镜像、起容器,装完访问 8080 端口。
- Docker Compose 模板:自己拷一份 compose 文件,把占位符换成真实值,然后起容器。官方说这条路「只推荐给熟悉 Docker 的高级用户」。
装完进 Easy Setup 向导:分步勾选要装的应用和内容合集,界面右侧实时显示已选数量和磁盘占用(截图里能看到存储条和「0 capabilities, 0 map regions, 0 content packs」这样的实时统计)。这种「边选边看占用」的设计比装完才发现盘不够友好得多。
要注意的是安装阶段必须联网——所有镜像和依赖都在这时候下载。装完之后,除了你自己主动去下内容,它不再需要网络。
六、安全:它是「设计上就不设防」的
这一节必须单独讲,因为它是这个项目最容易被忽视、后果最严重的一点。
README 里写得很清楚:Project NOMAD 按设计就是开放、无门槛的,它不包含任何身份认证。官方建议如果你要把设备接入局域网,用网络层的端口控制来管理谁能访问哪些服务;并且明确不建议把 NOMAD 直接暴露到公网,除非你很清楚自己在做什么、采取了适当的安全措施、并理解其中的风险。
官方也解释了为什么不加认证:目前不是优先级。但 roadmap 上有一个「用户认证 + 管理员角色」的建议帖,想支持家庭共用(配合家长控制)和教室共用(老师/学生分权)这类场景,可以去投票。
这件事的实际含义是:你的 NOMAD 一旦连上任何共享网络,同一网段的人就能直接打开它,看到你所有的笔记、上传的文档、AI 对话记录。它适合的部署方式是「一台独立的、只给自己用的设备」,或者「接在内网但做好端口隔离」。如果你打算把它放在家里 NAS 旁边长期开着并映射到公网——那基本等于把家门钥匙插在门上。
另外,笔记用的是 FlatNotes,密码管理器在 Supply Depot 里也有——在无认证的系统里存密码,这个组合要想清楚。
七、自动更新与运维脚本
自动更新是 opt-in 的,只覆盖次版本与修订版(minor/patch),大版本永远要手动升。触发条件还挺克制:在可配置的时间窗口内、过了冷却期、且预检通过(磁盘够放新镜像、没有正在进行的下载或应用安装)才会动。
有意思的是它给了个演练命令:跑一遍完整的决策流程但绝不真的更新,输出「如果现在更新会发生什么」。支持三种模式——跑内置场景测试(不联网、不碰 Docker,失败就非零退出,可以挂进 CI)、对着真实的 GitHub releases 模拟、或者用本地固定的 release 列表离线模拟。这个设计思路挺专业:把「该不该更新」这个判断逻辑做成可测试的纯函数。
运维脚本都放在安装目录下,四个:启动、停止、更新(只更新 Command Center 与其依赖,不动那些可安装的应用容器)、卸载。都属于「界面里干不了时才用」的兜底手段。
八、国内使用要注意的两个细节
第一个:连通性检测默认打 1.1.1.1。NOMAD 判断「有没有网」的方法是先请求 Cloudflare 的 1.1.1.1/cdn-cgi/trace,不通再回退到 GitHub API 和它自己的 API。问题在于 1.1.1.1 在国内部分网络环境下不可达——这时候它可能一直认为你没联网,进而影响需要联网的功能。
好在它给了两个覆盖方式:界面的「Settings → Advanced」里改检测地址(存在本地实例里),或者设环境变量 INTERNET_STATUS_TEST_URL(环境变量优先级高于界面配置)。国内部署建议第一件事就把这个改成能稳定访问的地址。
第二个:镜像与内容源的速度。安装阶段要从 Docker Hub、GitHub 拉镜像,离线内容要从 Kiwix 的源站下。国内直连这两处通常不快,几十 GB 的内容可能下一个通宵。要提前把镜像加速和内容下载的时间算进部署计划里,别指望「装完就能用」。
九、它适合谁,不适合谁
适合的场景:
- 断网/弱网环境的常驻知识站:野外营地、船、偏远教学点、应急指挥点。一台小主机 + 一块大硬盘,把维基、医学、课程、地图全带上。
- 给孩子做无网学习机:可汗学院课程 + 离线维基 + 没有社交软件,配合局域网隔离,比给孩子一台能上网的平板更可控。
- 想要「断网也能问 AI」的折腾派:本地模型 + 自己的文档库,数据完全不出机器。
- 数字避难所式的自托管玩家:把最需要的那批参考资料固化下来,不依赖任何在线服务。
不适合的场景:
- 想当家用 NAS 或媒体中心:它不是干这个的,Supply Depot 里的应用也替代不了成熟的 NAS 系统。
- 想做成多人在线服务:没有认证,做多人服务等于自找麻烦。
- 只有一台 4 GB 小机器却想要 AI:装得上,跑不动。AI 那 25 GB 和对应内存不是可选项。
- 期待「装完自动就有内容」:内容和地图都要你自己选、自己下,这部分工作量不小。
一句话总结:Project NOMAD 的价值不在于它发明了什么新技术,而在于它把一批各自为战的离线工具做成了一个「开机即用」的整体,并且把最麻烦的编排、更新、内容管理工作收进了一个控制台。代价是它主动放弃了认证这道门——所以它更适合「一台属于你自己的离线设备」,而不是「一台放在网上的服务器」。想清楚这个定位差异,剩下的就都是配置问题了。
本文根据项目公开仓库 Crosstalk-Solutions/project-nomad 的 README 与官网(projectnomad.us)公开信息整理撰写,配图取自官网 screenshots 目录下的官方界面截图(已统一转为 JPEG 并去除元数据,未修改画面内容)。文中星标数、硬件要求、许可协议与安全设计说明均为撰写时项目文档所载,项目迭代较快,请以仓库与官方文档当前状态为准。文中不含安装命令与外链入口。
本文整理自公开资料并做重写,原始出处:https://github.com/Crosstalk-Solutions/project-nomad。文中配图已去除站点叠加水印与推广信息;版权归原作者所有。




