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

发布时间:2026/6/16 10:59:22

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.0Docker Compose v2.20已解析到服务器的域名开放 80/443 端口curl-fsSLhttps://get.docker.com|shsystemctlenable--nowdockerdocker--versiondockercompose version准备工作创建目录结构mkdir-p/opt/docmostcd/opt/docmostmkdir-pdata/postgres data/redis data/storage生成 APP_SECRETDocmost 需要一个用于加密 session 的密钥# 生成 64 位随机密钥openssl rand-hex32# 记录输出填入 APP_SECRET部署配置创建/opt/docmost/docker-compose.ymlversion:3.9services:docmost:image:docmost/docmost:latestcontainer_name:docmostrestart:unless-stoppedports:-127.0.0.1:3000:3000volumes:-./data/storage:/app/data/storageenvironment:APP_URL:https://wiki.yourdomain.comAPP_SECRET:${APP_SECRET}DATABASE_URL:postgresql://docmost:${POSTGRES_PASSWORD}postgres:5432/docmost?schemapublicREDIS_URL:redis://redis:6379# 邮件配置用于邀请成员、密码重置MAIL_DRIVER:smtpSMTP_HOST:${SMTP_HOST}SMTP_PORT:587SMTP_SECURE:falseSMTP_USERNAME:${SMTP_USERNAME}SMTP_PASSWORD:${SMTP_PASSWORD}MAIL_FROM_ADDRESS:noreplyyourdomain.comMAIL_FROM_NAME:Docmost# 存储配置本地存储STORAGE_DRIVER:local# 时区TZ:Asia/Shanghaidepends_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/.envAPP_SECRETyour_64_char_hex_secret_here POSTGRES_PASSWORDyour_strong_postgres_password # SMTP 配置可选用于邀请邮件 SMTP_HOSTsmtp.yourmailprovider.com SMTP_USERNAMEyour-emailyourdomain.com SMTP_PASSWORDyour-smtp-password启动服务cd/opt/docmostchmod600.envdockercompose up-ddockercompose logs-fdocmost等待日志出现Server started on port 3000后服务启动完成。Caddy 反向代理Docmost 使用 WebSocket 进行实时协作同步Caddy 需要正确处理 WebSocket 升级请求。编辑/etc/caddy/Caddyfilewiki.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-age31536000; includeSubDomains X-Content-Type-Options nosniff X-Frame-Options SAMEORIGIN Referrer-Policy strict-origin-when-cross-origin } }重载 Caddysystemctl reload caddy核心功能配置初始化管理员账号首次访问https://wiki.yourdomain.com时系统会引导创建第一个管理员账号填写用户名、邮箱和密码后完成初始化。创建工作区空间SpaceDocmost 使用「Space」作为顶层组织单位类似 Notion 的「工作区」或 Confluence 的「空间」点击左侧「」创建新 Space设置 Space 名称如「产品文档」「工程 Wiki」「运营手册」选择访问权限公开组织内所有成员可见或私有仅受邀成员页面嵌套结构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\-cUPDATE users SET passwordhash WHERE emailadminyourdomain.com;Q如何迁移到新服务器迁移非常简单只需在新服务器上部署相同的docker-compose.yml将/opt/docmost/data/整个目录传输到新服务器恢复数据库cat docmost-db.sql | docker compose exec -T postgres psql -U docmost docmost修改.env中的APP_URL和 DNS 解析Q如何升级 Docmost 版本cd/opt/docmostdockercompose pull docmostdockercompose up-ddockercompose logs-fdocmostDocmost 支持自动数据库迁移升级通常无需手动操作。Docmost 提供了接近 Notion 的使用体验同时保持了极低的资源消耗和简单的部署流程。对于希望将团队知识库掌握在自己手中的组织这是目前开源生态中最值得尝试的方案之一。整个部署过程不超过 20 分钟建议在雨云服务器 rainyun-com的 1 核 2GB 机型上运行注册填优惠码2026off领取 5 折优惠券以极低的月度成本运营一套功能完整的团队知识管理平台。

相关新闻