乐于分享
好东西不私藏

团队内部文档管理分享系统Doc-Hub:零散 HTML、Markdown 和内部工具页统一管理

团队内部文档管理分享系统Doc-Hub:零散 HTML、Markdown 和内部工具页统一管理

这是一套面向团队内部使用的文档管理与分享系统。它不是又一个网盘,也不是单纯的 Markdown 编辑器,而是一个可以管理 HTML 页面、Markdown 文档、多文件静态项目,并且内置权限、分享、AI 和 MCP 接入能力的内部工作台。
GitHub地址:https://github.com/Chengyanan1008/doc-hub

1. 为什么需要这样一个系统

很多团队都会遇到类似的问题:

  • 临时做了一个 HTML 报告,发在群里,过几天就找不到了。
  • 写了一个 Markdown 说明文档,存在某个人电脑里,别人不知道最新版在哪里。
  • 有些小工具页面、数据看板、活动页 Demo,本质上就是一个静态项目,但没有一个统一入口。
  • 文档想分享给同事,又不希望所有人都能公开访问。
  • 多个人一起维护内容时,容易发生“你改了我的版本,我覆盖了你的版本”。
  • AI 可以帮忙生成和修改文档,但需要一个安全、可控的落地点。

Doc-Hub 解决的就是这类内部场景:把零散的 HTML、Markdown、静态项目和后续可能扩展的更多文档类型,集中放到一个可登录、可分权限、可分享、可编辑、可接入 AI 的系统里。

它更像是一个“内部文档与页面工作区”。

2. Doc-Hub 能管理什么

当前版本主要支持三类内容:

  1. 单文件 HTML

    可以直接粘贴 HTML,也可以上传 .html / .htm 文件。适合活动页 Demo、可视化报告、小工具页面、静态说明页。

  2. 单文件 Markdown

    可以粘贴 Markdown,也可以上传 .md 文件。系统会自动渲染 Markdown,并支持代码高亮。

  3. 多文件 ZIP 静态项目

    可以上传包含 HTML、Markdown、CSS、JS、图片等资源的 ZIP。如果 ZIP 顶层有 index.html,系统会自动把它作为入口;如果没有,会让你手动选择 .html 或 .md 作为入口,例如 index.mdREADME.md

内容类型与入口文件

所谓“入口文件”,可以理解成:打开这个文档项目时默认展示的首页文件。

比如 ZIP 里有:

index.htmlstyle.cssmain.jsimages/logo.png

系统就会默认打开 index.html

如果 ZIP 里只有:

README.mddocs/intro.mdassets/logo.png

系统会让你选择一个入口文件,选了 README.md 后,之后打开这个项目就默认展示它。

3. 公共目录与个人目录

Doc-Hub 里有两个工作区:

  • 公共目录:所有登录用户都能看到。
  • 个人目录:只有文件所有者自己能看到。

注意,公共目录不等于互联网公开。

公共目录只是“平台内登录用户可见”。如果一个未登录的人拿到系统地址,他仍然看不到公共目录里的内容。

这个区分很重要。它让团队可以把内部共享内容放到公共目录,同时把个人草稿、实验页面、临时文档放在个人目录。

4. 分享权限:接近飞书文档的体验

Doc-Hub 的分享权限分三档:

  1. 未开启

    不允许匿名访问。只有有权限的登录用户能看。

  2. 获得链接的人

    系统生成 /s/{shareToken} 形式的分享链接。拿到链接的人可以访问,链接可以随时撤销,也可以设置过期时间。

  3. 互联网公开

    系统生成 /v/{docId} 形式的公开地址,未登录用户也能访问。切回“未开启”即可撤销公开访问。

权限与分享模型

这套设计的目标不是复杂,而是清楚:

  • 公共目录:登录用户可见。
  • 链接分享:拿到链接的人可见。
  • 互联网公开:未登录也可见。

这样每个文档要不要外传,用户自己可以明确选择。

5. 编辑、预览和文件锁

Doc-Hub 的编辑区支持三种模式:

  • 预览
  • 分屏
  • 代码

代码编辑使用 Monaco Editor。HTML 会在沙箱 iframe 中预览,Markdown 会自动渲染为阅读视图。Markdown 里的代码块支持成熟高亮库,SQL、Java、Python 等常见语言都能高亮。

为了避免多人同时覆盖,系统加入了编辑锁:

  • 用户进入编辑状态后,自动获得锁。
  • 其他用户会看到“某某正在编辑”。
  • 其他用户只能只读查看,保存、上传、AI 改写会被后端拒绝。

这不是复杂的协同编辑,而是更适合内部工具的“防覆盖编辑锁”。实现成本低,但能解决大部分误覆盖问题。

6. 文件信息:知道谁在什么时候改了什么

在文件菜单中可以查看文件信息,包括:

  • 上传人
  • 修改人
  • 创建时间
  • 更新时间
  • 文件大小
  • 入口文件
  • 目录类型
  • 分享状态
  • 当前编辑锁状态

对于内部文档系统来说,“谁改过、什么时候改的”非常关键。尤其是文档被多人使用时,这类元信息可以减少沟通成本。

7. 登录、注册与用户管理

Doc-Hub 支持用户名和密码登录。

首次部署时,可以打开注册:

DOC_HUB_DISABLE_REGISTER=0

第一个注册用户会自动成为管理员。

管理员创建完成后,建议关闭公开注册:

DOC_HUB_DISABLE_REGISTER=1

后续普通用户由管理员在头像菜单里的“用户管理”中创建。每个用户也可以在右上角头像菜单里自行修改密码。

这种方式适合内部系统:先快速初始化,再关闭公开入口,避免陌生人自行注册。

8. 局域网访问与 Docker 部署

Doc-Hub 推荐用 Docker Compose 启动。克隆仓库后可以直接运行:

cd doc-hubdocker compose up -d --build

默认本机访问:

http://127.0.0.1:8787

如果希望同一局域网内的电脑或手机访问,可以配置:

DOC_HUB_BIND_ADDR=0.0.0.0DOC_HUB_ORIGIN=*

然后局域网用户可以访问:

http://你的内网IP:8787

在 macOS 上,也可以尝试 .local 主机名,例如:

http://你的主机名.local:8787
部署与访问方式

9. AI:在系统里生成和改写文档

Doc-Hub 内置 AI 设置,兼容 OpenAI Chat Completions 协议。它可以接入:

  • OpenAI
  • DeepSeek
  • Kimi
  • 智谱
  • 通义
  • OpenRouter
  • 自定义 OpenAI 兼容网关

配置项包括:

  • Base URL
  • API Key
  • Model
  • Temperature
  • Max Tokens
  • Tool Rounds
  • Tool Calling 开关

AI 可以用于:

  • 生成新的 HTML / Markdown 文档。
  • 改写当前文档。
  • 通过对话面板持续修改。
  • 使用 Prompt 模板管理不同场景的提示词。

其中 Tool Calling 是一个关键能力。开启后,AI 修改文档时可以调用:

  • list_files
  • read_file
  • write_file
  • replace_in_file

这样 AI 不需要一次性读取整个项目,而是可以按需查看文件、定位内容、写回修改。

10. MCP:让外部 AI 客户端也能操作 Doc-Hub

除了网页内置 AI,Doc-Hub 还内置 MCP Server。

MCP 的作用是让外部 AI 客户端把 Doc-Hub 当成一个受控的文档工作区。接入 Claude Desktop、Cursor、Cline 等客户端后,客户端可以凭 Token 调用 Doc-Hub 能力:

  • 列出文档
  • 创建文档
  • 读取文件
  • 上传或覆盖 HTML / Markdown / CSS / JS
  • 上传 ZIP 项目
  • 删除文档或文件
AI 与 MCP 接入方式

典型场景包括:

  • 让 Cursor 读取 Doc-Hub 中的某个页面,并帮你改写样式。
  • 让 Claude Desktop 生成一份 Markdown 文档,直接写入 Doc-Hub。
  • 让 Agent 检查一个多文件静态项目,定位需要修改的文件,并把结果写回。

网页内置 AI 主要是在 Doc-Hub 页面里使用;MCP 则是给外部 AI Agent 使用。

MCP Token 可以随时删除。删除后,对应外部客户端会立即失效。

11. 适合哪些场景

我认为 Doc-Hub 比较适合以下内部场景:

  • 数据分析报告页面集中管理。
  • 活动页、运营页、工具页 Demo 存档。
  • Markdown 说明文档、接口文档、SQL 口径文档管理。
  • 团队共享 HTML/Markdown 静态页面。
  • 内部 AI 生成页面的落地和复用。
  • 需要局域网访问,但不想上公网的轻量系统。
  • 希望外部 AI Agent 能受控读写文档的团队。

它不试图替代完整的知识库、网盘或协同文档,而是专注于“内部文档 + 静态项目 + AI 可操作”的这块区域。

12. 总结

Doc-Hub 的核心价值可以概括成一句话:

把内部零散的 HTML、Markdown 和静态项目,变成一个可登录、可管理、可分享、可预览、可 AI 改写的文档工作台。

它解决的不是“写文档”本身,而是文档和静态页面在团队内部如何存放、查找、权限控制、分享、修改和被 AI 工具使用的问题。

如果你的团队也有很多散落在电脑、群聊、临时目录里的 HTML 页面、Markdown 文档、小工具项目,Doc-Hub 这种轻量系统会非常实用。

最后附上GitHub地址:https://github.com/Chengyanan1008/doc-hub

(特别备注:该项目是基于https://github.com/IcedSoul/web-doc做的二次开发