Crosstalk-Solutions/project-nomad

GitHub: Crosstalk-Solutions/project-nomad

一个集成本地AI、离线百科、教育平台和数据处理工具的断网生存知识服务器。

Stars: 667 | Forks: 84

# Project N.O.M.A.D. ### 用于离线媒体、归档和数据的节点 **永不断线的知识** [![网站](https://img.shields.io/badge/Website-projectnomad.us-blue)](https://www.projectnomad.us) [![Discord](https://img.shields.io/badge/Discord-Join%20Community-5865F2)](https://discord.com/invite/crosstalksolutions) [![基准测试](https://img.shields.io/badge/Benchmark-Leaderboard-green)](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工具