NoteDiscovery 是一个轻量级、可自托管的笔记应用,定位为“你的自托管知识库”,让你完全掌控自己的知识库。它提供现代化界面,用于撰写、组织和发现笔记,所有内容运行在你自己的服务器上。
用途与适用人群
它面向希望完全掌控数据的隐私敏感用户、偏好 Markdown 和本地文件存储的开发者、构建个人 wiki 或第二大脑的知识工作者、寻找商业应用自托管替代方案的团队,以及看重简洁、速度和所有权的人。
主要能力
项目列出的特性包括:
- 完全隐私:笔记不离开你的服务器;
- 无需 CDN:应用及其共享链接在本地提供所有浏览器库,可在气隙网络中使用(见 documentation/THIRD_PARTY.md);
- 可选认证:为自托管部署提供简单密码保护;
- 零成本:无订阅、无隐藏费用;
- 快速轻量:即时搜索与导航;
- 美观主题:多主题,易于自定义;
- 可扩展:提供插件系统;
- 响应式:适用于桌面、平板和手机;
- 简单存储:文件夹中的纯 Markdown 文件;
- 数学支持:使用 LaTeX/MathJax 呈现公式;
- HTML 导出与打印:将笔记导出为独立 HTML 或打印;
- 图视图:交互式可视化相互连接的笔记;
- 绘图编辑器:应用内草图保存为笔记旁的 drawing-*.png(见 documentation/DRAWING.md);
- 收藏:为常用笔记加星以便快速访问;
- 大纲面板:通过点击跳转的目录导航标题;
- AI 助手就绪:支持 Claude、Cursor 等工具的 MCP 集成。
AI 与 MCP 集成
NoteDiscovery 内置 Model Context Protocol (MCP) 服务器,让 AI 助手直接与你的笔记交互。可为 Cursor、Claude Desktop 等 MCP 兼容工具提供一行式设置。若偏好 URL,可设置 MCP_ENABLED=true 并将客户端指向 http://your-server:8000/mcp(Streamable HTTP)。完整设置说明和可用工具见 MCP.md。若想要带捆绑 LLM 的完全本地设置,OLLAMA-STACK.md 可用一条命令启动 NoteDiscovery + Ollama + Open WebUI。
使用方式
Docker(Windows PowerShell)
运行后打开 http://localhost:8000 即可。笔记保存在 ./data/。主题、插件、语言包和默认配置值包含在镜像中。
Docker Compose
提供两个 docker-compose 文件:选项 1 为预构建镜像(最快),选项 2 为从源码构建(用于开发)。卷的详细信息见 Advanced Docker Setup。
本地运行(不使用 Docker)
需要 Python 3.8 或更高版本以及 pip。现代 Linux 发行版执行 PEP 668,阻止系统级 pip 安装,因此应使用虚拟环境;每次打开新终端运行应用前需激活虚拟环境(source venv/bin/activate)。
高级 Docker 设置
镜像包含捆绑的配置、主题、插件和语言包。若要自定义,必须:在 docker-compose 或 docker run 命令中映射卷;提供内容——文件/文件夹必须存在且包含有效内容(空内容可能导致应用崩溃)。
其他功能与文档
官方图标已可在 Dashboard Icons 上获取,用于 Homepage、Homarr、Dashy、Heimdall 等自托管仪表板。 文档包括:THEMES.md(主题自定义与创建自定义主题)、FEATURES.md(完整功能列表和键盘快捷键)、DRAWING.md(内置绘图编辑器、保存行为和 API 说明)、TAGS.md(用标签和组合过滤组织笔记)、TEMPLATES.md(用带动态占位符的可复用模板创建笔记)、MATHJAX.md(LaTeX/Math 示例与语法参考)、MERMAID.md(用 Mermaid 创建流程图、序列图等)、PLUGINS.md(插件系统与可用插件)、plugins/contrib/(可选社区插件及安装方法)、API.md(REST API 文档与示例)、MCP.md(AI 助手集成)、AUTHENTICATION.md(为实例启用密码保护)、ENVIRONMENT_VARIABLES.md(通过环境变量配置设置)、THIRD_PARTY.md(本地托管的浏览器库、许可证及更新方法)。
多语言
NoteDiscovery 通过 locales/ 中的 JSON 语言文件支持多种界面语言。在设置(齿轮图标)→ 语言中选择;列表反映已安装的语言包(捆绑文件、挂载或自行添加)。添加自己的语言参见贡献指南。Docker 用户可挂载自定义 locales 文件夹添加或覆盖翻译。提示:克隆仓库后可以挂载 documentation/ 文件夹以在应用内查看这些文档,随后在 http://localhost:8000 访问,文档将作为 file browser 中的 docs/ 文件夹出现。
提交贡献与安全注意事项
提交 pull request(尤其是重大更改)前,请阅读贡献指南、先开 issue 讨论重大功能或重要更改,并确保代码符合项目风格与理念。安全方面,NoteDiscovery 面向自托管、私人使用:不要在没有额外安全措施的情况下直接暴露到互联网;生产使用应在带 HTTPS 的反向代理(nginx、Caddy)后运行;保持本地网络或使用 VPN 远程访问;默认监听 0.0.0.0:8000(所有网络接口);默认密码保护为禁用(默认密码 admin),若暴露到网络请启用认证并更改默认密码(见 AUTHENTICATION.md),如需禁用认证可在 config.yaml 中设置 authentication.enabled: false。它适合单用户或小团队部署;多用户设置可考虑带 OAuth/SSO 的反向代理。笔记以纯文本 Markdown 文件存储在 data/ 文件夹,不向外部服务发送数据,建议定期备份。建议仅在 localhost 或专用网络运行,使用 Docker 实现隔离和更简单的安全管理,保持系统和依赖更新,审查并审计安装的插件,为 data/ 目录设置合适的文件权限。
许可证
项目采用 MIT 许可证,可自由使用、修改和分发。