老牧者加上新科技
社后教會設教卅週年要編一本查經手冊來紀念,這是不容易的任務,感謝主,幸好有社后的好鄰居——資深的老前輩 洪振輝牧師前來帶領我們,...對整個教會而言,有慕道友的加入,增添了許多傳福音的機會,願主動工!

老牧者 = 資深牧者

社后教會 設教卅週年 要編一本查經手冊來紀念,這是不容易的任務,感謝主,幸好有社后的好鄰居——資深的老前輩 洪振輝牧師前來帶領我們,他已在台灣四處帶領查經班並指導如何編寫手冊,不過,這對社后的兄姊來說是新鮮事。目前,大家收獲頗豐,對整個教會而言,有慕道友的加入,增添了許多傳福音的機會,願主動工!

(Nextcloud 雲端 +  Collabora Online 線上編輯 + docker容器技術)
(Nextcloud 雲端 + Collabora Online 線上編輯 + docker容器技術)

新科技 = 自架雲端

為了使兄姊編輯更方便和即時互相參考,我自行架設了 Nextcloud 雲端與 線上編輯軟體 Collabora Online ,這是一套可以線上協作的文書軟體,就把它想成是開放源始碼版本的 Google doc 吧。至於為何要自討苦吃,用現成的不是很好嗎?嗯, 這篇 是原因之一,有機會再陸續 說明 這類 自由軟體 的事。

其實,雲端技術在這變化快速的科技時代也不算新事了!相對於現成的雲端服務,例如谷哥的 Google drive 或蘋果的 iCloud ,自己架設雲端的比例相信仍是少數,若有,也以廠商設定好且規格比較一致的網路儲存伺服器 NAS (Network Attached Storage) 為主。在中文的社群裡,很少人討論自己架設 Nextcloud 雲端,我曾想寫個一體適用的腳本讓大家可以直接安裝,不過,有不少東東要先預備好,才能照著架設,我必須承認,第一步,全世界就有 96%的人 跟我們使用不同的作業系統 OS (Operating System),即便 Linux 在伺服器界普及率達到九成以上,從常見的手機到厲害的太空船上都有 Linux 在 默默工作 ,但它在桌面應用仍是少數。

必須先擁有:

  1. 一台 安裝 Linux 的電腦,上面跑著 終端機

  2. 安裝 docker 容器。

    (我是原生 Nextcloud ,docker 放置 Collabora Online 用)

  3. 一個自己的 網域 ,我向中華電信申請。

    (網域可以做好多事!擁有自己的網域勝過向大平台申請 帳號密碼 ,有機會再聊)

  4. 一個 Cloudflare 的帳號。

    (可以想成要從這接一條管子 / tunnel 連結外部網路到雲端的主機,還有,新增 子網域 給線上編輯、Nextcloud 雲端使用)

  5. 其它必要的軟體皆可詢問 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_children
  • pm.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