Crosstalk-Solutions/project-nomad
GitHub: Crosstalk-Solutions/project-nomad
一个集成本地AI、离线百科、教育平台和数据处理工具的断网生存知识服务器。
Stars: 667 | Forks: 84

# Project N.O.M.A.D.
### 用于离线媒体、归档和数据的节点
**永不断线的知识**
[](https://www.projectnomad.us)
[](https://discord.com/invite/crosstalksolutions)
[](https://benchmark.projectnomad.us)
Project N.O.M.A.D. 是一个自成一体、离线优先的知识和教育服务器,内置关键工具、知识和 AI,旨在让您随时随地获取信息并增强能力。
## 安装与快速入门
Project N.O.M.A.D. 可以安装在任何基于 Debian 的操作系统上(我们推荐 Ubuntu)。安装完全基于终端进行,所有工具和资源均设计为通过浏览器访问,因此如果您希望将 N.O.M.A.D. 设置为“服务器”并通过其他客户端访问,则无需桌面环境。
*注意:运行安装脚本需要 sudo/root 权限*
#### 快速安装
```
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 N.O.M.A.D. 现已安装在您的设备上!打开浏览器并导航至 `http://localhost:8080`(或 `http://DEVICE_IP:8080`)即可开始探索!
## 工作原理
N.O.M.A.D. 是一个管理 UI(“指挥中心”)和 API,通过 [Docker](https://www.docker.com/) 编排一系列容器化工具和资源。它负责处理所有内容的安装、配置和更新——让您无需亲自动手。
**内置功能包括:**
- **带知识库的 AI 聊天** — 由 [Ollama](https://ollama.com/) 驱动的本地 AI 聊天,支持文档上传和语义搜索(通过 [Qdrant](https://qdrant.tech/) 实现 RAG)
- **信息库** — 通过 [Kiwix](https://kiwix.org/) 获取离线 Wikipedia、医学参考资料、电子书等
- **教育平台** — 通过 [Kolibri](https://learningequality.org/kolibri/) 提供可追踪进度的 Khan Academy 课程
- **离线地图** — 通过 [ProtoMaps](https://protomaps.com) 下载区域地图
- **数据工具** — 通过 [CyberChef](https://gchq.github.io/CyberChef/) 进行加密、编码和分析
- **笔记** — 通过 [FlatNotes](https://github.com/dullage/flatnotes) 进行本地笔记记录
- **系统基准测试** — 硬件评分及[社区排行榜](https://benchmark.projectnomad.us)
- **简易设置向导** — 引导式首次配置,包含精选内容合集
N.O.M.A.D. 还包含内置工具,如 Wikipedia 内容选择器、ZIM 库管理器和内容浏览器。
## 包含内容
| 功能 | 技术支持 | 您将获得 |
|-----------|-----------|-------------|
| 信息库 | Kiwix | 离线 Wikipedia、医学参考资料、生存指南、电子书 |
| AI 助手 | Ollama + Qdrant | 内置聊天,支持文档上传和语义搜索 |
| 教育平台 | Kolibri | Khan Academy 课程、进度追踪、多用户支持 |
| 离线地图 | ProtoMaps | 可下载的区域地图,支持搜索和导航 |
| 数据工具 | CyberChef | 加密、编码、哈希和数据分析 |
| 笔记 | FlatNotes | 本地笔记记录,支持 Markdown |
| 系统基准测试 | 内置 | 硬件评分、构建者标签和社区排行榜 |
## 设备要求
虽然许多类似的离线生存计算机旨在最低配置的轻量级硬件上运行,但 Project N.O.M.A.D. 恰恰相反。为了安装和运行可用的 AI 工具,我们强烈建议使用配置强大、支持 GPU 的设备,以充分利用您的安装环境。
然而,N.O.M.A.D. 的核心仍然非常轻量。对于管理应用程序本身的最小化安装,需要满足以下最低规格:
*注意:Project N.O.M.A.D. 未受任何硬件制造商赞助,旨在尽可能与硬件无关。下面列出的硬件仅用于示例/比较目的*
#### 最低规格
- 处理器:2 GHz 双核处理器或更高
- 内存:4GB 系统内存
- 存储:至少 5 GB 可用磁盘空间
- 操作系统:基于 Debian(推荐 Ubuntu)
- 稳定的互联网连接(仅在安装期间需要)
若要运行 LLM 和其他包含的 AI 工具:
#### 推荐规格
- 处理器:AMD Ryzen 7 或 Intel Core i7 或更高
- 内存:32 GB 系统内存
- 显卡:NVIDIA RTX 3060 或 AMD 同等产品或更高(显存越大 = 可运行更大的模型)
- 存储:至少 250 GB 可用磁盘空间(最好是 SSD)
- 操作系统:基于 Debian(推荐 Ubuntu)
- 稳定的互联网连接(仅在安装期间需要)
**有关三个价位($200–$800+)的详细构建建议,请参阅[硬件指南](https://www.projectnomad.us/hardware)。**
再次强调,Project N.O.M.A.D. 本身非常轻量——决定您独特部署所需规格的是您选择与 N.O.M.A.D. 一起安装的工具和资源。
## 关于互联网使用与隐私
Project N.O.M.A.D. 专为离线使用而设计。仅在初始安装期间(以下载依赖项)以及您(用户)决定稍后下载其他工具和资源时才需要互联网连接。除此之外,N.O.M.A.D. 不需要互联网连接,并且零内置遥测。
为了测试互联网连接,N.O.M.A.D. 尝试向 Cloudflare 的实用端点 `https://1.1.1.1/cdn-cgi/trace` 发出请求并检查是否成功响应。
## 关于安全性
根据设计,Project N.O.M.A.D. 旨在开放且无障碍地使用——它不包含身份验证。如果您决定在安装后将设备连接到本地网络(例如允许其他设备访问其资源),您可以阻止/打开端口以控制公开哪些服务。
**未来会添加身份验证吗?** 也许会。目前这不是优先事项,但如果有足够的需求,我们可能会考虑在未来的版本中构建可选的身份验证层,以支持多个用户需要以不同权限级别访问同一实例的用例(例如带有家长控制的家庭使用,带有教师/管理员账户的课堂使用等)。目前,如果您计划将 N.O.M.A.D. 实例暴露给本地网络上的其他设备,我们建议使用网络级控制来管理访问。N.O.M.A.D. 并非设计用于直接暴露在互联网上,我们强烈建议不要这样做,除非您真的知道自己在做什么,已采取适当的安全措施,并了解所涉及的风险。
## 贡献
我们欢迎并感谢各种贡献!请完整阅读本节以了解如何为项目做出贡献。
### 一般准则
- **先提交 Issue**:在开始开发新功能或修复错误之前,请先提交一个 Issue 来讨论您建议的更改。这有助于确保您的贡献与项目目标一致,并避免重复工作。请为 Issue 拟定清晰的标题,并详细描述您想要解决的问题或功能。
- **复刻仓库**:点击仓库页面右上角的“Fork”按钮,在您的 GitHub 账户下创建项目副本。
- **创建新分支**:在您复刻的仓库中,为您的开发工作创建一个新分支。使用能反映更改目的的描述性分支名称(例如 `fix/issue-123` 或 `feature/add-new-tool`)。
- **进行更改**:在新分支中实施您的更改。遵循项目中使用的现有代码风格和约定。请务必在本地测试您的更改,以确保它们按预期工作。
- **添加发布说明**:如果您的更改包含新功能、错误修复或改进,请参阅下面的“发布说明”部分,以便为下一个版本正确记录您的贡献。
- **约定式提交**:提交更改时,请使用约定式提交消息,以提供清晰一致的提交历史。格式为 `
(): `,其中:
- `type` 是更改的类型(例如 `feat` 代表新功能,`fix` 代表错误修复,`docs` 代表文档更改等)
- `scope` 是更改影响的代码库的可选区域(例如 `api`、`ui`、`docs` 等)
- `description` 是更改的简要总结
- **提交 Pull Request**:更改准备就绪后,向主仓库提交 Pull Request。提供清晰的更改描述并引用任何相关的 Issue。项目维护者将审核您的 Pull Request,并可能在合并前提供反馈或要求更改。
- **及时响应反馈**:如果维护者要求更改或对您的 Pull Request 提供反馈,请及时回应。如果长时间没有活动,过时的 Pull Request 可能会被关闭。
- **遵守项目行为准则**:在与维护者和其他贡献者互动时,请遵守项目的行为准则。在交流中保持尊重和体贴。
- **不保证接受**:该项目是社区驱动的,所有贡献都受到赞赏,但不保证一定会被接受。维护者将根据质量、相关性和与项目目标的一致性来评估每个贡献。
- **感谢您为 Project N.O.M.A.D. 做出贡献!** 您的努力有助于让这个项目对每个人都更好。
### 版本控制
本项目使用语义版本控制。版本在根目录的 `package.json` 中管理,
并由 semantic-release 自动更新。为简单起见,"project-nomad" 镜像
使用在那里定义的相同版本,而不是 `admin/package.json` 中的版本(保持在 0.0.0),因为它是唯一从代码派生的已发布镜像。
### 发布说明
人类可读的发布说明位于 [`admin/docs/release-notes.md`](admin/docs/release-notes.md) 中,并显示在指挥中心的内置文档中。
进行更改时,在该文件顶部的 `## Unreleased` 部分添加摘要,放在相应的标题下:
- **Features(功能)** — 新的用户面向功能
- **Bug Fixes(错误修复)** — 对现有行为的修正
- **Improvements(改进)** — 增强、重构、文档或依赖项更新
使用格式 `- **Area**: Description` 以与现有条目保持一致。当触发发布时,CI 会自动标记版本和日期,提交更新,并将内容推送到 GitHub release。
## 社区与资源
- **网站:** [www.projectnomad.us](https://www.projectnomad.us) - 了解更多关于项目的信息
- **Discord:** [加入社区](https://discord.com/invite/crosstalksolutions) - 获取帮助、分享您的构建并与其他 NOMAD 用户交流
- **基准测试排行榜:** [benchmark.projectnomad.us](https://benchmark.projectnomad.us) - 查看您的硬件如何与其他 NOMAD 构建相媲美
## 许可证
Project N.O.M.A.D. 根据 [Apache License 2.0](LICENSE) 获得许可。
## 辅助脚本
安装完成后,如果您需要进行无法通过指挥中心完成的故障排除或维护,Project N.O.M.A.D. 提供了一些辅助脚本。所有这些脚本都位于 Project N.O.M.A.D. 的安装目录 `/opt/project-nomad` 中。
###
###### 启动脚本 - 启动所有已安装的项目容器
```
sudo bash /opt/project-nomad/start_nomad.sh
```
###
###### 停止脚本 - 停止所有已安装的项目容器
```
sudo bash /opt/project-nomad/stop_nomad.sh
```
###
###### 更新脚本 - 尝试拉取指挥中心及其依赖项(例如 mysql)的最新镜像并重新创建容器。注意:这仅更新指挥中心容器。它不会更新可安装的应用程序容器——这应该通过指挥中心 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
```
标签:AI风险缓解, Debian, Docker, NIDS, Web界面, 人工智能, 安全防御评估, 容器化, 应急通信, 教育平台, 数字生存, 数据归档, 无网环境, 本地部署, 灾难恢复, 用户模式Hook绕过, 知识管理, 离线AI, 离线生存, 离线知识库, 私有服务器, 自动化攻击, 自托管, 请求拦截, 预pper工具