為什麼 Home Lab 要容器化?
裸機直接 apt install 很快,但半年後常變成「不敢重裝的雪花主機」。
Docker Compose 的價值是:
- 可重現:換機器也能起相同堆疊
- 可隔離:服務依賴不互相污染
- 可備份:資料卷與設定檔邊界清楚
最小目錄配置
homelab/
compose.yml
.env
data/
app-a/
app-b/
config/
原則:
- 設定進 Git(去掉密鑰)
- 資料卷在
data/(進備份,不進 Git) - 一服務一資料夾,避免混放
範例:一個 Web + 一個 DB
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./config/nginx:/etc/nginx/conf.d:ro
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_password: ${POSTGRES_PASSWORD}
volumes:
- ./data/postgres:/var/lib/postgresql/data
restart: unless-stopped
密鑰放
.env,不要寫進文章或公開 repo。
網路與安全底線
- 不要把管理埠直接曝在公網
- 需要外網時:反代 + TLS(或 Cloudflare Tunnel 等)
- 服務間用 compose 內部網路,只暴露必要 port
- 定期更新 image 與主機系統
和 AI / 硬體的關係
- 本地 LLM、RAG 常跑在同一台 Mini PC:先看硬體是否扛得住記憶體。
- 選機可參考 N100 Mini PC 選購重點。
- 模型服務起來後,再疊 本地 RAG。
備份三件事
| 項目 | 建議 |
|---|---|
| 設定檔 | Git + 私有遠端 |
| 資料卷 | 定期快照 / rsync 到 NAS |
| 還原演練 | 至少半年做一次「空機拉起」 |
總結
Home lab 的成熟度,不在於服務數量,而在於 換機能否一天內恢復。
Compose 是最低成本達到「可重現」的起點。