文接上題,關於筆電的問題,我想聊聊老夥伴的下落(聽起來有夠可怕)。
Home server、Homelab、自架、self-host、很多種稱呼方法,但我的理解總歸來講就是架一台長期運轉的電腦來運行自己想要的服務,而這些服務可以包含各種面向、各種功能,Gmail一樣的信箱、1passward一樣的密碼管理器、Netflix一樣的影音串流平台,還有很多CI/CD相關的功能(我用不太到)
不過在這個Google服務包羅萬象,連上的時代下,為什麼要花費心思去搞自架呢? 對其他人來講,或許是資訊自主、或許是隱私、或許是反抗Big tech。但對我來講,其實就是好玩。
我將Linux作為日常生活的主要作業系統應該已經有一年了,其中摸爬滾打試錯的經驗也讓我對於純cli環境的恐懼下降了不少,感覺自己可以挑戰,server版的ubuntu作為homelab的OS,再加上dolphin這個超級優秀的檔案管理器可以輕鬆的透過sftp或fish連接到遠端電腦透過GUI管理檔案,讓整個過程變得更加容易。
(題外話:以前以ubuntu Desktop作為主力,但是發現他不斷的在後台執行我不知道的更新,導致我時不時早上一開機就lost掉聲卡驅動,某天我受不了再一直debug聲卡,就直接換了個distro,現在在CachyOS。)
(題題外話:以前我曾經使用舊的台式機安裝TrueNas,後來因為耗電、穩定性、設定彈性相關的因素而放棄。)
硬體配置 #
這篇文章並不是homelab的教學就不深入如何架設,主要是想談談一些考 量、體驗、以及分享(自滿)現在我在server上裝了哪些服務。
首先,我使用作為大腦的電腦是我的前夥伴Thinkpad X270拆除CMOS、外接、內接電池(預防電池膨脹,僅只用外接電源),雖然是十分古老的筆電,但是作為個人用homelab的主機還是是綽綽有餘的,甚至可以跑immich的機器學習進行人臉辨識(i3-6300u:殺了我……)
另外作為server的主要儲存裝置,購買了一些舊的HDD和拆除了沒怎麼使用的HDD來建構,實際總計是3.0TB。為了利用這些硬碟,考量到時間與成本,我購買了DigiFusion伽利略 35D-U3ES,四個盤位,獨立電源,USB連接到機器上。
肯定會有人說會有更好的選擇,對,我知道,但考量到我的時間有限等不了東西送來,我只好跑去光南現場買。實際上整個都正常,這樣就很夠了,不過也要考量到的是,或許是板載晶片的問題,沒有辦法為每個硬碟跑SMART測試。
系統配置 #
如前所述,安裝的是ubuntu 24.04 LTS server edition,儲存方面則是將1TB+1TB+500GB+500GB的硬碟建立btrfs,再組成兩組1TB+500GB的raid1,每當A組寫入時B組也會寫入同樣的資料。接著掛載到/mnt/storage,這樣就完成了1.5TB的儲存空間。
接下來就是好玩的安裝服務時間了
WTM裝爆docker #
多虧於現代CI/CD技術的發達,決大多數主流服務都可以透過一個簡單的docker-compose檔案完成部屬。
- Nextcloud:雲端儲存,儲存一些重要的檔案文件檔案。
- Jellyfin:各種電影、電視劇、動作片。
- Komga:漫畫。
- Lanraragi:漫畫
- Home Assistant:智慧家居,目前只用於wake on lan,未來可以加入小米智慧插座。
- Portainer:管理docker,視覺化管理十分方便
- Immich:相簿管理,類似google相簿,還有地圖、時間軸、人臉辨識等功能
- TubeArchivist:Youtube儲存。
- Stirling-pdf:各種pdf工具。
- Vaultwarden:密碼管理器。
- Tailscale:內網穿透,確保可以在外網安全的使用內網服務。
- Homepage:高度自訂化的儀表板,可以展示可用的服務與透過小工具(widget)觀察服務的狀態。
- Caddy:用於路由控制,我其實還沒有很懂,更多是因為vaultwarden要求https加密才使用的。
其他還有一些系統監控的工具,就不細緻說明,很多工具再Ivon的部落格有提到,我也經常去那裡找有趣的應用,十分推薦。
Nexcloud外部儲存與卷(volumn) #
在自架的過程中我學到最多的就是關於docker-compose的配置,你會驚嘆於一個簡單的yml檔案可以串連起這麼多服務。比方說:我希望我可以在Nextcloud的介面中管理照片資源,也希望可以在Immich相簿中檢視,這時候我就可以建立一個專門用來在服務之間分享資源的資料夾,然後將這個分享資料夾同時掛載在Nextcloud與Immich下,這樣兩個服務就可以同時存取同個資料夾的資源。
小節 #
我覺得我能夠在這個時間點接受並使用Linux,有不少需要歸功於AI。如果在過去遇到問題,很多時候只能夠在網路上搜尋並祈禱有人遇到跟你一樣的問題,這很多時候受限於我對於這個領域的知識。沒有足夠的知識我就無法問出一個有效的問題,沒辦法問出有效的問題就很難找到相關的資訊,問出的問題很糟也會造成論壇上的回答者因為缺乏問題的資訊而懶得回答。
AI就讓這個過程輕鬆,我可以在沒有壓力的情況下獲得即時的回饋,不必擔心問出糟糕的問題、找不到答案。當然還是得提醒的是不要AI說什麼你就往你的Terminal貼什麼,我曾因為這樣意外的刪除了我的GUI,花了一個下午才裝回來(還是靠AI)。
題外話 #
作為台灣人不可能不知道乖乖在穩定機器中所扮演的重要角色,而近日我回家時發現主機關機了並且開不起來,我的第一反應就是拿起乖乖……摁過期了。
果然乖彌賽亞是存在的。