Xnote:自己部署的个人知识库和工具箱
Xnote 是用 Python 编写、GPL-3.0 的自托管笔记系统,笔记、文件和小工具装进同一个网页,数据留在自己机器上,2016 年至今仍在维护。
项目资料
GitHub Ecosystem- 许可证
- GPL-3.0
- 主语言
- Python
- 星标
- 170
- 核查时间
- 2026-09-30
以上快照资料以核查当日为准,可能随版本或运营策略变化。
把笔记放进云服务,随处可读是省心了,可停服、涨价、导出限制都由平台说了算。Xnote 把这份数据收回到自己机器上:一个用 Python 编写的个人笔记系统,把笔记、文件管理和小工具箱装进同一个网页,Windows、Mac、Linux 都能跑,本地或云服务器皆可。项目从 2016 年 12 月写到现在,最近一次提交是 2026 年 9 月 30 日,GitHub 上 170 星(截至同日)——星数不高,胜在一直有人维护。它最值得看的机制是插件:一个插件可以监听笔记、提醒、文件、时间、系统五类消息,再用 category 属性把自己的入口挂进笔记、文件等功能页面。公众号「源码部落」在 2026 年 10 月 1 日的文章里推荐了它,标题大意就是让笔记再也不怕被“云跑路”。

核心功能
Xnote 的能力分三层:笔记、文件、工具。
- 多格式笔记:markdown、表格、相册、列表四类内容都能建,靠笔记本、标签、置顶、关联笔记组织;详情页【更多】下拉里的分享,可以把单篇交给未登录用户查看,登录用户则能在笔记下评论。

- 修改历史:备份功能保存笔记的每次修改,写废了能翻回旧版本。
- 搜索与统计:搜索覆盖整个知识库,也能只在项目内找;系统还记录最近和常用的访问统计。
- 文件管理:列表、网格两种视图,内置代码编辑器、文本阅读器、二进制查看器和内容搜索;下载支持断点续传,README 写明测试过 1 GB 的文件上传。
- 工具箱:pydoc、文本对比、密码生成、base64 与 md5 编解码、进制转换、条形码和二维码生成、图像合并拆分与灰度转换,都是随装的网页小工具。
- 插件机制:想加的功能没有现成的,可以照 docs/plugins.md 从模板写一个,监听消息、挂入口的口子都留好了。
应用列表页能看出这个系统装了多少东西——笔记、待办、随手记之外,还有文件、定时任务、插件管理、Shell 和数据库入口。

典型使用场景
Xnote 最自然的落点是家里那台常年开机的机器。
- 在旧电脑、NAS 或树莓派上自建一套:markdown 记知识,相册存照片,清单管待办,数据不出门。
- 开发者的随身工作台:代码片段和接口文档用 markdown 归档,随手传的日志丢给文本阅读器或二进制查看器,文本对比、编解码这些小工具就在同一个后台。
- 两三个人共用一台机器:支持小规模多用户,每人一个账号各管各的目录;README 同时提醒,面向多用户的商业场景请谨慎。
快速上手
Xnote 在物理机上的最小安装(SQLite 版)只要三步,先装依赖再启动:
python3 -m pip install -r config/requirements.min.txt
cp config/boot/boot.min.properties boot.local.properties
python3 app.py --config boot.local.properties
启动后打开 http://localhost:1234/ 就能使用,初始管理员账号 admin,默认密码 123456,登录后第一件事是把它换掉。Windows 装依赖用 config/requirements.win.txt,Mac 与 Linux 用 config/requirements.txt;也有 docker-compose 路径,建好 data 目录、复制 boot.default.properties 后执行 docker-compose up -d。
小结
Xnote 适合想把数据握在自己手里、愿意花一个下午折腾部署的人:一台常开的电脑加 Python 3.6 以上环境,换回笔记、文件、工具三合一的私人后台。不适合的也很明确——README 写明不会投入大规模多用户和多用户协作,找团队协作平台的直接略过即可。
几个要诚实说的点:GPL-3.0 对二次分发有传染性,拿它改造产品要履行开源义务;170 星(截至 2026-09-30)的个人项目没有公司背书,出问题主要靠仓库 issue 和 docs/ 目录的中文文档,界面走实用路线,谈不上精致;多用户商业场景官方自己都说要谨慎,默认 SQLite 也是单机规模,好在 db_driver 可以切到 MySQL 或 LevelDB。备份分两层:应用内只管单篇的修改历史,整个实例的 db/ 和 files/ 目录要自己定期备——db_driver 换成 MySQL 之后,同站收录过的自托管备份工具 Databasus 就能接管定时备份和恢复验证。项目在 gitee 有同名仓库,PyPI 上的 xnote-web 包面向想模块化二次开发的开发者。