把想法,
留在自己的服务器上。
V5Notes 是一套可以私有部署的 Markdown 云笔记。桌面端负责写作,管理后台负责人和权限,正文、目录、历史与文件都落在你自己的 MySQL 或 PostgreSQL 里。
Windows · macOS · Linux | Apache 2.0 | v2.0.0
云笔记很好用,
直到你想把数据拿回来。
本地 Markdown 很自由,但目录、搜索、误删和多设备会把事情变乱。V5Notes 把这两件事合成一套你能自己装、自己备份、自己改的系统。
笔记散在聊天记录、网盘和本地文件夹里
一篇笔记就是一份 Markdown,按目录归好,按标题搜索。
内容存在别人的服务器上
API、数据库、Redis 和上传文件都由你部署,备份就是拷走三个目录。
写作界面被管理功能塞满
桌面端只留目录、正文和写作工具;用户、角色、审计放在管理后台。
改乱了,或删错了一整棵目录
正文保留历史版本;删除先进回收站,保留 30 天。
适合想自己托管笔记的个人、需要给家人或小团队开通账号的人,以及希望在一套现成的用户、权限和笔记 API 上继续做产品的开发者。
打开电脑就能写,
换一台接着写。
桌面端只有一个目标:让你尽快进入正文。左侧一棵树,右侧一张纸,中间不放大按钮。
目录与笔记同屏
搜索、新建、重命名、删除都在同一棵树里完成,不用在页面之间跳。
三种模式
所见即所得、源码、预览,⌘1 / ⌘2 / ⌘3 直接切;共用同一个编辑器实例,Markdown 状态和撤销历史都还在。
专注写作
收起侧栏,编辑器占满窗口;想回来时,侧栏还在原来的位置。
大纲与查找
长文用右侧大纲定位,⌘F 在当前笔记里查找,不离开正文。
命令面板
⌘K 打开全部命令:切换模式、调整字号、导出 HTML / PDF / Markdown / 长图。
草稿不丢
断网或刷新,未保存的内容还在;切换笔记或关窗口之前会先问你。
正文下面,
是一套自己写的编辑器。
V5Notes 的写作体验来自 v5md——一套开源的所见即所得 Markdown 编辑器。它不发明私有格式:Markdown 字符串是唯一数据源,输入、粘贴和工具条命令都只改这段字符串,再重新解析、重绘。
数据就是 Markdown
拿到的不是私有 JSON 或 HTML,而是可以直接入库、走 diff、交给任何 Markdown 渲染器的字符串。
标记按需显形
平时看到的是排版结果;光标落在标题、粗体、代码块上,才露出 #、**、围栏,改完自动收回。
中文输入法友好
组合输入期间不重绘 DOM,候选框不错位,拼音上屏不丢字。
粘贴即转换
从网页、Word、飞书复制来的富文本,先转成 Markdown 再写入文档。
不锁死框架
@v5md/vue 与 @v5md/react 只是薄壳,核心是 @v5md/view 的 Editor 类,也能挂到任意 DOM。
可插拔
工具条、命令、对外 API 都能由插件提供;字号和导出是官方插件。
标题、粗体、斜体、下划线、删除线、高亮、行内代码、链接、列表、任务列表、引用、带语法高亮的代码块、表格、分割线、图片(可拖拽缩放)、KaTeX 公式、Mermaid 图表、YAML frontmatter;以及撤销重做、查找替换(正则 / 全词)、整篇源码模式、大纲跳转、表格行列编辑、导出 Markdown / HTML / PDF / 图片。
v5md 以 MIT 许可开源,可以单独用在别的项目里。
GitHub github.com/zyw/v5md | npm @v5md/vue · @v5md/react · @v5md/view | 当前 v0.0.3
删得安心,改得回去。
写作里最贵的不是打字,是「刚才那一版去哪了」。
历史版本
正文每次保存留一份快照,可以逐版预览,也可以把任意一版恢复成当前正文。
回收站
笔记和目录先进入回收站,保留 30 天;删除目录时,子目录和笔记一起进去,恢复也是一起回来。
本地草稿
刷新、断网、换一台设备,未保存的内容不会凭空消失。
写作之外的事,
交给管理后台。
管理后台和桌面端共用同一套笔记服务。写的人只管写,管的人在另一个入口。
用户与组织
用户、部门、岗位、角色、菜单、字典、参数、通知,一套系统管理里配齐。
笔记与目录
在后台查看、检索、导出、管理所有人的笔记与目录。
客户端接入
控制哪些客户端可以接入,用哪对公钥完成登录加密。
审计
在线用户、登录日志、操作日志:谁在什么时候做了什么。
系统监控
缓存、接口和运行状态,出问题先看见。
文件
上传内容跟数据库放在一起,备份时一起拷走。
一套笔记服务,同时服务
桌面端和管理后台。
客户端走 /client/notes,管理后台走 /notes、/system 和 /basics;雪花 ID 从接口到页面始终按字符串处理。
桌面客户端
Vue 3.5 · Tauri 2
API
Java 21 · Spring Boot 4.1
管理后台
Vue 3.5 · Element Plus
装在自己的机器上,
三种方式。
数据库表由 API 启动时的 Flyway 创建。选一种方式,把整套系统跑起来。
cd v5notes2 && mvn -DskipTests package
cd ../v5notes-admin2 && pnpm install && pnpm build
cd ../v5notes2/docker && cp env.example .env
docker compose up -d --build
管理后台 http://localhost:8988 | API http://localhost:8080
Docker Compose
上面四行,把 API、管理后台、MySQL 和 Redis 一起跑起来。
Jar + Nginx
已有 MySQL / Redis 时
PostgreSQL
同一个开关切方言和 Flyway 目录。
备份
- 数据库
- v5notes2/docker/mysql/data
- 缓存
- v5notes2/docker/redis/data
- 文件
- v5notes2/docker/uploadfile
第一次打开
- 用 admin / admin123 登录后台并改密码
- 新建「客户端用户」
- 在桌面端填服务器地址登录
一套能读、能改、
能自己维护的栈。
- 后端
- Java 21 / Spring Boot 4.1.2 / MyBatis-Plus / Sa-Token / Flyway / Redisson
- 前端
- Vue 3.5 / TypeScript / Vite / Element Plus / Pinia / UnoCSS
- 桌面
- Tauri 2
- 编辑器
- v5md(@v5md/vue,MIT)
登录
访问令牌只在内存,刷新令牌默认 30 天、一次性轮换;客户端不保存密码。
三语
简体中文、繁體中文、English,三端都能切;后端按 Content-Language 返回提示。
开源
Apache 2.0,三个目录可以分开改;接口、表结构和 i18n 都有明确入口。