在日常鼓捣 NAS 应用的过程中,我最近发现了一款非常值得尝试的开源工具 —— Docmost。第一眼看上去就感觉:诶,这不就是一个开源版的 Notion / Confluence 吗?简洁大气的界面 + 强大的协作能力,让人一下子就提起了兴趣。

为什么是 Docmost?

在团队写作、项目文档、知识库搭建、个人笔记这类场景中,我们常常面临这些困扰:

  • 商业软件价格高 or 限制多(例如 Notion 商业版)

  • 云端数据难以完全掌控

  • 本地化部署门槛高、配置复杂

Docmost 正好踩中了这个需求的黄金区间:

🧩 完全开源 | 🛠️ 支持自托管 | 📁 数据自主可控 | 🧑‍💻 多用户实时协作

不管你是飞书、语雀、Notion 的老用户,还是正在寻找一款稳定、高颜值、好上手的协作工具,Docmost 都是极具潜力的选择。


NAS 上部署,真的很简单!

更令人惊喜的是,它的部署方式对 NAS 用户异常友好——使用 Docker 即可一键部署。无论你用的是群晖、飞牛、威联通,还是其他支持 Docker 的 NAS 系统,只需几行配置就能轻松跑起来,无需复杂运维知识,也无需折腾数据库权限或前端后端分离

🧪 经本人实测(部署环境为群晖 DSM 7.2 + Docker Compose),Docmost 的稳定性和功能完整度在 2025 年这个时间点已经非常不错了,日常使用完全没问题!


教程目标

本教程将以实际部署为核心,带你:

  • 了解 Docmost 的核心功能与部署结构

  • 手把手搭建一个可用的协作文档平台

  • 打造属于你自己的私有 Wiki / 知识中心

💡 无需依赖额外 Web 服务器,只用 Docker,照做即可成功!

准备好了吗?是时候丢掉笨重复杂的商业服务,用一台 NAS 搭建你自己的知识宇宙了。👇


Docmost介绍

欢迎体验 Docmost —— 一款现代化、功能强大的开源协作 wiki 与文档平台。它主打多人实时协作编辑,是 Notion 和 Confluence 的理想开源替代方案。

Docmost 适用于团队知识库、项目文档管理、企业内 wiki 搭建等多种场景,支持富文本 + Markdown 快捷键编辑,还能通过“空间(Spaces)”为不同项目划分权限和结构。

Docmost 核心特性:

  • ✅ 实时协作编辑器

  • ✅ 支持 Draw.io / Excalidraw / Mermaid 图表

  • ✅ 空间(Spaces)划分项目或部门

  • ✅ 页面公开分享功能

  • ✅ 灵活的权限与用户群组管理

  • ✅ 页面评论与版本历史

  • ✅ 支持嵌套导航与强大搜索

  • ✅ 文件附件 + Markdown/HTML 导入导出

  • ✅ 支持多语言界面(中文、英文、法语等)

认证支持:

  • 📧 邮箱+密码登录

  • 🔐 SSO(SAML/OIDC)支持(企业版)

  • 🔐 MFA 两步验证(企业版)


部署教程(以群晖 NAS 为例)

📌 适用于 DSM 系统,其它 NAS / Linux 系统请自行安装最新版 Docker 和 Docker Compose,操作顺序通用。

1. 开启 SSH 并连接 NAS

  • 登录群晖 DSM 管理后台,开启 SSH 功能。
    DSM open SSH.png

  • 使用终端工具(如 FinalShell / PuTTY)连接 NAS。

  • 登录后切换到 root 用户状态。


2. 准备工作目录

  • 打开 DSM 文件管理器 → 找到 docker 文件夹 → 右键复制路径。(你想将容器数据存储到哪就进哪个文件夹)
    DSM copy docker.png

  • 回到终端,执行如下命令进入该文件夹:

# 将/volume1/docker换成你自己的文件夹路径

cd /volume1/docker

3. 创建项目文件夹及子目录

  1. 创建并进入项目文件夹

    mkdir docmost && cd docmost
  2. 创建所需子文件夹

    mkdir docmost_data db_data redis_data

4. 生成 32 位安全密钥

用于应用安全加密,推荐使用 openssl 命令生成:

openssl rand -hex 32

📌 示例输出:

root@DSM:/volume1/docker/docmost# openssl rand -hex 32
bc1225fb153b7d5851046229b5a3df43f8d7af0f18c46914c9ebaa39e99d18ac
root@DSM:/volume1/docker/docmost#

5. 创建 docker-compose.yml 配置文件

  1. 编辑docker-compose.yml模板文件

    vi docker-compose.yml
  2. 按字母i键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入:wq保存并退出。

    (排版太挤的就先粘贴到文本文件内,修改后再使用,灵活应变。)

    version: "3"
    
    services:
      docmost:
        image: docmost/docmost:latest
        depends_on:
          - db
          - redis
        environment:
          APP_URL: "http://localhost:3300"    # 将 http://localhost:3300 换成你实际的访问地址
          APP_SECRET: "REPLACE_WITH_LONG_SECRET"    # 将 REPLACE_WITH_LONG_SECRET 换成前面生成的32位安全密钥
          DATABASE_URL: "postgresql://docmost:STRONG_DB_PASSWORD@db:5432/docmost?schema=public"
          REDIS_URL: "redis://redis:6379"
        ports:
          - "3300:3000"    # 左侧的3300端口是容器外部访问端口,可自行修改。(NAS上用到3000端口的服务比较多,演示换成3300端口。)
        restart: unless-stopped
        volumes:
          - ./docmost_data:/app/data/storage
    
      db:
        image: postgres:16-alpine
        environment:
          POSTGRES_DB: docmost
          POSTGRES_USER: docmost
          POSTGRES_PASSWORD: STRONG_DB_PASSWORD    # STRONG_DB_PASSWORD 是数据库密码,可自行更改。
        restart: unless-stopped
        volumes:
          - ./db_data:/var/lib/postgresql/data
    
      redis:
        image: redis:7.2-alpine
        restart: unless-stopped
        volumes:
          - ./redis_data:/data
    
    volumes:
      docmost:
      db_data:

6. 可选环境变量配置参考(ENV)

如果你有进阶需求,例如启用 S3、配置邮件通知,可参考以下选项添加到docmost的environment:

# 应用部署的域名或地址,例如 https://example.com
APP_URL=http://localhost:3000

# 应用运行的端口
PORT=3000

# 应用的密钥,长度需至少32位,可使用命令生成:openssl rand -hex 32
APP_SECRET=REPLACE_WITH_LONG_SECRET

# JWT 身份验证令牌的过期时间,例如:30d 表示30天
JWT_TOKEN_EXPIRES_IN=30d

# 数据库连接地址(PostgreSQL),格式为:postgresql://用户名:密码@主机:端口/数据库名?schema=模式
DATABASE_URL="postgresql://postgres:password@localhost:5432/docmost?schema=public"

# Redis 缓存地址
REDIS_URL=redis://127.0.0.1:6379

# 文件存储方式,可选值:local(本地存储)或 s3(Amazon S3)
STORAGE_DRIVER=local

# 以下为 S3 存储方式所需的配置,如果使用 local,可留空
AWS_S3_ACCESS_KEY_ID=
AWS_S3_SECRET_ACCESS_KEY=
AWS_S3_REGION=
AWS_S3_BUCKET=
AWS_S3_ENDPOINT=
AWS_S3_FORCE_PATH_STYLE=

# 上传文件大小限制,默认值为 50MB(单位可为 MB,例如:100mb)
FILE_UPLOAD_SIZE_LIMIT=

# 邮件发送方式,可选值:smtp(本地或第三方SMTP服务器)或 postmark(Postmark邮件服务)
MAIL_DRIVER=smtp

# 发件人邮箱地址
MAIL_FROM_ADDRESS=hello@example.com

# 发件人名称
MAIL_FROM_NAME=Docmost

# 以下为 SMTP 邮件服务器配置(如果 MAIL_DRIVER 为 smtp)
SMTP_HOST=127.0.0.1        # SMTP 服务器地址
SMTP_PORT=587              # SMTP 服务器端口
SMTP_USERNAME=             # SMTP 登录用户名
SMTP_PASSWORD=             # SMTP 登录密码
SMTP_SECURE=false          # 是否使用加密连接(true = 使用 SSL/TLS)
SMTP_IGNORETLS=false       # 是否忽略 STARTTLS(不推荐)

# 如果使用 Postmark 服务,填写对应的 API Token(如果 MAIL_DRIVER 为 postmark)
POSTMARK_TOKEN=

# 可自定义 draw.io 图表编辑服务的地址(可为空)
DRAWIO_URL=

# 是否禁用遥测(收集匿名使用数据),true 为禁用,false 为启用
DISABLE_TELEMETRY=false

# 是否在生产环境中启用调试日志,默认为 false(不启用)
DEBUG_MODE=false

7. 设置权限(群晖推荐执行)

  1. 查看当前项目文件夹路径

    pwd
  2. 授权该项目文件夹内的读写权限(部分NAS系统需要【如群晖】,否则容器无读写权限访问运行,按需执行。)

    # 将 /volume1/docker/docmost/ 换成你自己实际的文件夹路径
    
    chmod -R 777 /volume1/docker/docmost/

8. 启动容器服务

执行以下命令,拉取镜像并后台启动服务:

docker-compose up -d

或

docker compose up -d

9. 查看日志(可选)

Ctrl+C可中断查看

docker-compose logs -f

或

docker compose logs -f

访问 Docmost

  1. 打开浏览器,以NAS的IP+设置的端口号进行访问。
    以本机为例:http://172.16.19.200:3300
    默认是英文页面,可自行打开浏览器翻译,按提示设置。

  2. 首次打开为英文界面,可右键翻译或按照以下步骤切换语言:
    点击右上角头像 → 进入“工作区设置”

  3. 找到“偏好设置” → 语言 → 选择“中文(简体)”,刷新网页即可完成汉化。


基础使用说明

  • 在空间(Spaces)中可创建多个“项目空间”,分别管理内容。

  • 页面支持层级结构,可拖拽调整父子页面关系

  • 编辑器支持 Markdown 与所见即所得(WYSIWYG)模式

  • 支持历史版本找回、防误删功能

  • 文档粘贴支持自动排版,适合 AI 生成内容导入而不混乱。

✅ 非常适合团队协作文档、知识管理、开发文档收集等使用场景。


相关链接


✅ 如果你在使用 Docmost 的过程中有任何问题,欢迎在下方评论区留言交流 👍

✅ 如需转载请注明出处,更多 NAS + Docker 教程请持续关注我的博客。


文末

👇👇👇