一句話結論: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 |
| GitHub | 22,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:
只需要改三個地方(每個都要改,少改一個就會出事):
APP_URL→ 你的真實網域,例如https://wiki.example.com。寫錯會導致邀請信與重設密碼連結指向錯誤位置。APP_SECRET→ 用openssl rand -hex 32產生,官方要求至少 32 字元。留著REPLACE_WITH_LONG_SECRET等於把簽章金鑰公開。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、PORT | APP_SECRET 至少 32 字元;PORT 預設 3000 |
| 資料庫 | DATABASE_URL | postgresql://user:pass@host:5432/db |
| Redis | REDIS_URL | 支援 redis://user:pass@host:port/db |
| 儲存 | STORAGE_DRIVER | local(預設)/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、頁面簽核 | ❌ | ❌ | ✅ |
| 技術支援 | 社群 | 優先 |
價格有個要標明的地方:官方定價頁目前顯示 US$6/人/月(年付、最少 10 席),但同一頁在不同時間/不同來源的快取版本曾出現 $4 劃線、$3.5 促銷價。實際結帳以官方頁面當下顯示為準,別拿舊截圖去跟採購吵架。
用 10 人團隊算一下:免費版 0 元;Business 年付約 US$720/年(約新台幣 2.3 萬元),換算每人每月不到 200 元。這個價位對比 Confluence Cloud 的標準方案,差距通常落在「有沒有 IT 人力自己顧主機」這件事上,而不是授權費本身。
跟其他自架方案比一比
| 方案 | 定位 | 授權 | Stars(2026-11-06) | 技術棧 | 適合誰 |
|---|---|---|---|---|---|
| Docmost | Notion/Confluence 替代 | AGPL-3.0(EE 另授權) | 22,247 | TypeScript | 想要 Notion 手感 + Space 權限 + Docker 三件套 |
| Outline | 團隊 wiki | 非標準(GitHub 判 NOASSERTION,實為 BSL 類授權) | 41,194 | TypeScript | 喜歡 Markdown 為本、閱讀體驗優先 |
| AppFlowy | Notion 替代(桌面優先) | AGPL-3.0 | 78,321 | Dart/Flutter | 單機或小團隊、想要離線桌面 app |
| AFFiNE | 文件 + 白板一體 | 非標準(NOASSERTION) | 74,280 | TypeScript | 需要白板與文件混合的腦暴場景 |
| SiYuan | 個人知識庫 | AGPL-3.0 | 47,104 | TypeScript | 個人雙向連結筆記,不是團隊 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 查到的切分方式不保證明年一樣。
站內延伸閱讀
- Karakeep 自架書籤與知識庫完整教學:如果你更想要「自動收藏 + 全文檢索」而不是團隊 wiki。
- Authelia 自架 SSO 完整教學:Docmost 的 SAML/OIDC 要先有身分提供者,這篇是同一個 lab 的前置步驟。
- Nginx 反向代理完整指南:把 3000 埠收到 443 後面的標準做法。
- Proxmox VE 9 完整教學:想用 LXC/VM 隔離這套三容器服務的話從這裡開始。
