Flatnotes 是 dullage 出品的自托管、无数据库 Markdown 笔记应用,所有笔记直接以 .md 文件存磁盘,支持全文搜索、双向链接、移动端响应式界面、多用户与密码保护。本资源包来自 dullage/flatnotes 官
本资源包含什么
完整源码:来自 GitHub
dullage/flatnotesdevelop 分支(版本 5.5.4),含server/(Python 后端)+client/(Vue 3 + Vite 前端)+package.json+pyproject.toml。Python 后端:FastAPI 风格,含 FastAPI 路由、笔记 CRUD、Markdown 渲染、token 认证、多用户与密码保护。
Vue 前端:Vue 3 + Vite + TailwindCSS + PostCSS,含编辑器、目录树、全文搜索 UI。
官方部署脚本:
Dockerfile、entrypoint.sh、healthcheck.sh、.dockerignore。官方文档:
README.md、docs/、CONTRIBUTING.md、LICENSE(MIT)。
核心能力
无数据库:所有笔记就是磁盘上的
.md文件,git/rsync/ 任何云盘直接备份。全文搜索:内置 SQLite 缓存索引(不存笔记本身,只存词项),毫秒级搜索。
双向链接:
[[wiki-style]]链接语法,obsidian兼容。移动友好:响应式界面,iOS / Android 浏览器原生体验。
多用户 + 密码保护:内置用户系统,可单用户本地用,也可多用户共享自托管。
Markdown 实时预览:支持 CommonMark + GFM(表格、任务列表、删除线)。
本资源包不含什么
编译产物(已剔除
node_modules/、__pycache__/、.venv/,构建时自动拉取)依赖锁定文件(已剔除
uv.lock、package-lock.json,构建时自动生成)GitHub CI 与 .vscode 配置(已剔除
.github/、.vscode/)
资源包大小
压缩后约 0.4 MB,解压后约 0.8 MB / 99 个文件。
启动运行(Docker 一键启动)
docker build -t flatnotes . docker run -d -p 8080:8080 -v /your/notes/path:/data flatnotes # 浏览器打开 http://localhost:8080
启动运行(本地开发)
cd flatnotes-develop # 1. 后端:装 uv (https://astral.sh/uv),装 Python 3.12 uv sync uv run server # 2. 前端:另开终端 cd client npm install npm run dev
安装编译依赖
Python 3.12+(由
.python-version锁定)uv(推荐):
pip install uvNode.js ≥ 18(前端构建用)
Docker(可选,部署推荐)
典型使用场景
极简自托管笔记:不想被 Notion / Obsidian Cloud 绑定的隐私敏感用户。
纯文本工作流:所有笔记就是
.md,git 版本管理 + Obsidian 双向兼容。NAS / HomeLab 部署:用 Docker Compose 跑在群晖 / unRAID / 树莓派。
替代 Joplin / Obsidian 本地模式:纯网页访问,无需客户端安装。
适用人群
重视数据主权、希望笔记以纯
.md文件形式存储的用户。需要轻量部署、不想配置数据库 / 复杂后端的极简主义者。
Obsidian 用户希望云端 / 局域网多端访问同一份笔记。
做技术选型:评估 Flatnotes vs Joplin Server vs Trilium Notes。
质量承诺
本资源包内源码全部来自 dullage/flatnotes 官方 GitHub 仓库(MIT 协议),版本 5.5.4,经本地解压验证:含完整 Python FastAPI 后端、Vue 3 前端、Dockerfile + entrypoint 部署脚本、官方 README 文档。用户解压后 Docker build 即可一键启动。
版权声明
本站文字内容为原创编撰或者网络搜集整理,受著作权保护,禁止未经授权批量采集转载。
本站分享的各类源码、AI大模型、程序工具仅作技术科普部署教程使用,不直接存储原版版权文件。
所有第三方资源的知识产权、开源协议、商用授权规则均归原开发团队所有。
使用者下载、部署、二次开发必须严格遵守国家著作权相关法律法规,以及资源官方许可协议,如需商业运营,务必向版权方申请合法授权。
因用户私自商用、违规分发资源造成的法律纠纷与经济损失,全部由使用者自行承担,本站不承担连带责任。