老牧者 = 資深牧者
社后教會 設教卅週年 要編一本查經手冊來紀念,這是不容易的任務,感謝主,幸好有社后的好鄰居——資深的老前輩 洪振輝牧師前來帶領我們,他已在台灣四處帶領查經班並指導如何編寫手冊,不過,這對社后的兄姊來說是新鮮事。目前,大家收獲頗豐,對整個教會而言,有慕道友的加入,增添了許多傳福音的機會,願主動工!
新科技 = 自架雲端
為了使兄姊編輯更方便和即時互相參考,我自行架設了 Nextcloud 雲端與 線上編輯軟體 Collabora Online ,這是一套可以線上協作的文書軟體,就把它想成是開放源始碼版本的 Google doc 吧。至於為何要自討苦吃,用現成的不是很好嗎?嗯, 這篇 是原因之一,有機會再陸續 說明 這類 自由軟體 的事。
其實,雲端技術在這變化快速的科技時代也不算新事了!相對於現成的雲端服務,例如谷哥的 Google drive 或蘋果的 iCloud ,自己架設雲端的比例相信仍是少數,若有,也以廠商設定好且規格比較一致的網路儲存伺服器 NAS (Network Attached Storage) 為主。在中文的社群裡,很少人討論自己架設 Nextcloud 雲端,我曾想寫個一體適用的腳本讓大家可以直接安裝,不過,有不少東東要先預備好,才能照著架設,我必須承認,第一步,全世界就有 96%的人 跟我們使用不同的作業系統 OS (Operating System),即便 Linux 在伺服器界普及率達到九成以上,從常見的手機到厲害的太空船上都有 Linux 在 默默工作 ,但它在桌面應用仍是少數。
必須先擁有:
-
安裝 docker 容器。
(我是原生 Nextcloud ,docker 放置 Collabora Online 用)
-
一個自己的 網域 ,我向中華電信申請。
(網域可以做好多事!擁有自己的網域勝過向大平台申請 帳號密碼 ,有機會再聊)
-
一個 Cloudflare 的帳號。
(可以想成要從這接一條管子 / tunnel 連結外部網路到雲端的主機,還有,新增 子網域 給線上編輯、Nextcloud 雲端使用)
-
其它必要的軟體皆可詢問 AI 並要它幫忙安裝。
可以把以下自架雲端的分層結構拿去問 AI ,請她幫忙寫個腳本安裝軟體、測試,中間需要輸入放置 Nextcloud 和 Collabora Online 的子網域,要先設好。
☁️ 自架雲分層架構圖
我採用 Hybrid 混合架構:原生 LNMP + Redis + 外掛 Docker 安裝 Collabora。(LNMP = Linux + nginx + MySQL + PHP)
其實,在瀏覽器上輕輕一點雲端,背後發生了一連串的事,所有資訊繞了 地球一圈 ,這些步驟請 AI 畫成流程圖如下:
📘 分層詳細說明:
🌐 Client Layer(客戶端層)
Browser(建議:Brave Browser)
-
使用者操作介面
User Interface / Client
👉 功能:
- 發送 HTTPS request
- 顯示 UI
- 處理 JavaScript / WebSocket
☁️ Edge Layer(邊緣層)
Cloudflare
-
CDN + 安全層
CDN + Security + TLS termination
👉 功能:
- HTTPS 憑證終止
- Cache(靜態資源)
- WAF(防攻擊)
- 隱藏真實 IP
🖥️ Web Layer(Web 層)
nginx
-
反向代理 + 靜態伺服器
Reverse Proxy + Static File Server
👉 兩種流量:
① Static(靜態)
.css / .js / .png
👉 直接回應(不經過 PHP)
② Dynamic(動態)
/index.php
👉 轉給 php-fpm
⚙️ Execution Layer(執行層)
php-fpm
-
PHP 執行引擎(進程式)
PHP FastCGI Process Manager
👉 關鍵參數:
pm.max_childrenpm.start_servers- queue / latency
👉 這是第一個效能瓶頸
🧠 Application Layer(應用層)
Nextcloud Core
-
應用邏輯
Application Logic
👉 功能:
- 認證(login/session)
- 檔案管理
- API / routing
- App system(files / activity / richdocuments)
🗄️ Database Layer(資料庫層)
MariaDB
-
儲存 metadata
Metadata Database
👉 存:
- user
- file index
- share permissions
⚡ Cache Layer(快取層)
Redis(UNIX socket)
-
快取與鎖定
Cache + File Locking
👉 功能:
- file locking(避免衝突)
- session cache
- 提升效能
👉 目前是最佳配置:
/run/redis/redis-server.sock
📁 Storage Layer(儲存層)
Data Directory
/var/www/nextcloud-data/ncdata
- 實體檔案
- File Storage
👉 存:
- user files
- preview
- cache
📄 Office Layer(文件系統)
Collabora Online
-
文件編輯服務
Online Office (WOPI)
👉 流程:
Nextcloud → WOPI → Collabora
👉 特性:
-
CPU-heavy(最重)
-
多人編輯時最吃資源
🔥 三種資料流(關鍵)
🟢 一般操作(輕)
Browser → nginx → php-fpm → Nextcloud → DB/Redis
🔵 檔案下載(快)
Data → nginx → Browser
👉 不經 PHP(效率高)
🔴 文件編輯(重)
Browser → Nextcloud → Collabora → CPU ↑↑
👉 最大瓶頸來源
🧰 必須安裝工具清單:
🖥️ 系統基礎
nginx
php8.3-fpm
php8.3-cli
php8.3-mysql
php8.3-xml
php8.3-gd
php8.3-curl
php8.3-zip
php8.3-mbstring
php8.3-intl
🗄️ 資料庫
mariadb-server
⚡ 快取
redis-server
php8.3-redis
📄 文件系統
docker
docker-compose
collabora/code
上次修改於 2026-04-07