把一台二手桌機改裝成 24/7 運行的家用伺服器,累積 Linux 維運、容器化部署、網路架構的實戰經驗。整個專案以三階段推進:NAS(檔案與照片儲存)→ AI 生活助理(Telegram Bot)→ 監視器(門口 NVR,規劃中)。
作業系統與服務部署
- Debian 13 minimal 安裝:不用桌面環境、不用整合式 NAS 面板(如 TrueNAS SCALE、OMV),優先把記憶體留給實際跑的服務,並保留 Docker 容器化部署的彈性與可控性。
- 各項服務(照片庫、Bot、監控)皆以 Docker Compose 個別容器化管理,方便單一服務故障時獨立重啟、不影響其他服務。
網路架構總覽
這台主機不是掛在一般能直接連進來的網路位置——實測發現我家對外其實被「包了兩層」,路由器後面還有電信商自己的一層 NAT。等於我只管得到自家路由器這道門,外面那道大門的鑰匙根本不在我手上,傳統「開個 port 讓外面找到我」的做法完全行不通。
後來改用 Tailscale,概念有點像每台裝置都帶著一支對講機,不管人在哪一層、哪道門後面,裝置之間可以直接互相喊到彼此,不用真的把大門打開。手機、筆電各自拿一把鑰匙,哪天筆電弄丟了,收回那把鑰匙就好,不影響其他裝置。
主機裡照片庫、Bot、監控這幾個服務,各自用 Docker 獨立跑在自己的容器裡,有點像家裡每個房間都有自己的電源開關——哪個房間跳電,不會拖累其他房間,重開一個服務也不會動到別人。
至於「主機到底有沒有在正常運作」這件事,不能只靠它自己說「我很好」,因為真的掛掉的時候,它自己也沒辦法通知你。所以另外找了一個外部服務,定期問一聲「你還在嗎」,太久沒回應就會通知我——等於幫這台主機找了個不住同一棟樓的鄰居,順便幫忙看家。
這個專案底下的其他項目

