Mark Ku's Blog
在 ChatGPT 開啟在 Claude 開啟

歡迎收聽 Mark 的 Tech Insights,我是人工智慧主持人璦廷。在追求高效協作的路上,你是否正尋找一套完美的知識庫系統? 今天為大家介紹一款免費開源、類似 Notion 的工具:Outline Wiki。它能解決常見限制,提升團隊資訊管理效率。 讓我們來看看它的核心技術。透過 Docker Compose 就能快速佈署。這個重點值得注意,它不支援傳統帳密,而是採用第三方授權,例如企業版 Google、GitHub 或微軟帳號登入。 在實際維護上,若圖片無法顯示,只需在 MinIO 手動建立資料夾。系統資料分為儲存文字紀錄的 PostgreSQL,以及存放檔案的 MinIO。文章提供了完整的備份與還原指令,確保資產安全。 總結來說,Outline 是建立專屬知識庫的優秀選擇。不妨思考看看,你的團隊目前最需要改善的資訊共享痛點是什麼呢?

Podcast 對話本文 AI 對話朗讀版
本文音訊由 VoAI 提供技術支援VoAI 絕好聲創

背景介紹

在追求高效資料與知識共享的過程中,許多企業和團隊面臨工具選擇的挑戰。我們嘗試了多種知識庫工具,但從工程師的反饋來看,這些工具仍存在不少限制。經過多方評估與尋找,最終發現 Outline 是一款非常適合團隊協作的知識庫解決方案,能有效提升工作效率與資訊管理。


什麼是 Outline?

Outline 是一款簡潔且功能強大的知識庫管理工具,介面與使用體驗類似 Notion。它支援 Markdown 編輯、全文檢索、以及多種第三方登入方式,非常適合企業或團隊搭建共享知識庫。Outline 是開源軟體,功能完整,專為團隊打造,能大幅提升知識管理與協作效率。


架設指南(使用 Docker Compose 範例)

以下為使用 Docker Compose 快速架設 Outline 的範例設定:

version: '3'

services:
  outline:
    image: outlinewiki/outline:latest
    ports:
      - "27777:3000"
    environment:
      - DATABASE_URL=postgres://postgres:postgres@postgres:5432/outline
      - REDIS_URL=redis://redis:6379
      - SECRET_KEY=你的隨機字串
      - UTILS_SECRET=你的隨機字串
      - URL=http://localhost:27777
      - NODE_ENV=production
      - FORCE_HTTPS=false
      - PORT=3000
      - AWS_ACCESS_KEY_ID=minio
      - AWS_SECRET_ACCESS_KEY=minio123
      - AWS_REGION=us-east-1
      - AWS_S3_UPLOAD_BUCKET_URL=http://localhost:9000
      - AWS_S3_UPLOAD_BUCKET_NAME=uploads
      - AWS_S3_FORCE_PATH_STYLE=true
      - AWS_S3_ACL=private
      - AWS_S3_UPLOAD_MAX_SIZE=26214400
      - PGSSLMODE=disable
      - OIDC_CLIENT_ID=你的OIDC客戶端ID
      - OIDC_CLIENT_SECRET=你的OIDC客戶端密鑰
      - OIDC_AUTH_URI=https://github.com/login/oauth/authorize
      - OIDC_TOKEN_URI=https://github.com/login/oauth/access_token
      - OIDC_SCOPES=read:user user:email
      - OIDC_USERINFO_URI=https://api.github.com/user
      - OIDC_USERNAME_CLAIM=name
      - OIDC_DISPLAY_NAME=GitHub
    depends_on:
      - postgres
      - redis
      - minio

  postgres:
    image: postgres:13
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=outline
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:6
    volumes:
      - redis_data:/data

  minio:
    image: minio/minio
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      - MINIO_ROOT_USER=minio
      - MINIO_ROOT_PASSWORD=minio123
    volumes:
      - minio_data:/data
    command: server /data --console-address ":9001"

volumes:
  postgres_data:
  redis_data:
  minio_data:

啟動服務指令:

docker-compose up -d

P.S. 如果無法上傳 Create Bucket > "uplaods"

http://localhost:9001/

🚪 登入方式說明

Outline 不支援帳密登入,僅支援多種第三方帳號登入,以下為主要選項及注意事項:

  • Google 登入 需使用 Google Workspace(企業帳號),不支援個人 Gmail 帳號。

  • GitHub 登入 支援個人Github 帳號:GitHub 應用授權設定

  • Microsoft 登入 支援 Azure AD(企業帳號)及個人 Microsoft 帳號。
    參考資料


修正MinIO 圖片無法正常顯示問題

3. 文章圖片無法上傳,登入 MinIO Web UI,手動建立 Blcket "uploads"

4. 大頭照無法顯示

# 1. 進入 Minio 容器
docker exec -it outline-wiki-minio-1 sh

# 2. 設定 mc 別名
mc alias set myminio http://localhost:9000 account password


# 3. 設定 uploads bucket 為匿名可讀
mc anonymous set download myminio/uploads

# 4. 檢查設定是否成功
mc anonymous get myminio/uploads

# 5. 離開容器
exit

💾 資料備份要點

Outline 主要包含兩部分資料:

  1. PostgreSQL 資料庫:儲存頁面內容、使用者資訊及版本歷史
  2. MinIO 儲存空間:存放所有使用者上傳的圖片及檔案,相當於本地端的 Amazon S3

訪問

http://localhost:27777/
編輯畫面
編輯畫面

小bug

登出後,需要關閉瀏覽器頁籤才有辦法重新登入。

✅ 備份

Step 1:備份 PostgreSQL 資料庫

docker exec -t $(docker ps -qf name=postgres) pg_dump -U postgres outline > outline_backup.sql

注意:

  • 匯出檔案為 SQL 格式,會存放於執行目錄。
  • 若容器名稱非 postgres,請使用 docker ps 查詢並替換。

Step 2:備份 MinIO 資料

docker run --rm -v minio_data:/volume -v $(pwd):/backup alpine tar czf /backup/minio_backup.tar.gz -C /volume .

注意:

  • 會將 MinIO volume 內所有檔案壓縮為 .tar.gz
  • minio_data 為 MinIO 的 volume 名稱,請依實際情況調整。

♻️ 還原流程

還原 PostgreSQL 資料庫

cat outline_backup.sql | docker exec -i $(docker ps -qf name=postgres) psql -U postgres -d outline

還原 MinIO 資料

docker run --rm -v minio_data:/volume -v $(pwd):/backup alpine sh -c "cd /volume && tar xzf /backup/minio_backup.tar.gz"

作者

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可

熱門文章

View all
Mark Ku
··644

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··525

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··343

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··287

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調
Mark Ku
··225

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··222

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

讀者也在看

團隊因應頻繁請假成員之策略

Mark Ku

·2 min read·54

淺談軟體工程師的晉升

Mark Ku

·5 min read·19

職場中的績效與信任

Mark Ku

·3 min read·18

帶人心路歷程

Mark Ku

·10 min read·17