flatnotes

自托管无数据库笔记应用

⭐ 3.1k Vue

解决什么问题

传统的笔记应用通常依赖数据库和私有格式,导致笔记数据被锁定在特定平台。flatnotes 通过将笔记存储为纯 Markdown 文件,消除了数据库依赖和格式锁定,让用户完全控制自己的笔记数据。

最适合

适合希望自主托管笔记、避免供应商锁定、偏好纯文本 Markdown 格式、且需要轻量级搜索和标签功能的个人用户或小团队。

不适合

不适合需要富媒体嵌入(如图片、表格、画布)、复杂笔记层级(文件夹/笔记本)、协作编辑或多人实时同步的企业级场景。

快速上手

docker run -d 
-e “PUID=1000” 
-e “PGID=1000” 
-e “FLATNOTES_AUTH_TYPE=password” 
-e “FLATNOTES_USERNAME=user” 
-e ‘FLATNOTES_PASSWORD=changeMe!’ 
-e “FLATNOTES_SECRET_KEY=aLongRandomSeriesOfCharacters” 
-v ”$(pwd)/data:/data” 
-p “8080:8080” 
dullage/flatnotes:latest

项目详情

flatnotes 是一款专为自托管设计的笔记 Web 应用,其核心特点是无数据库依赖:所有笔记都存储为纯 Markdown 文件,用户可随时将文件迁移到其他工具,不受格式锁定。应用基于 Vue 构建,后端使用 Python(Whoosh 搜索引擎),前端集成 TOAST UI Markdown 编辑器。

主要功能包括:

  • 移动端自适应的 Web 界面
  • 原始 Markdown 与所见即所得(WYSIWYG)编辑器模式切换
  • 高级全文搜索(支持键盘快捷键 ” / ” 快速调出)
  • 笔记标签系统
  • 自定义首页布局
  • WikiLink 支持([[笔记名称]] 快速链接)
  • 亮色/暗色主题切换
  • 多种身份验证:无验证、只读模式、用户名/密码、两步验证(2FA)
  • 完整的 RESTful API

缓存机制只对搜索索引增量同步,即便在 flatnotes 运行时,你也可以直接在文件系统中增加、编辑或删除 Markdown 文件,搜索索引会自动适应。

部署方式推荐使用 Docker,提供单行命令和 Docker Compose 示例,环境变量可配置用户 ID、组 ID、认证方式、密钥等。项目 GitHub 获得 3,131+ 星标,采用宽松的 MIT 许可证。