Docmost 自架教學:開源 Notion 與 Confluence 替代方案

Docmost 是 AGPL-3.0 的開源協作 wiki,官方定位為 Notion 與 Confluence 的自架替代品。本文用 Docker 三容器(Docmost + PostgreSQL 18 + Redis 8)實測 0.97.0 版,含官方 compose 原文、環境變數、API 驗證、備份還原與三種授權方案的真實差異。

  • Dennis
  • 9 分鐘閱讀
Docmost 自架教學:開源 Notion 與 Confluence 替代方案

一句話結論:Docmost 是一套 AGPL-3.0 的開源協作 wiki,用 Docker 三個容器就能跑起來(實測閒置約 640 MB 記憶體),核心功能免費、即時協作與 Space 權限都有;SSO、AI、Bases 資料庫、附件全文檢索等要買 Business 授權,每人每月 6 美元起、最少 10 人。

這篇適合誰

你現在的狀況Docmost 能不能解
團隊文件散在 Google Docs、Slack 訊息與個人電腦可以,集中到 Space + 巢狀頁面
想離開 Notion,但資料放在美國雲端不能接受可以,全自架、可離線(air-gapped)
用 Confluence 但不想付雲端版人頭費可以,且有 Confluence 匯入器(Business 以上)
需要審計日誌、SCIM、SIEM 餵送要 Enterprise,免費版沒有
只想寫 Markdown、不要資料庫可以,但 Docmost 的 Markdown 快捷鍵偏向所見即所得,不是純檔案
想要「檔案即資料」、能用 git 版控不適合,Docmost 內容存在 PostgreSQL

一表看懂(2026-11-06 查證)

項目內容
版本0.97.0(2026-10-25 發布)
授權核心 AGPL-3.0;packages/ee、apps/*/src/ee 走 Enterprise 授權
語言TypeScript
GitHub22,247 stars、1,673 forks、356 open issues(API 查詢)
專案起點2023-08-03 建立,2026-11-06 仍有推送
部署Docker(官方推薦);需 PostgreSQL + Redis
官方 compose 用什麼docmost/docmost:latest、postgres:18、redis:8
對外連接埠容器內 3000
健康檢查GET /api/health
實測映像大小docmost 1.2 GB、postgres 650 MB、redis 213 MB
實測閒置記憶體docmost 587.6 MiB + db 47.4 MiB + redis 7.2 MiB
介面語言12 種以上(含繁中在內的 CJK 語系)

Docmost 是什麼

官方文件的第一句話很直接:「an open-source, enterprise-ready collaborative wiki and documentation software」,並自我定位為 Notion 與 Confluence 的開源替代品。跟多數「Markdown 編輯器」不同,Docmost 走的是區塊編輯器 + 工作區路線:

  • Spaces:按團隊、專案、部門切分,各自有權限。
  • 巢狀頁面:側邊欄可拖曳排序、無限層級。
  • 即時協作:多人同時編輯同一頁,不會互相覆蓋。
  • Bases:表格與 Kanban 兩種檢視,有屬性、篩選、排序與公式(Business)。
  • 圖表:內建 Draw.io、Excalidraw、Mermaid 三種。
  • 其他:留言與解決狀態、頁面歷史與還原、同步區塊、標籤、範本、KaTeX 數學式、callout/toggle、公開分享、Markdown 快捷鍵、深色模式。

值得注意的是 0.97.0 這一版加入了整合(GitHub、GitLab、Jira、Azure DevOps、Linear、Figma 連結預覽)、簡報模式(把頁面變投影片)與 Tabs 區塊,release note 同時標明含 Node.js 安全修補,建議升級。

運作架構

元件角色少了它會怎樣
docmost應用本體(Node.js),同時提供前端與 API網站打不開
db(PostgreSQL 18)頁面、權限、使用者、版本歷史/api/health 的 database 轉 red
redis(Redis 8)協作連線、佇列、快取健康檢查 redis 轉 red,即時協作失效
volume docmost附件與儲存檔案(/app/data/storage)換容器後附件消失
volume db_data資料庫實體檔全部內容消失

官方 compose 對 Redis 下了一個關鍵參數:--maxmemory-policy noeviction。意思是記憶體滿了不要淘汰資料——文件內容與協作狀態不能當快取丟掉,這行不是隨便寫的。

安裝:官方 compose 原文

以下指令與 YAML 取自官方安裝文件,原封不動貼上(2026-11-06)。

mkdir docmost
cd docmost
curl -O https://raw.githubusercontent.com/docmost/docmost/main/docker-compose.yml
vi docker-compose.yml
services:
  docmost:
    image: docmost/docmost:latest
    depends_on:
      - db
      - redis
    environment:
      APP_URL: "http://localhost:3000"
      APP_SECRET: "REPLACE_WITH_LONG_SECRET"
      DATABASE_URL: "postgresql://docmost:STRONG_DB_PASSWORD@db:5432/docmost"
      REDIS_URL: "redis://redis:6379"
    ports:
      - "3000:3000"
    restart: unless-stopped
    volumes:
      - docmost:/app/data/storage

  db:
    image: postgres:18
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: STRONG_DB_PASSWORD
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql

  redis:
    image: redis:8
    command: ["redis-server", "--appendonly", "yes", "--maxmemory-policy", "noeviction"]
    restart: unless-stopped
    volumes:
      - redis_data:/data

volumes:
  docmost:
  db_data:
  redis_data:

只需要改三個地方(每個都要改,少改一個就會出事):

  1. APP_URL → 你的真實網域,例如 https://wiki.example.com。寫錯會導致邀請信與重設密碼連結指向錯誤位置。
  2. APP_SECRET → 用 openssl rand -hex 32 產生,官方要求至少 32 字元。留著 REPLACE_WITH_LONG_SECRET 等於把簽章金鑰公開。
  3. DATABASE_URL 與 db 服務的 POSTGRES_PASSWORD → 兩處必須一致,這是最常見的啟動失敗原因。

啟動與檢查:

docker compose up -d
docker compose ps
curl -s http://localhost:3000/api/health

實測輸出(0.97.0、全新資料庫):

{"status":"ok","info":{"database":{"status":"up"},"redis":{"status":"up"}},"error":{},"details":{"database":{"status":"up"},"redis":{"status":"up"}}}

第一次開啟網址會進到初始化精靈,要求「工作區名稱/你的名稱/email/密碼」。這一步只做一次:再打一次同樣的請求會回 403 Workspace setup already completed.,所以忘了管理員密碼沒有「重新初始化」這條路,只能走密碼重設(需要 SMTP)或直接改資料庫。上線前先把 SMTP 設好,不然救援會很麻煩。

環境變數:只記這幾組

官方文件列了完整的變數表,實際會動到的大致這幾類:

分類變數重點
基本APP_URL、APP_SECRET、PORTAPP_SECRET 至少 32 字元;PORT 預設 3000
資料庫DATABASE_URLpostgresql://user:pass@host:5432/db
RedisREDIS_URL支援 redis://user:pass@host:port/db
儲存STORAGE_DRIVERlocal(預設)/s3/azure;S3 相容要另給 endpoint 與 path-style
上傳限制FILE_UPLOAD_SIZE_LIMIT預設 50mb
郵件MAIL_DRIVER、SMTP_*、MAIL_FROM_ADDRESS用 Postmark 則改 POSTMARK_TOKEN
隱私DISABLE_TELEMETRY官方會匿名收集版本、使用者數、頁面數等
內嵌IFRAME_EMBED_ALLOWED、IFRAME_ALLOWED_ORIGINS預設 X-Frame-Options: SAMEORIGIN,要嵌進內部入口網站才需放寬
對外請求ALLOWED_PRIVATE_NETWORKS預設拒絕私有網段,避免 SSRF;SIEM 要打內網才放行

兩個實務提醒:

  • 用 S3/MinIO 備份附件比 local volume 安全,但要注意 AWS_S3_FORCE_PATH_STYLE=true 對 MinIO 幾乎是必要的。
  • AI 與 Typesense 搜尋都是 Enterprise/Business 功能(AI_DRIVER、SEARCH_DRIVER=typesense)。免費版搜尋走 PostgreSQL 全文索引,中小型知識庫夠用。

備份與還原(實測指令)

備份 Docmost 等於備份兩樣東西:資料庫 + 附件 volume。

# 1) 資料庫(實測:全新站台 dump 為 165 KB,資料庫 11 MB、50 張表)
docker exec docmost-db-1 pg_dump -U docmost -d docmost --clean --if-exists -f /tmp/dump.sql
docker cp docmost-db-1:/tmp/dump.sql ./dump-$(date +%F).sql

# 2) 附件(用 busybox 打包 volume,免裝額外套件)
docker run --rm -v docmost_docmost:/data -v "$PWD":/backup busybox tar czf /backup/docmost-files-$(date +%F).tar.gz -C /data .

還原順序是「先資料庫、後附件」,還原後重啟 app 容器。每日備份請把時間錯開,別在 pg_dump 與 autovacuum 同時跑。

免費版、Business、Enterprise 差在哪

功能Community(免費,自行安裝)Business(US$6/人/月起,年付,最少 10 人)Enterprise(報價)
頁面、編輯器、即時協作✅✅✅
Spaces/群組/留言/頁面歷史✅✅✅
圖表(Draw.io/Excalidraw/Mermaid)✅✅✅
公開分享✅✅✅
全文搜尋(PostgreSQL)✅✅✅
Bases(資料庫與 Kanban)❌✅✅
SSO(SAML 2.0/OIDC/LDAP)、MFA❌✅✅
AI(AI Answers、AI 助理、MCP)❌✅✅
附件全文檢索(PDF/DOCX)❌✅✅
Notion/Confluence/DOCX/PDF 匯入部分(Markdown/HTML)✅✅
API key 管理❌✅✅
頁面層級細緻權限❌✅✅
SCIM、審計日誌、SIEM、頁面簽核❌❌✅
技術支援社群Email優先

價格有個要標明的地方:官方定價頁目前顯示 US$6/人/月(年付、最少 10 席),但同一頁在不同時間/不同來源的快取版本曾出現 $4 劃線、$3.5 促銷價。實際結帳以官方頁面當下顯示為準,別拿舊截圖去跟採購吵架。

用 10 人團隊算一下:免費版 0 元;Business 年付約 US$720/年(約新台幣 2.3 萬元),換算每人每月不到 200 元。這個價位對比 Confluence Cloud 的標準方案,差距通常落在「有沒有 IT 人力自己顧主機」這件事上,而不是授權費本身。

跟其他自架方案比一比

方案定位授權Stars(2026-11-06)技術棧適合誰
DocmostNotion/Confluence 替代AGPL-3.0(EE 另授權)22,247TypeScript想要 Notion 手感 + Space 權限 + Docker 三件套
Outline團隊 wiki非標準(GitHub 判 NOASSERTION,實為 BSL 類授權)41,194TypeScript喜歡 Markdown 為本、閱讀體驗優先
AppFlowyNotion 替代(桌面優先)AGPL-3.078,321Dart/Flutter單機或小團隊、想要離線桌面 app
AFFiNE文件 + 白板一體非標準(NOASSERTION)74,280TypeScript需要白板與文件混合的腦暴場景
SiYuan個人知識庫AGPL-3.047,104TypeScript個人雙向連結筆記,不是團隊 wiki
Confluence商業標準閉源——已在 Atlassian 生態、預算充足

選型建議只有一句:要「團隊權限 + 資料庫 + 匯入既有 Confluence/Notion」就選 Docmost;要「Markdown 檔案感 + 極簡閱讀」選 Outline;要「離線桌面 + 個人第二大腦」選 AppFlowy 或 SiYuan。

注意授權差異:Outline 與 AFFiNE 的 GitHub 授權欄位都是 NOASSERTION(授權檔非標準 SPDX 格式),商用前務必自己讀 LICENSE,不要預設「開源 = MIT」。Docmost 雖然核心是 AGPL-3.0,但明確把 ee 目錄切出去,這種「open core」模式要看清你需要的功能在哪一側。

已知限制與沒做的事

  • 頁面是前端渲染:實測 curl 一頁 /p/<slugId> 只回 4 KB 的 SPA 外殼,內容要靠 JS 才出現。也就是說別把 Docmost 的公開分享頁當 SEO 內容用,搜尋引擎與自動化抓取都拿不到正文。
  • 沒實測的項目:本次只驗證到「安裝 → 初始化 → 建頁 → 健康檢查 → 備份 dump」;SSO、MFA、AI、Bases、Notion/Confluence 匯入都需要 Business/Enterprise 授權,未實際點過,文中功能差異依官方 compare plans 頁陳述。
  • 沒測規模:實測是全新空站(11 MB 資料庫、165 KB dump)。上萬頁、數十人同時協作的效能表現未驗證,官方也未公布參考數字。
  • 備份只驗證指令可執行,未做「砍掉容器 → 還原 → 資料完整」的完整演練。正式上線前請自己在測試機跑一次還原。
  • latest 標籤有風險:官方 compose 用 docmost/docmost:latest,等於每次 pull 都可能跳版。生產環境建議釘版本(例如 docmost/docmost:0.97),並在升級前先備份。
  • 授權變動風險:open core 專案的商業邊界可能調整;2026-11-06 查到的切分方式不保證明年一樣。

站內延伸閱讀

原始來源

📬 訂閱 most.tw 電子報

每週精選 AI 工具教學與技術乾貨,直接送到你的信箱。免費、隨時可退訂。

訂閱即表示同意收到 most.tw 電子報,隨時可一鍵退訂。

💬 有問題想討論?加 LINE 聯絡我

歡迎透過 LINE 官方帳號直接留言,我會盡快回覆你的問題。

加入 LINE 好友