markdown文档管理

新话题,是否有哪些轻量级的类似 mindoc、google doc、wikijs 等等,可以写 markdown,开源、能 docker 方式私有化部署,简单易维护的 markdown 文档管理软件。请推荐不少于 10 款,并分别给出其优缺点。

验证完成,信息可靠。下面是结论 + 一张选型矩阵图 + 13 款软件的详细对比。

先给结论:这个需求(Markdown 原生、开源、Docker 私有化、轻量易维护)目前最优解集中在三类:协作 Wiki 服务(Docmost / HedgeDoc / Outline)、自托管笔记(思源 / Silverbullet / Trilium)、纯 Markdown 静态文档站(MkDocs / VitePress)。下面这张矩阵按「部署复杂度 × Markdown 原生度/协作能力」帮你快速定位:

image

<html style="margin:0;padding:0;">
<title>Markdown 文档管理软件选型矩阵</title>
<div style="width:100%;box-sizing:border-box;max-width:960px;background:#fbfcfe;border:1px solid #e3e8ef;border-radius:12px;padding:16px 18px 14px;font-family:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;color:#1f2937;">
  <div style="font-size:16px;font-weight:700;margin-bottom:2px;">Markdown 文档管理软件选型矩阵(13 款开源方案)</div>
  <div style="display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:#374151;margin-bottom:10px;">
    <span><span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#2f6fed;margin-right:5px;"></span>Wiki/协作服务</span>
    <span><span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#16a34a;margin-right:5px;"></span>笔记/知识库</span>
    <span><span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#ea580c;margin-right:5px;"></span>静态文档站</span>
  </div>
  <div style="position:relative;height:540px;border-radius:8px;background:linear-gradient(180deg,#f0f7ff 0%,#f0f7ff 30%,#ffffff 30%,#ffffff 100%);">
    <div style="position:absolute;left:4%;right:4%;bottom:5%;border-top:1.5px dashed #9aa5b1;"></div>
    <div style="position:absolute;left:4%;top:4%;bottom:7%;border-left:1.5px dashed #9aa5b1;"></div>
    <div style="position:absolute;left:4%;top:2%;font-size:13px;font-weight:600;color:#475569;">↑ Markdown 原生度 / 协作能力</div>
    <div style="position:absolute;right:3%;bottom:2%;font-size:13px;font-weight:600;color:#475569;">部署 / 维护复杂度 →</div>
    <div style="position:absolute;left:34%;top:4.5%;font-size:12px;color:#1d4ed8;font-weight:600;">实时协作 · 原生 MD 首选区</div>
    <div style="position:absolute;left:4%;top:70%;font-size:12px;color:#15803d;font-weight:600;">部署极简 / 单人自托管区</div>

    <div style="position:absolute;left:23.2%;top:16.6%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#2f6fed;margin:0 auto;box-shadow:0 0 0 3px rgba(47,111,237,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">HedgeDoc</div></div>
    <div style="position:absolute;left:49%;top:20.8%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#2f6fed;margin:0 auto;box-shadow:0 0 0 3px rgba(47,111,237,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">Docmost</div></div>
    <div style="position:absolute;left:70.5%;top:25%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#2f6fed;margin:0 auto;box-shadow:0 0 0 3px rgba(47,111,237,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">Outline</div></div>
    <div style="position:absolute;left:57.6%;top:33.4%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#2f6fed;margin:0 auto;box-shadow:0 0 0 3px rgba(47,111,237,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">Wiki.js</div></div>
    <div style="position:absolute;left:36.1%;top:58.6%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#2f6fed;margin:0 auto;box-shadow:0 0 0 3px rgba(47,111,237,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">BookStack</div></div>

    <div style="position:absolute;left:49%;top:37.6%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#16a34a;margin:0 auto;box-shadow:0 0 0 3px rgba(22,163,74,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">思源笔记</div></div>
    <div style="position:absolute;left:31.8%;top:46%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#16a34a;margin:0 auto;box-shadow:0 0 0 3px rgba(22,163,74,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">Trilium</div></div>
    <div style="position:absolute;left:18.9%;top:41.8%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#16a34a;margin:0 auto;box-shadow:0 0 0 3px rgba(22,163,74,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">Silverbullet</div></div>
    <div style="position:absolute;left:66.2%;top:37.6%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#16a34a;margin:0 auto;box-shadow:0 0 0 3px rgba(22,163,74,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">AFFiNE</div></div>
    <div style="position:absolute;left:70.5%;top:50.2%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#16a34a;margin:0 auto;box-shadow:0 0 0 3px rgba(22,163,74,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">AppFlowy</div></div>
    <div style="position:absolute;left:14.6%;top:62.8%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#16a34a;margin:0 auto;box-shadow:0 0 0 3px rgba(22,163,74,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">Memos</div></div>

    <div style="position:absolute;left:27.5%;top:61.1%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#ea580c;margin:0 auto;box-shadow:0 0 0 3px rgba(234,88,12,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">MkDocs</div></div>
    <div style="position:absolute;left:44.7%;top:69.5%;transform:translate(-50%,-50%);text-align:center;"><div style="width:12px;height:12px;border-radius:50%;background:#ea580c;margin:0 auto;box-shadow:0 0 0 3px rgba(234,88,12,.18);"></div><div style="font-size:13px;font-weight:600;margin-top:3px;white-space:nowrap;">VitePress</div></div>
  </div>
  <div style="font-size:12px;color:#6b7280;margin-top:8px;">定位说明:越靠左上 = 协作与 Markdown 体验越好;越靠左下 = 部署越轻、越好维护。横轴代表部署所需服务与日常维护成本。</div>
</div>

一、协作 Wiki / 文档服务类(对标 Wiki.js、Google Docs)

1. Wiki.js(你已熟悉的基准款)

  • 优点:功能最全面——页面树、细粒度权限、评论、多语言、图库齐全,界面现代,Docker 一键部署,Markdown 原生编辑,免费开源(AGPL)。
  • 缺点:需 Node.js + PostgreSQL 两个服务,不算极轻;页面存在数据库里,不方便用 Git 管理;没有实时多人协同编辑;近年更新节奏偏慢。

2. Docmost(当前最值得关注的新星)

  • 优点:Confluence 风格、CRDT 实时多人协作,2026 年仍高频迭代,Docker Compose 一条命令起(Postgres+Redis),官方称 1GB 内存即可跑,支持 Markdown,代码完全开源 。
  • 缺点:还是 0.x 版本,插件与生态少,中文资料稀缺,部分高级功能(如 SSO)在付费版。

3. Outline(体验最像 Notion)

  • 优点:界面与编辑体验最现代,搜索极快,40k+ GitHub stars、社区活跃,实时协作,Markdown 快捷键/粘贴体验好,自托管免费 。
  • 缺点:需要 Postgres + Redis + S3/MinIO 三个依赖,维护成本是同类里最高的;登录强制走 OIDC/Slack/Google(没有内置账号体系);必须配 HTTPS;采用 BSL 许可(非纯 OSI 开源,商用 SaaS 受限)。

4. HedgeDoc(最轻的实时协作 MD)

  • 优点:Markdown 实时协作的标杆(HackMD 开源同源),数学公式、图表、幻灯片模式都支持,单容器即可部署,极其轻量 。
  • 缺点:1.x 已进入维护模式,社区主力在重写 2.0,功能更新基本冻结;没有目录树/层级结构,笔记一多就乱;权限与搜索弱——适合临时协作笔记,不适合当正式知识库 。

5. BookStack

  • 优点:"书-章-页"三级结构清晰,权限模型完善,10 年+ 稳定维护,Docker 部署简单(PHP+MySQL 单栈)。
  • 缺点:Markdown 不是原生——默认所见即所得编辑器,MD 只是可切换的可选模式;界面传统;无实时协作。

二、笔记 / 知识库类(自托管 Notion 系)

6. 思源笔记(SiYuan)

  • 优点:国产、中文体验最好,块级 Markdown 所见即所得(写的就是 MD),双链、导出、闪卡功能强,Docker 可私有化部署,数据全在本地。
  • 缺点:内核较重(Java 生态),低配机器会吃力;多人协作弱;自托管 Web 端功能少于桌面端。

7. Trilium Notes

  • 优点:无限层级树,脚本/属性系统极强,支持端到端加密,单容器 Docker,资源占用低。
  • 缺点:纯单人工具(无协作);界面偏技术向;移动端体验一般;社区规模小。

8. Silverbullet

  • 优点:每个页面就是磁盘上的 .md 文件,极致轻量、单容器,支持 PWA 离线、插件、模板,极客友好。
  • 缺点:无协作、无权限模型、无数据库,功能简单;社区小;不适合多人团队。

9. AFFiNE

  • 优点:Notion 文档 + Miro 白板一体,本地优先、隐私友好,开源且活跃,支持 Markdown 导入导出。
  • 缺点:服务端自托管方案较新、架构略复杂;多人实时协作不如 Notion/Outline 完善。

10. AppFlowy

  • 优点:Rust 编写性能好,本地优先、离线可用,开源活跃。
  • 缺点:自托管云服务比较新、配置中等复杂;Markdown 以导入导出为主,编辑器不是纯 MD 流式。

11. Memos(备选:极轻碎片笔记)

  • 优点:单二进制/单容器,内存占用极低,微博式快速记录,开放 API 好扩展。
  • 缺点:定位是碎片笔记而非文档管理,无权限/协作体系,不适合正式知识库。

三、静态文档类(纯 Markdown 文件 + Git)

12. MkDocs(+ Material 主题)

  • 优点:源码就是 .md 文件,Git 版本管理天然,构建出静态站极快,Material 主题美观且功能丰富,Docker 构建简单,零数据库、零后台、近乎零维护。
  • 缺点:没有在线编辑器(要改文件走提交流程);无用户/权限系统;协作靠 Git,非技术人员上手门槛高。

13. VitePress

  • 优点:Vue 生态、加载极快,MD 即源码,主题定制灵活,Docker 部署简单。
  • 缺点:与 MkDocs 相同的本质——无在线编辑、无账号体系,本质是"文档站"而非"文档管理软件"。

快速选型建议:

  • 要 类 Google Docs 的实时协作 + 原生 MD:单人或小团队选 HedgeDoc(最轻);正式知识库选 Docmost(平衡最好);体验至上且依赖无所谓选 Outline。
  • 要 类 Wiki.js 的成熟知识库:继续用 Wiki.js,或选结构更清晰的 BookStack(能接受非原生 MD 的话)。
  • 要 极简单人自托管、几乎零维护:Silverbullet / Trilium / Memos。
  • 要 纯 MD + Git 的团队文档站:MkDocs 或 VitePress。
  • 中文优先:思源笔记。

需要我针对其中某一款给出完整的 Docker Compose 部署文件,或做两两深度对比吗?


MkDocs、VitePress、HedgeDoc

重点对比MkDocs、VitePress、HedgeDoc的各方面优缺点,需要文档保存原生md、开源易管理、数据安全等

三款的事实已核实(许可证、存储方式、备份与升级路径)。先给核心结论,再上对比矩阵。

核心结论:这三款正好代表两条完全不同的路线——

  • MkDocs / VitePress(静态站):文档就是磁盘上的原生 .md 文件,Git 管理、拷文件即备份,几乎零维护,但没有在线编辑和协作;
  • HedgeDoc(协作服务):在线实时协作编辑体验最好,但文档存在数据库里而非原生 md 文件,且 1.x→2.x 升级需重建数据库。

选型一句话:要"原生 md + 数据资产化"选 MkDocs/VitePress;要"在线协作"选 HedgeDoc。对比如下:

<html style="margin:0;padding:0;">
<title>MkDocs vs VitePress vs HedgeDoc 对比矩阵</title>
<div style="width:100%;box-sizing:border-box;max-width:980px;background:#fbfcfe;border:1px solid #e3e8ef;border-radius:12px;padding:16px 18px 14px;font-family:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;color:#1f2937;">
  <div style="font-size:16px;font-weight:700;margin-bottom:4px;">MkDocs · VitePress · HedgeDoc 逐维度对比</div>
  <div style="font-size:13px;color:#6b7280;margin-bottom:12px;"><span style="margin-right:14px;"><span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#16a34a;margin-right:4px;"></span>完整支持</span><span style="margin-right:14px;"><span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#d97706;margin-right:4px;"></span>部分/有代价</span><span style="margin-right:14px;"><span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#9ca3af;margin-right:4px;"></span>缺失/弱</span></div>
  <div style="overflow-x:auto;">
  <table style="width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.5;">
    <tr style="background:#eef2f7;">
      <th style="text-align:left;padding:8px 10px;border:1px solid #dde3ea;width:20%;">维度</th>
      <th style="text-align:left;padding:8px 10px;border:1px solid #dde3ea;width:26.5%;">MkDocs<span style="display:block;font-weight:400;color:#6b7280;font-size:12px;">Python · BSD-2 · 静态站</span></th>
      <th style="text-align:left;padding:8px 10px;border:1px solid #dde3ea;width:26.5%;">VitePress<span style="display:block;font-weight:400;color:#6b7280;font-size:12px;">Vue/Node · MIT · 静态站</span></th>
      <th style="text-align:left;padding:8px 10px;border:1px solid #dde3ea;width:27%;">HedgeDoc<span style="display:block;font-weight:400;color:#6b7280;font-size:12px;">Node · AGPL-3.0 · 协作服务</span></th>
    </tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">源文档为原生 .md 文件</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 是,md 即源文件</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 是,md 即源文件</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 否,存数据库</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">开源许可</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> BSD-2-Clause</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> MIT</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> AGPL-3.0</td></tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">在线编写/编辑</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 无,本地编辑器</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 无,本地编辑器</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 浏览器即写即存</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">实时多人协作</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 无(靠 Git 协作)</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 无(靠 Git 协作)</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 多人实时协同</td></tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">部署与日常维护</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 极低:静态文件</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 极低:静态文件</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> 中:Node 服务+数据库</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">数据备份方式</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 复制文件夹/Git</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 复制文件夹/Git</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> pg_dump 数据库</td></tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">版本历史</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> Git 完整可回溯</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> Git 完整可回溯</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> 数据库内历史</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">全文搜索</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 内置 lunr 客户端</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> minisearch 本地</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 弱,无全文索引</td></tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">账号/权限体系</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 无内置</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 无内置</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 账号+LDAP/OAuth2</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">升级/迁移风险</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 极低,版本无感</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 极低,版本无感</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 1.x→2.x 无迁移路径</td></tr>
  </table>
  </div>
  <div style="font-size:12px;color:#6b7280;margin-top:10px;">注:HedgeDoc 2.x 为当前主力开发版本(仍处 alpha/早期,1.x→2.x 无迁移路径,官方建议分开实例);HedgeDoc 1.x 处于维护模式。事实依据见下方引用。</div>
</div>

然后正文展开三款各自的优缺点。每款:优点(按用户重点维度:原生md、开源、易管理、数据安全)、缺点。

MkDocs:
优点:

  • 原生 md:源文档即 .md 文件,可用任何编辑器/IDE 写,文件即资产
  • 开源:BSD-2-Clause(宽松,可商用闭源使用),Material 主题 MIT
  • 易管理:构建出静态 HTML,丢任何静态托管/nginx/Docker 即可,无数据库无后台,日常维护≈0
  • 数据安全:无服务端动态代码→攻击面极小;备份=复制文件夹/推 Git;Git 完整版本历史可回溯
  • 搜索:内置 lunr.js 客户端全文搜索,可离线,隐私合规
  • 生态:插件/主题丰富(blog、tags、minify、privacy 等),Python 门槛低
    缺点:
  • 无在线编辑:改文档要本地编辑+重新构建,非技术成员难以参与
  • 无用户/权限体系:要么公开,要么套 Basic Auth
  • 无实时协作:多人协作靠 Git 提交流程
  • Python 环境依赖(构建时)

VitePress:
优点:

  • 原生 md:文件即路由,每个 .md 编译成 .html
  • 开源:MIT,最宽松
  • 易管理:静态站、构建快(Vite)、Docker/任意托管
  • 数据安全:同 MkDocs(文件+Git)
  • 搜索:内置 minisearch 本地模糊全文搜索(也可接 Algolia)
  • 定制强:Vue 组件可嵌入 md,前端团队可深度定制;官方中文文档完善
    缺点:
  • 无在线编辑、无协作(同 MkDocs)
  • 无权限体系
  • Node 生态、配置是 TS/JS,对非前端有门槛
  • 生态比 MkDocs 年轻,部分功能(多语言、高级插件)要自己配

HedgeDoc:
优点:

  • 在线协作:浏览器实时多人协同编辑 Markdown(类 Google Docs 体验)
  • 开源:AGPL-3.0
  • 部署轻:单容器+SQLite 可跑(生产推荐 Postgres),512MB-1GB 内存即可
  • 数据安全可控:自托管数据不出服务器;支持 LDAP/OAuth2/本地账号;官方提供 pg_dump 备份命令;有版本历史(存 DB)
    缺点:
  • 非原生 md 文件:笔记存在数据库里,无法直接用编辑器打开/无法单文件带走(需导出)
  • 数据安全风险点:备份依赖数据库备份;1.x→2.x 无迁移路径,2.x alpha 升级可能要清库
  • 易管理打折:Node 版本要求(1.12 需 Node 20.17+)、数据库维护、TLS 配置
  • 无目录树/层级管理(1.x),笔记多难组织
  • 全文搜索弱
  • 维护状态:1.x 维护模式、2.x 尚未稳定

选型建议(简短):

  • 团队都是开发/文档人员、要 Git 工作流 → MkDocs(Python 栈)或 VitePress(前端栈)
  • 需要非技术成员在线编辑 → HedgeDoc(但要接受数据库存储)
  • 数据安全最优先 → MkDocs/VitePress(文件资产化)
  • 折中:HedgeDoc + 定期导出 md 到 Git 仓库

引用标签:

好,写最终回复。长度控制:详细但精炼。## 一、MkDocs(Python · BSD-2-Clause · 静态文档站)

优点(正好命中你的四个关注点)

  • 原生 md 保存:源文档就是磁盘上的 .md 文件,用任何编辑器都能写,文档即资产,可直接迁移到任何平台
  • 开源:BSD-2-Clause 宽松许可,可自由商用、闭源集成;Material 主题同为开源(MIT)
  • 极简易管理:构建一次产出纯静态 HTML,丢给 nginx / 任意静态托管 / Docker 即可,无数据库、无后台进程、无登录体系,日常维护趋近于零
  • 数据安全:无服务端动态代码 → 攻击面极小;备份 = 复制文件夹或推 Git;版本历史由 Git 完整记录、可精确回溯
  • 搜索达标:内置 lunr.js 客户端全文搜索,数据不出浏览器,隐私合规

缺点

  • 无在线编辑:改文档 = 本地编辑 + 重新构建,非技术成员参与门槛高
  • 无账号/权限体系:要么公开,要么自己套一层 Basic Auth
  • 无实时协作:多人协作只能走 Git 提交流程
  • 构建环境依赖 Python;生态虽丰富(Material 主题插件很多),但高级定制要写 Python

二、VitePress(Vue/Node · MIT · 静态文档站)

优点

  • 原生 md 保存:文件即路由,每个 .md 编译为对应 .html,源文件完全独立可迁移
  • 开源:MIT 许可,比 MkDocs 更宽松,无任何使用限制
  • 易管理与数据安全:与 MkDocs 同属静态站——无数据库、攻击面小、文件+Git 即备份即版本历史
  • 搜索:内置 minisearch 浏览器端模糊全文搜索,可选接 Algolia 云搜索
  • 定制能力最强:可在 Markdown 里直接嵌入 Vue 组件,做交互式文档/组件文档是它独有优势;构建快(Vite)、官方中文文档完善

缺点

  • 与 MkDocs 相同的三个短板:无在线编辑、无实时协作、无账号权限,本质是"文档站"而非"文档管理软件"
  • 门槛更高:配置是 TypeScript/JS,生态比 MkDocs 年轻,多语言、高级插件常需自己折腾

三、HedgeDoc(Node · AGPL-3.0 · 在线协作服务)

优点

  • 在线实时协作:浏览器即写即存,多人实时协同编辑 Markdown,体验最接近 Google Docs——这是静态站给不了的
  • 开源:AGPL-3.0(自托管使用完全免费,注意对外提供网络服务需开源衍生代码)
  • 部署轻:单容器可跑,SQLite 起步,生产推荐 PostgreSQL;512MB~1GB 内存即可
  • 数据可控:支持本地账号 + LDAP/OAuth2 登录,官方提供 pg_dump 一键备份命令,版本历史存在库内

缺点(注意,两条与你的需求直接冲突)

  • ⚠️ 不是原生 md 文件:所有笔记存储在数据库中,无法用本地编辑器直接打开,单篇带走要靠导出——"文档即文件"这条路走不通
  • ⚠️ 数据迁移风险:1.x 已进入维护模式;2.x 是当前主力版本但仍在早期/alpha,1.x→2.x 官方明确没有迁移路径,升级可能要重建数据库——长期数据安全存疑
  • 易管理打折:需要维护 Node 服务 + 数据库 + TLS,且 1.12 起要求 Node 20.17+
  • 无目录树/层级管理(1.x),笔记一多难以组织;全文搜索弱

三款怎么选(总结)

你的首要诉求 推荐 理由
原生 md 文件 + 数据资产化 + 几乎零维护 MkDocs 或 VitePress 文件即资产,Git 即历史,无服务可被攻破
需要非技术成员在线协作编辑 HedgeDoc 唯一的实时协作选项,但要接受数据库存储与升级风险
团队是前端/要深度定制 VitePress Vue 组件嵌入是独有优势
团队通用/文档为主/中文 MkDocs + Material 生态最成熟、门槛最低
两全方案 HedgeDoc + 定时导出 md 进 Git 在线编辑的便利 + 文件化的数据安全,但需自行搭自动化

如果让我给一个默认答案:纯技术/文档团队优先 MkDocs(Material 主题);只有明确需要"在线多人编辑"时再上 HedgeDoc,并且务必把"定期导出 md 到 Git"纳入日常维护,对冲它的数据库存储和升级风险。

需要我给出其中某一套的完整 Docker Compose 配置(含构建、备份、HTTPS)吗?


mkdoc、mindoc、PlainDoc对比

mkdoc 和 mindoc (https://github.com/mindoc-org/ https://demo.mindoc.cn/docs/mindochelp ) 、PlainDoc(https://www.iminho.me/) 三者的对比

三款信息已核实完毕(MinDoc:7k stars、Apache-2.0、主仓库 2024-07 后更新放缓;PlainDoc:iminho 官网 2026 年仍更新,Go+Gin+React)。先给结论,再上对比矩阵。

先说清三者的关系:MkDocs 是"静态文档站"路线(md 文件即资产);而 MinDoc 和 PlainDoc 是同一作者团队(iminho / lifei6671)的两代"在线文档管理系统"——PlainDoc 可以理解为 MinDoc 的下一代重构(技术栈升级 + 权限/审计/附件安全全面加强)。

image

<html style="margin:0;padding:0;">
<title>MkDocs vs MinDoc vs PlainDoc 对比矩阵</title>
<div style="width:100%;box-sizing:border-box;max-width:1020px;background:#fbfcfe;border:1px solid #e3e8ef;border-radius:12px;padding:16px 18px 14px;font-family:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;color:#1f2937;">
  <div style="font-size:16px;font-weight:700;margin-bottom:4px;">MkDocs · MinDoc · PlainDoc 逐维度对比</div>
  <div style="font-size:13px;color:#6b7280;margin-bottom:12px;"><span style="margin-right:14px;"><span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#16a34a;margin-right:4px;"></span>完整/优秀</span><span style="margin-right:14px;"><span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#d97706;margin-right:4px;"></span>部分/有代价</span><span style="margin-right:14px;"><span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:#9ca3af;margin-right:4px;"></span>缺失/待确认</span></div>
  <div style="overflow-x:auto;">
  <table style="width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.5;">
    <tr style="background:#eef2f7;">
      <th style="text-align:left;padding:8px 10px;border:1px solid #dde3ea;width:19%;">维度</th>
      <th style="text-align:left;padding:8px 10px;border:1px solid #dde3ea;width:27%;">MkDocs<span style="display:block;font-weight:400;color:#6b7280;font-size:12px;">Python · 静态文档站</span></th>
      <th style="text-align:left;padding:8px 10px;border:1px solid #dde3ea;width:27%;">MinDoc<span style="display:block;font-weight:400;color:#6b7280;font-size:12px;">Go(Beego) · 在线文档系统</span></th>
      <th style="text-align:left;padding:8px 10px;border:1px solid #dde3ea;width:27%;">PlainDoc<span style="display:block;font-weight:400;color:#6b7280;font-size:12px;">Go(Gin)+React · 新一代</span></th>
    </tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">源文档为原生 .md 文件</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 是,md 即源文件</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 否,存数据库</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 否,存数据库</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">开源许可</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> BSD-2-Clause</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> Apache-2.0</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> 官网未披露</td></tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">社区与维护状态</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 庞大活跃,持续迭代</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> 7k stars,主仓库更新放缓</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 官网 2026-03 仍更新</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">在线编辑</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 无,本地编辑器</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> MD+HTML 双编辑器</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> CodeMirror MD 编辑器</td></tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">实时多人协作</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 无(靠 Git)</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> 版本历史+评论</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> 冲突检测+修订;OnlyOffice 协作文档</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">权限/账号体系</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#9ca3af;"></span> 无内置</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 角色+项目级+Token 加密</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> owner/collaborator/reader+审计</td></tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">数据安全与备份</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 文件+Git,攻击面最小</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> DB 备份+项目加密</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 附件鉴权+审计+风控最强</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">部署与日常维护</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 极低:静态文件</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 低:单二进制+DB</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 低:单容器 Compose</td></tr>
    <tr><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">全文搜索</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 内置 lunr 客户端</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 内容搜索高亮</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> 有检索能力,细节未详</td></tr>
    <tr style="background:#f7f9fb;"><td style="padding:8px 10px;border:1px solid #e5e9ee;font-weight:600;">文档导出</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> 静态 HTML 站</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#16a34a;"></span> PDF/Word/Markdown</td><td style="padding:8px 10px;border:1px solid #e5e9ee;"><span style="display:inline-block;width:9px;height:9px;border-radius:50%;background:#d97706;"></span> 官网未详述</td></tr>
  </table>
  </div>
  <div style="font-size:12px;color:#6b7280;margin-top:10px;">注:MinDoc 主仓库(mindoc-org/mindoc)最后更新约 2024-07,但官方文档站(demo.mindoc.cn)2026 年仍有维护痕迹;PlainDoc 开源仓库与许可公开信息有限,以下标"待确认"处请以官方发布为准。</div>
</div>

一、MkDocs —— 静态站路线的代表

优点

  • 原生 md 保存:源文档即 .md 文件,文件即资产,可 Git 管理、可任意迁移
  • 开源且许可宽松:BSD-2-Clause,商用闭源无限制
  • 极简易维护:构建出静态 HTML 后几乎零运维,无数据库、无后台进程
  • 数据安全:攻击面最小,备份 = 复制文件夹/推 Git,版本历史完整可回溯
  • 搜索与生态成熟:内置 lunr 客户端搜索,Material 主题插件丰富

缺点

  • 无在线编辑、无实时协作、无账号权限——非技术人员无法参与写作
  • 是"文档站"而非"文档管理软件",多人协作只能靠 Git 流程

二、MinDoc —— 老牌国产在线文档系统

优点

  • 在线编辑:Markdown + HTML 双编辑器(shturl.cc / wangEditor),浏览器即写即存
  • 功能完整:项目/用户/角色权限、项目加密(Token 访问)、文档历史版本、评论、多级导航、mermaid 图表、导出 PDF/Word/Markdown
  • 部署简单:Go 单二进制,Docker 官方镜像,支持 SQLite(默认)/MySQL/PostgreSQL
  • 开源:Apache-2.0,7k+ stars,国产中文文档完善

缺点

  • 主仓库更新放缓:mindoc-org/mindoc 最后实质更新约在 2024 年年中,功能迭代基本冻结(官方文档站仍在维护)
  • 文档存数据库,不是原生 md 文件,迁移和备份依赖数据库
  • 无实时多人协同编辑;界面偏"传统后台"风格

三、PlainDoc —— MinDoc 作者团队的新一代

优点

  • 工程架构更新:Go(Gin+GORM) + React(Vite+CodeMirror) + 双 SSR(首页/阅读页),性能与 SEO 兼顾
  • 治理与安全最强:owner/collaborator/reader 权限模型 + 可见性控制;附件公开直链/私有签名/Token 下载鉴权;登录验证码分级、临时封禁、高风险操作令牌、审计日志、数据清理策略
  • 多数据库:SQLite / MySQL / PostgreSQL 随意切换;单容器可跑,Docker Compose 开箱即用
  • 协作增强:文档版本冲突检测 + 修订记录,支持 OnlyOffice 做 Word/Excel 在线协作
  • 持续更新:官网 2026 年 3 月仍在更新

缺点

  • 开源信息不透明:官网未明确披露许可证与 GitHub 仓库,公开渠道信息有限,商用前需向官方确认(这与 MkDocs/MinDoc 的明确开源许可是明显差距)
  • 文档同样存数据库,非原生 md 文件
  • 生态与社区沉淀少:作为新产品,第三方教程、插件、踩坑案例远少于 MinDoc
  • 部分能力(导出、搜索细节)官网未详述,需要实际部署验证

选型建议

你的核心诉求 选它 一句话理由
原生 md 文件 + 数据资产化 + 零维护 MkDocs 文件即资产、Git 即历史,安全最稳
团队要在线编辑 + 中文 + 成熟稳定 MinDoc 功能全、部署简单,但接受更新放缓
团队要在线编辑 + 强权限/审计/合规 PlainDoc 新一代工程、安全治理最强,但要先确认开源授权
先试用再定 MinDoc/PlainDoc 跑 Docker 试 1 天 两者都是单容器起服务,体验成本低

最后提醒一点:三者里只有 MkDocs 满足你之前反复强调的"文档保存为原生 md";MinDoc/PlainDoc 的文档都存在数据库里,数据安全依赖"数据库备份 + 项目加密/附件鉴权"而非文件本身。如果你的红线是"文档必须是 md 文件",答案很明确——选 MkDocs(或上一轮说的 VitePress);如果"在线编辑 + 权限"优先级更高,则在 MinDoc/PlainDoc 间选,并建议先确认 PlainDoc 的开源与许可状态。

posted @ 2026-09-23 09:15  念槐聚  阅读(34)  评论(0)    收藏  举报