從雲端回歸在地:我的 Raspberry Pi 5 x Moodle 5.1 實戰之路
我與 Moodle 的教學應用始於 2014 年。當時得益於學校資訊組長的協助,在校內架設了專屬伺服器,為全校提供數位學習服務。然而,隨著教育體系推動主機「向上集中化」,原本校內自主管理的 Moodle 隨之關閉,我的Moodle教學模式也因此中斷了一陣子。
後來,新竹縣教網辛老師推動了「M3 教育雲合作備課平台」,讓我得以接續使用。但在使用過程中,我逐漸萌生了「自主掌控」的想法。為了追求更高的客製化自由度、能隨心所欲地安裝外掛或調整版面,我決定探索「自架站點」的可能性,重新找回對教學系統的完全掌握權。
尋找最適合教學現場的方案
起初曾考慮租用商業雲端主機,但考量到教學需求並非 24 小時高流量,高峰期多集中在「線上測驗」時段,商業主機的持續維護成本相對較高。我也研究過的 MoodleBox,雖然它開箱即用、極為便利,但其預設將樹莓派改裝為獨立無線基地台(SSID)的模式,與我現有的教室網路架構不符。
最終,我決定挑戰「純手工架設」:從底層作業系統開始,在樹莓派上搭建專屬環境。這不僅能完全符合我的特殊需求,更能享受伺服器管理的過程,想要看看會撞什麼牆,而就算失敗也沒有損失。
針對高效能與耐用度的頂規硬體配置
為了應對測驗時 30-40 人同時送出答案的併發讀寫需求,我捨棄了效能與壽命較弱的 microSD 卡,採用了固態硬碟的儲存硬碟方案。主機選用 Raspberry Pi 5 Model B (16GB RAM),這是目前系列中記憶體最大的版本,確保在高負載測驗時,所有的 PHP 程序與資料庫快取都有充足的運算緩衝。
儲存方面,我透過 PCIe Gen 3 介面加裝了 512GB M.2 2230 NVMe SSD,實測讀取速度突破 700 MB/s。這徹底解決了資料庫讀寫的瓶頸,讓學生在切換測驗頁面時幾乎達到秒進的極速反應。再搭配官方主動散熱風扇,長時間高頻率運算,系統依然穩定不降速。
環境部署與網路邏輯的取捨
在網路架構上,我利用 mDNS 技術設定了 .local 自動識別網址。在校園內網中,學生只需輸入 http://bio.local 即可進入站台。這種「隱身內網」的配置,雖然無法從校外存取,但能有效隔絕來自公網的自動化攻擊。對於目前「學生不需在家測驗」的需求而言,是兼顧安全與便利的最佳解。(所以以上網址各位點了也沒用)
軟體核心採用標準且穩定的 LAMP (Apache, MariaDB, PHP 8.2) 架構,並針對 Moodle 5.1 進行了性能微調。版本控制則改採 Git 方式部署,捨棄傳統壓縮包,這讓未來的安全性更新與版本追蹤都能透過簡潔的指令無痛完成,大幅降低了長期維護的難度。
現代化架站秘訣:用 AI 當助手
站台架好已經一年了,架站過程中有大量 Linux 指令,一定會讓人看了就害怕,但事實上,現在有了 AI 的協助,一切都變得很簡單。不需要死背指令或翻文件,只需將精確的需求告訴 AI,它就會產出對應的步驟。我的工作變成了:提出需求、複製 AI 產出的指令、貼進終端機,若遇到報錯就再貼回給 AI 進行診斷。完成一部分工作後,再讓它寫md給我做紀錄
雖然我沒試過,但是我相信現在可以直接在 Linux 機器上利用 AI Agent直接完成所有設定,例如安裝opencode或GEMINI CLI之類的AGENT來直接用終端機下指令,因為 99% 的架站工作都是在終端機內完成,直接可以完成排錯與優化。