当前位置: 首页 > news >正文

Docmost:开源团队知识库部署教程,支持实时协作的 Notion 替代

Docmost:开源团队知识库部署教程,支持实时协作的 Notion 替代

Docmost 是一款现代化的开源团队知识库与协作文档平台,定位为 Notion、Confluence 的自托管替代方案。它提供富文本编辑器、嵌套页面结构、实时多人协作、空间(Space)权限管理、评论、页面历史版本等核心功能,界面简洁现代,上手门槛极低。对于不希望将内部知识沉淀在第三方 SaaS 上的团队,Docmost 是目前最轻量、部署最简单的选择之一。

与 Notion 相比,Docmost 最大的优势是数据完全自主可控。公司的产品文档、运营 SOP、技术 Wiki、会议记录等核心资产存储在自己的服务器上,不受平台规则变化和账号封禁风险的影响。Docmost 基于 Node.js 后端 + React 前端开发,配合 PostgreSQL 存储结构化数据,Redis 处理实时协作消息,整体架构轻巧,资源占用低。

1 核 2GB 的入门机型即可流畅运行 10-20 人的知识库系统。本文将使用 Docker Compose + Caddy 完成 Docmost 的完整部署配置。


服务器配置

Docmost 是典型的轻量级 Web 应用,空载内存占用约 200-400MB(含 PostgreSQL + Redis),即使在文档量较大的情况下,资源消耗依然可控。1 核 2GB 机型完全满足中小团队需求。

推荐使用雨云服务器 rainyun-com部署 Docmost,注册填优惠码2026off领 5 折优惠券,1 核 2GB 机型即可流畅运行,是搭建团队内部知识库性价比最高的选择。

推荐配置:

项目规格
CPU1 核
内存2 GB
磁盘20 GB SSD(存储文档和附件)
操作系统Ubuntu 22.04 LTS
带宽3 Mbps 及以上

环境要求

  • Docker 24.0+
  • Docker Compose v2.20+
  • 已解析到服务器的域名
  • 开放 80/443 端口
curl-fsSLhttps://get.docker.com|shsystemctlenable--nowdockerdocker--version&&dockercompose version

准备工作

创建目录结构

mkdir-p/opt/docmostcd/opt/docmostmkdir-pdata/postgres data/redis data/storage

生成 APP_SECRET

Docmost 需要一个用于加密 session 的密钥:

# 生成 64 位随机密钥openssl rand-hex32# 记录输出,填入 APP_SECRET

部署配置

创建/opt/docmost/docker-compose.yml

version:"3.9"services:docmost:image:docmost/docmost:latestcontainer_name:docmostrestart:unless-stoppedports:-"127.0.0.1:3000:3000"volumes:-./data/storage:/app/data/storageenvironment:APP_URL:"https://wiki.yourdomain.com"APP_SECRET:"${APP_SECRET}"DATABASE_URL:"postgresql://docmost:${POSTGRES_PASSWORD}@postgres:5432/docmost?schema=public"REDIS_URL:"redis://redis:6379"# 邮件配置(用于邀请成员、密码重置)MAIL_DRIVER:smtpSMTP_HOST:"${SMTP_HOST}"SMTP_PORT:"587"SMTP_SECURE:"false"SMTP_USERNAME:"${SMTP_USERNAME}"SMTP_PASSWORD:"${SMTP_PASSWORD}"MAIL_FROM_ADDRESS:"noreply@yourdomain.com"MAIL_FROM_NAME:"Docmost"# 存储配置(本地存储)STORAGE_DRIVER:local# 时区TZ:"Asia/Shanghai"depends_on:postgres:condition:service_healthyredis:condition:service_healthynetworks:-docmost_netpostgres:image:postgres:16-alpinecontainer_name:docmost-postgresrestart:unless-stoppedenvironment:POSTGRES_DB:docmostPOSTGRES_USER:docmostPOSTGRES_PASSWORD:"${POSTGRES_PASSWORD}"volumes:-./data/postgres:/var/lib/postgresql/datahealthcheck:test:["CMD-SHELL","pg_isready -U docmost"]interval:10stimeout:5sretries:5networks:-docmost_netredis:image:redis:7-alpinecontainer_name:docmost-redisrestart:unless-stoppedvolumes:-./data/redis:/datacommand:redis-server--appendonly yes--maxmemory 128mb--maxmemory-policy allkeys-lruhealthcheck:test:["CMD","redis-cli","ping"]interval:10stimeout:5sretries:5networks:-docmost_netnetworks:docmost_net:driver:bridge

创建/opt/docmost/.env

APP_SECRET=your_64_char_hex_secret_here POSTGRES_PASSWORD=your_strong_postgres_password # SMTP 配置(可选,用于邀请邮件) SMTP_HOST=smtp.yourmailprovider.com SMTP_USERNAME=your-email@yourdomain.com SMTP_PASSWORD=your-smtp-password

启动服务:

cd/opt/docmostchmod600.envdockercompose up-ddockercompose logs-fdocmost

等待日志出现Server started on port 3000后,服务启动完成。


Caddy 反向代理

Docmost 使用 WebSocket 进行实时协作同步,Caddy 需要正确处理 WebSocket 升级请求。

编辑/etc/caddy/Caddyfile

wiki.yourdomain.com { reverse_proxy localhost:3000 { header_up Host {host} header_up X-Real-IP {remote_host} header_up X-Forwarded-For {remote_host} header_up X-Forwarded-Proto {scheme} # 保持长连接(WebSocket 实时协作) transport http { keepalive 30s keepalive_idle_conns 10 } } # 附件上传大小限制 request_body { max_size 50MB } encode gzip header { Strict-Transport-Security "max-age=31536000; includeSubDomains" X-Content-Type-Options "nosniff" X-Frame-Options "SAMEORIGIN" Referrer-Policy "strict-origin-when-cross-origin" } }

重载 Caddy:

systemctl reload caddy

核心功能配置

初始化管理员账号

首次访问https://wiki.yourdomain.com时,系统会引导创建第一个管理员账号,填写用户名、邮箱和密码后完成初始化。

创建工作区空间(Space)

Docmost 使用「Space」作为顶层组织单位,类似 Notion 的「工作区」或 Confluence 的「空间」:

  1. 点击左侧「+」创建新 Space
  2. 设置 Space 名称(如「产品文档」「工程 Wiki」「运营手册」)
  3. 选择访问权限:公开(组织内所有成员可见)或私有(仅受邀成员)

页面嵌套结构

Docmost 支持无限层级的嵌套页面,组织方式类似文件目录:

产品文档/ ├── 产品需求/ │ ├── 2026 Q1 需求清单 │ └── 用户故事地图 ├── 接口文档/ │ ├── 认证接口 │ └── 数据接口 └── 版本历史/ ├── v2.0 更新日志 └── v1.9 更新日志

在页面标题下方拖拽页面可以快速调整层级结构。

邀请团队成员

进入「Settings」→「Members」→「Invite Member」,输入邮箱地址发送邀请链接。成员点击邮件中的链接后注册账号,自动加入工作区。

若未配置 SMTP,可以在邀请界面直接复制邀请链接手动发送给成员。

权限管理

Docmost 提供精细的权限控制:

  • 工作区级别:管理员、普通成员
  • Space 级别:全部成员可见 / 仅特定成员
  • 页面级别:编辑权限、评论权限、只读权限

使用技巧

富文本编辑快捷键

Docmost 的编辑器支持 Markdown 语法快捷输入:

  • ##+ 空格:创建 H2 标题
  • -+ 空格:创建无序列表
  • 1.+ 空格:创建有序列表
  • ` ````+ 语言名:插入代码块
  • []+ 空格:创建任务复选框

@提及与评论

在文档中输入@可以提及团队成员,触发通知。选中文本后点击「Comment」按钮可以对特定段落添加评论,适合文档审阅场景。

页面历史版本

每次保存自动生成版本快照,通过页面右上角「History」可以查看所有历史版本并恢复到任意时间点。

导出文档

支持将页面导出为 Markdown 或 PDF 格式,便于外部分享或离线查阅。

批量备份

# 备份数据库dockercomposeexecpostgres pg_dump-Udocmost docmost\>/backup/docmost-db-$(date+%Y%m%d).sql# 备份附件存储tarczf /backup/docmost-storage-$(date+%Y%m%d).tar.gz\/opt/docmost/data/storage/# 自动备份(写入 crontab)# 0 2 * * * cd /opt/docmost && docker compose exec -T postgres pg_dump -U docmost docmost > /backup/docmost-db-$(date +\%Y\%m\%d).sql

常见问题

Q:实时协作不同步,两个用户编辑同一文档时看不到对方的修改

A:实时协作依赖 WebSocket 连接。检查 Caddy 是否正常代理了 WebSocket 请求,可以在浏览器开发者工具的「Network」标签中查看是否有ws://wss://连接建立。

Q:图片或附件上传失败

A:检查/opt/docmost/data/storage/目录权限是否正确(Docmost 容器需要写入权限),以及 Caddy 的request_body max_size是否足够大。

Q:忘记管理员密码如何重置

# 进入容器执行密码重置命令dockercomposeexecdocmostnode-e" const {hash} = require('argon2'); hash('NewPassword123!').then(h => console.log(h)); "# 将输出的哈希值更新到数据库dockercomposeexecpostgres psql-Udocmost-ddocmost\-c"UPDATE users SET password='<hash>' WHERE email='admin@yourdomain.com';"

Q:如何迁移到新服务器

迁移非常简单,只需:

  1. 在新服务器上部署相同的docker-compose.yml
  2. /opt/docmost/data/整个目录传输到新服务器
  3. 恢复数据库:cat docmost-db.sql | docker compose exec -T postgres psql -U docmost docmost
  4. 修改.env中的APP_URL和 DNS 解析

Q:如何升级 Docmost 版本

cd/opt/docmostdockercompose pull docmostdockercompose up-ddockercompose logs-fdocmost

Docmost 支持自动数据库迁移,升级通常无需手动操作。


Docmost 提供了接近 Notion 的使用体验,同时保持了极低的资源消耗和简单的部署流程。对于希望将团队知识库掌握在自己手中的组织,这是目前开源生态中最值得尝试的方案之一。整个部署过程不超过 20 分钟,建议在雨云服务器 rainyun-com的 1 核 2GB 机型上运行,注册填优惠码2026off领取 5 折优惠券,以极低的月度成本运营一套功能完整的团队知识管理平台。

http://www.jsqmd.com/news/1022902/

相关文章:

  • 软件测试接口测试从入门到精通:附录_常用工具对比表
  • Python异常处理四大核心原则:粒度、转化、分工与监控
  • 2026 东莞黄金回收门店口碑排行,实体老店公道估价无套路变现好去处 - 奢侈品回收测评
  • 2026嘉善|加急非标紧固件定制快速交货 - 年度推荐企业名录
  • 突破《原神》帧率限制:开源解锁工具完全指南
  • Windows二进制文件安全获取与实战部署指南:从系统安装到开发环境搭建
  • 2026石嘴山本地防雷检测哪家专业?TOP 正规机构榜单 + 防雷装置 + 接地电阻 + SPD 检测 附电话地址 - 中安检测集团
  • 飞书文档批量导出神器:3分钟搞定700+文档迁移,全平台支持
  • 2026通辽本地防雷检测哪家专业?TOP 正规机构榜单 + 防雷装置 + 接地电阻 + SPD 检测 附电话地址 - 中安检测集团
  • 合扬黄金回收 立足管城区 上门服务随叫随到 - 开心测评
  • Replit Agent:自然语言驱动的端到端AI开发引擎
  • 异步HDLC协议与MPC866 SCC控制器实现详解
  • ZenTimings终极指南:3步掌握AMD内存超频监控利器
  • Python json解码器底层实现
  • 2026石家庄全域代理记账注册公司代办机构TOP10 口碑优选推荐指南 - 品牌帮
  • 驻马店防水补漏哪家好?2026 优质榜单出炉,屋顶暗管漏水、飘窗地下室渗水、瓷砖空鼓修补专业防水公司推荐 - 泛家庭维修
  • 德州黄金回收行情参考 教你避开虚报高价回收套路 - 余生黄金回收
  • ViGEmBus虚拟手柄驱动:3步实现Windows游戏控制器完美兼容的终极方案
  • 告别手动抢票:5步配置Autoticket自动化购票工具完整指南
  • 2026景德镇黄金回收实测 靠谱门店与避坑指南 - 润富黄金回收
  • RK3588全能芯实战指南:从AI部署到多屏显示与性能优化
  • EUREKA:大模型可编程评估框架与底层操作系统
  • 2026企业级AI大模型API选型:告别低价陷阱,聚焦稳定性工程化
  • AMD推本地AI新机,2350亿参数离线跑
  • 3步解锁微信聊天记录:本地数据备份与恢复的完整指南
  • asyncio底层原理与生产级避坑指南
  • Obsidian入门实战:从空白界面到个人知识操作系统
  • 水处理设备全链条服务企业能力梳理 - 深度智识库
  • 打破60帧束缚:用开源工具解锁《原神》流畅新境界
  • 2026汕尾本地防雷检测哪家专业?TOP 正规机构榜单 + 防雷装置 + 接地电阻 + SPD 检测 附电话地址 - 中安检测集团