![]()
「我現在有47個服務在跑,但說實話,其中至少15個我根本想不起來是干嘛的。」這是Dhruv Bhutani在整理自家Homelab時的原話。一個從2008年就開始寫科技評論的老炮,被自己的玩具逼到周末加班——這事本身就夠諷刺。
Homelab玩家的困境從來不是技術門檻,而是規模膨脹后的失控感。你裝了個NAS,又加了臺軟路由,順手跑起Plex,然后Jellyfin、Nextcloud、Pi-hole、Home Assistant像野草一樣長出來。每臺機器各自為政,服務散落在不同IP和端口,最終變成一張沒人能看懂的拓撲圖。
Bhutani的轉折點發生在某個周日下午。他盯著三臺服務器上的容器列表,突然意識到自己連「哪些服務還活著」都需要逐個SSH進去確認。這不是技術問題,是信息架構的崩塌——就像手機里有200個App,但主屏幕只有一頁文件夾。
Homepage是什么:不是監控面板,是服務目錄
他找到的解藥叫Homepage,一個開源的靜態站點生成器,專門給自托管玩家做「服務導航頁」。和Grafana、Uptime Kuma這類工具不同,它不畫曲線圖、不報CPU溫度,只干一件事:把你所有服務的入口、狀態、基本信息,整整齊齊擺在一個頁面上。
Bhutani的需求很明確:「我要的是一眼能看懂,不是一份需要解讀的報告。」這話說出了很多玩家的痛點——現有工具太像機房運維視角,而Homelab需要的是「客廳遙控器」視角。
Homepage的配置完全靠一個YAML文件。服務名稱、圖標、URL、描述、甚至自定義的API狀態檢查,全部手寫進去。聽起來原始,但勝在透明可控。Bhutani花了大約兩小時,把47個服務分門別類:媒體服務、開發工具、網絡基礎設施、智能家居、實驗性項目。
分類本身就有價值。他發現自己有三個功能重疊的RSS閱讀器,兩個常年不用的Wiki系統,還有一個完全想不起用途的Python容器。整理即審計,這是意外收獲。
為什么偏偏是Homepage:四個設計決策
Bhutani總結了四個讓他留下的原因,每個都指向同類產品的常見短板。
第一,零依賴的輕量化。Homepage是靜態站點,扔在Nginx或Caddy后面就能跑,不需要數據庫,不需要Redis,不需要考慮備份策略。對比Heimdall、Organizr這類需要MySQL的競品,它更像一個配置文件而不是一個系統。
第二,狀態指示的克制。它可以配簡單的ping檢查或API探活,用綠點黃點紅點表示服務狀態,但不追求Prometheus級別的精度。Bhutani認為這剛剛好:「我知道Jellyfin掛了,這就夠了,我不需要知道是內存溢出還是磁盤滿了。」
第三,視覺系統的統一。Homepage內置了數百個服務的官方圖標,支持深色/淺色模式自動切換,布局用Tailwind CSS實現響應式。Bhutani特別提到「它看起來不像2003年的cPanel」,這對每天打開幾十次的頁面很重要。
第四,擴展的開放性。雖然核心是靜態的,但它支持widget機制,可以嵌入Jellyfin的最近播放、Plex的當前會話、Pi-hole的攔截統計等實時數據。這些widget通過服務端API代理獲取數據,不暴露前端直接請求。
從工具到習慣:可視化改變行為
安裝Homepage一周后,Bhutani注意到自己的行為模式變了。以前裝新服務是「docker run完就忘」,現在他會先想好分類、圖標、描述,再寫進配置。這個 friction(摩擦點)反而成了質量門檻——「如果懶得寫三行YAML,說明這服務也沒必要跑。」
更意外的是故障響應速度。以前服務宕機可能要等幾天才發現,現在首頁的紅點像傷口一樣顯眼。Bhutani甚至給關鍵服務加了Pushover推送,但他說實際很少用到:「可視化本身就有提醒作用,你總會忍不住刷新那個頁面。」
這種「可見性即治理」的邏輯,在企業IT里叫可觀測性(Observability),在Homelab場景下被簡化為「一張看得懂的地圖」。Bhutani的類比很精準:「以前我的Homelab是地下城,現在終于有了小地圖。」
關于多服務器架構,Homepage也有巧妙應對。Bhutani的三臺機器分別跑在不同網段,他通過Tailscale組網,讓Homepage容器能內網訪問所有服務的API。對外只暴露Homepage一個入口,配合Authelia做統一認證,既解決導航問題,也收緊了攻擊面。
局限與替代方案
Bhutani沒有回避Homepage的短板。配置完全手寫意味著沒有拖拽界面,對YAML縮進敏感的人會痛苦。服務狀態檢查是簡單的HTTP/TCP探測,做不了應用層深度檢測。沒有內置的日志聚合,故障排查仍需跳轉到專業工具。
他對比了幾個主流替代:Heimdall功能更豐富但依賴更重;Organizr有用戶系統但配置復雜;Flame極簡但擴展性差;Dashy可視化編輯但性能開銷大。最終選擇Homepage,是「足夠好」而非「最好」——這本身也是Homelab哲學的體現:用最小可行方案解決問題,拒絕過度工程。
一個細節值得玩味:Bhutani在配置里給每個服務寫了human-readable的描述,比如「Plex:給爸媽用的電影庫,不要升級」。這些注釋對其他人無用,但三個月后回看,恰好解釋了某個容器為什么停在舊版本。可視化不僅是技術行為,也是給未來的自己寫備忘錄。
整理完的周末晚上,Bhutani盯著那個整齊的首頁看了很久。47個服務,8個分類,全部可控可解釋。他想起自己2008年寫的第一篇科技評論,講的是怎么給Windows Mobile裝第三方ROM——那時候折騰是為了功能,現在折騰是為了秩序。十六年后的這個頁面,某種程度上是同一沖動的不同形態。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.