NAS Docker Compose 模板庫:1,515 份範例,每行附中文註解

FrozenGEE/compose 在 GitHub 收了 1,515 份 NAS 適用的 Docker Compose 模板,群暉、威聯通等 12 個平台各有專屬資料夾,路徑慣例先寫好、幾乎每行都有中文註解。它像部署字典而非一鍵工具,照抄前記得改時區與路徑,並跳過庫內少數踩線模板。

用 AI 摘要這篇文章:

在 NAS 上玩 Docker 的人多半遇過同一種挫敗:網路教學貼了一段 docker-compose,你複製進 Container Manager 按下去,容器起不來,日誌只說路徑不存在。回頭看教學才發現對方寫的是 /volume1/docker,而你家那台的路徑慣例根本不一樣;就算起了,重開機後設定全消失的也不少見,因為 volumes 那幾行沒有映射到 NAS 的實際資料夾。

這些坑的來源不是 Docker 難,而是每家 NAS 的路徑慣例、使用者權限、網路模式都有差別,而多數教學只對作者的機器負責。GitHub 上有一個叫 FrozenGEE/compose 的專案把這件苦工整個搬進儲存庫:裡面放了 1,515 份 compose 模板,同一段服務依品牌分成群暉版、威聯通版、unRAID 版等各自寫好,而且幾乎每一行都有中文註解。

先講結論。它不是一鍵部署魔法,也不打算當你的安裝精靈;它是一本可以查、可以抄、抄之前建議逐行讀的部署字典。群暉與威聯通各有專屬資料夾,這對這兩家的用戶最實用;但模板的預設值反映的是中國自架圈的使用習慣,時區、映像檔來源這類細節照抄前值得看一眼,庫裡也混了少數踩線模板,用的時候得先過濾。

這不是一套軟體,是把 GitHub 當部落格用的文件庫

打開儲存庫你找不到安裝檔,也沒有可執行程式,整個專案就是文件。根目錄除了 README,還放了十來份主題文件:volumes.md 專門講各家 NAS 的路徑怎麼對應、ports.md 整理預設連接埠、uid_gid.md 講第一個使用者的權限號碼、compose.md 補充模板裡的參數,另外有 portainer.mddpanel.md 兩份管理面板的部署教學。作者在簡介裡自嘲懶得架網站寫部落格,乾脆把 GitHub 當部落格用,這句話是字面意思。

模板本體依平台分成 12 個資料夾,我把整個儲存庫的檔案列表拉下來數過一遍,各資料夾的份數如下:

資料夾模板份數
通用模板171
unRAID168
群暉162
威聯通167
飛牛OS165
鐵威馬164
萬由163
綠聯167
特殊版本138
MACVLAN 獨立 IP14
Rockchip 單板機14
單獨合集22

同一種服務通常會在通用、群暉、威聯通等資料夾各有一份複本,所以 1,515 份不是 1,515 種服務,而是常用服務的品牌變體加上大量長尾工具。收錄的類型很能反映中國自架圈的樣貌:Jellyfin、qBittorrent、Home Assistant 這類國際主流,加上飛牛OS、綠聯這些台灣比較少見的中國品牌,還有 bili-sync 這類綁定 B 站生態的工具;自架圈這幾年流行的應用類型大致都齊,像 ChatWiki 這種以 Docker 部署的自架知識庫應用,就是同一個生態裡常見的鄰居。單獨合集資料夾則把自動化媒體庫這種多容器堆疊整包收錄,moviepilot 附了說明文件和示意圖,nastool 附說明文件;這種一次拉起十幾個容器的場景(moviepilot 版 14 個服務、nastool 版 17 個)正是 compose 比逐個圖形化安裝強的地方,也提醒你資源與磁碟用量會比想像中大。特殊版本資料夾則收了 watchtower、draw.io、Adminer 這類獨立工具,MACVLAN 資料夾專門給想讓容器拿獨立區網 IP 的進階玩法,Rockchip 資料夾照友善 CM3588、香橙派 5 Plus 這些單板機型號再細分。

FrozenGEE compose 儲存庫首頁,顯示 12 個 NAS 平台模板資料夾與大量 yml 檔案Pin
FrozenGEE/compose 儲存庫依平台分成 12 個資料夾(GitHub 官方頁面)

專案本身的體質也不錯:AGPL-3.0 授權,1,209 顆星、283 個 fork,2024 年 6 月開張,最後一次推送是 2026 年 8 月 19 日,維持中的狀態。不過 4,793 次 commit 裡有 4,778 次出自同一人之手,這點後面談風險時會再回來。

同一段 compose,群暉版和威聯通版差在哪

要驗證「分品牌」是不是行銷話術,最快的辦法是把同一個服務的三份模板抓下來對照。我用 Jellyfin 的官方映像檔模板做了這件事,差異非常具體。

通用版的 volumes 沒有寫死路徑,生效的四個映射(config、媒體庫、快取、字體)全部用中括號佔位符標示,寫著這裡替換為你的 docker 資料存放目錄之類的說明,原文以簡體中文書寫,換成機器上的實際路徑是你的功課。群暉版則把答案直接寫死成 /volume1/docker/jellyfin/config,這是群暉第一個儲存集區的標準慣例;威聯通版換成 /share/Container/jellyfin/config,對應威聯通 Container Station 的慣例路徑。品牌版的價值就在路徑預填:省掉你查文件對路徑的功夫。

另外的差異在跨平台殘留。通用版附了一段 Rockchip 單板機專用的 device 註解區塊,以及給 unRAID 和 CasaOS 用的 labels;群暉版把這兩樣都拿掉,威聯通版保留 Rockchip 區塊、只拿掉 labels。反過來說,如果你拿通用版去餵群暉,多數時候也能動,只是要自己處理路徑。

我另外把模板替換路徑後丟給 docker compose config 做檔案層檢查,語法和結構都通過,唯一的警告是 version 欄位已經過時、新版 Compose 會直接忽略它。這代表模板的品質至少經得起官方驗證器,不是隨手貼的片段;不過這是檔案層的檢查,實際部署後的相容性仍取決於你的機型、架構和映像檔版本。

路徑、權限、連接埠:進模板前先讀的三份文件

如果只把這儲存庫當範本倉庫用,會漏掉它真正適合新手的部分。根目錄那幾份短文件,剛好對應新手容器起不來的三大死因。

volumes.md 用同一個 emby 例子把各家的路徑慣例排在一起對照:unRAID 的容器設定放 /mnt/user/appdata,群暉放 /volume1/docker,威聯通放 /share/Container。文件裡還提醒威聯通另一種寫法在網頁檔案總管看不到、不建議用,這種細節正是照抄教學會翻車的地方。它同時建議把每個容器的設定檔集中放同一個資料夾管理,理由留在 README 的 Docker 小知識段:容器壞了可以刪掉重建,映射好的設定還在。

uid_gid.md 講的是權限號碼。Linux 用 UID 和 GID 兩個數字辨識身分,不同品牌 NAS 第一個使用者的號碼不一樣,文件教你用 id 使用者名稱 這個指令實際查,還附了一張各品牌的對照表。模板裡常見的 PUID、PGID 環境變數填錯,容器就會讀不到檔案,這份文件把觀念補齊。

ports.md 整理的是各家 NAS 系統本身佔用的 WebUI、WebDAV、SSH 連接埠,部署容器前先避開這些系統埠,才不會搶走管理介面。三份文件加起來不到幾千字,卻是整個儲存庫裡 CP 值最高的部分。

84 行裡有 57 行是註解,這是賣點也是門檻

這套模板最與眾不同的地方是註解密度。我逐行數了前面那份 Jellyfin 模板:84 行裡有 57 行是註解,真正生效的設定只有 24 行。從 image 支援的架構、privileged 特權模式的後果、NVIDIA 顯卡要加哪些環境變數,到 volumes 每一行映射的用途,全部有中文說明。對想搞懂參數含義的人,這比多數教學文章完整。

jellyfin Docker Compose 模板原始碼,84 行中過半是中文註解說明每個參數Pin
jellyfin 模板幾乎每行參數都附中文註解(GitHub 官方頁面)

註解裡還藏了作者對 Docker 遷移的整套想法,值得單獨拿出來講。他的觀點是:容器的更新本質上是把舊容器刪掉、照同一份設定單重新部署一次,所以只要路徑映射做確實,所有該留下的資料都落在 NAS 的實際資料夾裡;哪天換機或搬家,把映射出來的資料夾打包帶走、在新機器上用同一份模板稍微改路徑,服務就能原樣回來。這也是他自述在群暉上偏好用 Docker 而非官方套件的原因:套件綁系統,容器跟著資料走。庫裡連 watchtower 這種自動更新容器的模板都收了,和這套遷移觀念剛好配套。

但閱讀成本也是真的。作者自己在簡介就寫了「文字量巨大,勸退預警」,懶得讀註解、只想快速把容器開起來的人,這套反而更慢。

幾個設計取捨要有意識地看待。模板以 host 網路模式為主,作者的理由是省掉連接埠映射、容器直接用主機網路;代價是容器之間少了一層隔離,port 全部暴露在區網。Jellyfin 這份還開了 privileged: true 特權模式,等於給容器接近主機等級的權限(模板對它只註明後果;硬體轉碼的線索在另一行 /dev/dri 裝置映射的註解);模板裡其實保留了註解掉的 ports 映射區塊,想改回比較收斂的跑法是有路的。這些選擇在家用 NAS 情境很常見,說不上錯,但你該知道自己是拿什麼換了什麼。

時區倒是虛驚一場。我檢查的這份模板環境變數寫 TZ=Asia/Shanghai,好在中港台同為 UTC+8,照抄時鐘一分不差;改成 Asia/Taipei 純粹讓設定名實相符,日後回頭看配置檔不會困惑。

照抄之前,先動手改三個地方

實際要拿模板起服務,建議按這個順序走一遍:

  • 時區換成 TZ=Asia/Taipei 是低成本的整潔:與 Asia/Shanghai 同為 UTC+8,不改時間也不會跑掉,但語意正確的設定日後維護省心。
  • 路徑全部檢查一次。品牌版的預填路徑是「慣例」不是「保證」,群暉多儲存集區的機器就不一定在 volume1,改完再部署。
  • 過濾掉踩線模板。庫裡以名稱比對,Emby 開心版有 8 份品牌複本,思源筆記免登入版更有兩個鏡像變體共 16 份,合計 24 份、約佔全部的百分之 1.6,特殊版本資料夾還收了 KMS 啟用伺服器和 IPTV 直播源取得工具。這些在授權上站不住腳,自己要心裡有數;好消息是它們終究是少數,Jellyfin、watchtower、draw.io、Adminer 這些正當主流才是主體。

管理面板可以按喜好選。作者自述偏好用 dpanel 或 Portainer 來編排這些模板,並提醒 Portainer 的中文化社群映像檔已停止維護,建議回官方版本;dpanel 的教學文件還附了阿里雲的加速映像來源,這明顯是為中國網路環境寫的,台灣用戶直接拉 Docker Hub 就好。若想比較其他管理面板的選擇,可以看我們先前寫過的 Dockhand Docker 管理面板介紹

單人維護的專案,活躍和風險一起看

4,793 次 commit 裡 4,778 次是作者本人,另外兩位貢獻者合計 15 次。這種一人專案的好處是風格一致、更新勤快,從 2024 年 6 月到 2026 年 8 月從沒冷卻太久;壞處是所有維護都壓在同一個人身上,作者哪天不玩了就沒有人接手。

不過看更新紀錄,這個人對細節的在意程度超出一般整理包。他會在 changelog 裡逐條追蹤各家系統的 compose 編輯器體驗:飛牛OS 的文字編輯框不能全螢幕被他連續抱怨了兩次,dpanel 能不能最大化視窗也記了一筆,還有飛牛 unless-stopped 重啟策略的相容問題,從 2025 年 4 月被記下到 2026 年 8 月宣布解決的整段過程。這些碎念對讀者其實是情報,等於有人替你把各品牌 Docker 環境的地雷先踩過一輪。

而模板庫的風險性質和線上服務不同。它是靜態文件,沒有後端會倒:就算明天停止更新,你手上的 yml 一樣能繼續用,最壞情況是新的應用版本不再有模板可抄。真正會過期的是裡面引用的映像檔 tag 和參數慣例,這本來就要靠使用的人自己盯。

授權是 AGPL-3.0。單純下載模板部署服務,授權對你沒有影響;但如果改寫模板再散佈,就要照 AGPL 的規矩提供原始內容。拿它當公司內部部署起點通常沒問題,要包進產品裡請先想清楚。

誰該把它加進書籤

適合的讀者輪廓很明確:家裡有 NAS、剛開始碰 Docker、想看懂每行參數在幹嘛的人。群暉和威聯通用戶尤其划算,專屬資料夾把最煩的路徑問題先解掉一半,配著 volumes.md 交叉查很快就上手。在媒體庫情境打轉的人,模板裡 Jellyfin 相關的變體特別齊,搭配我們介紹過的 Kinby 播放器 可以把整套自架影音鏈補完;玩 Rockchip 單板機的也有專屬資料夾可翻,更新紀錄顯示作者還為 RK3588 裝置補過呼叫 NPU 做相簿 AI 辨識的特製模板。

不需要它的也大有人在。只想按一個按鈕裝好用,品牌套件中心或社群商店體驗更順;完全不想讀註解的人,這 57 行說明只會礙眼。另外它畢竟是為中國自架圈寫的,飛牛OS、鐵威馬、萬由這些資料夾對台灣用戶參考價值低,別被目錄數量嚇到。

第一步很單純:打開儲存庫,先讀 README 和 volumes.md,再到你的品牌資料夾挑一份服務,複製進你慣用的管理面板,把中括號佔位符換成實際路徑,時區改掉,部署前用 docker compose config 過一遍。第一個容器跑起來之後,剩下的就是照字典查下一個服務了。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1352

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...