Homelab
我的 Homelab 不是为了堆设备,而是为了把平台工程、自托管服务、持续交付和真实运维问题放进一个自己能长期维护的环境里。
相比把它做成一套“参数很好看”的家用机房,我更把它当成一个长期的探索现场:网络怎么接、服务怎么放、交付链路怎么跑、当现实约束变化时架构要怎么改。
我把这套 Homelab 当成什么
这也是我一直保留 Homelab 页面,而不是只写项目页的原因。很多判断在单个项目里看不出来,只有把服务真的跑起来、迁过一轮、踩过网络和成本的坑,平台工程的感觉才会立住。
其中最值得单独拎出来看的,是我在这套环境里跑过的 CI/CD。它最能体现的不是“会不会某个工具”,而是我能不能把代码、镜像、GitOps 和集群部署串成完整闭环。这个部分我单独写在了 CI/CD 演进。
演进路线
阶段 1:Suzhou Home,高配本地一体化
早期我用 Ryzen 7 PRO 6850H / 96GB RAM 在 PVE / Bare Metal 之间按需切换,尽量把平台能力都拉回本地验证。那时更像是在回答一个问题:本地能不能完整跑起一条像样的平台链路。
- 跑过
Kubernetes主从、PostgreSQL主从、OpenWrt、iKuai - 实践过
HashiCorp Vault HA、自动解封、Synology + NFS CSI - 跑过
Gitea -> Jenkins -> Harbor (Trivy) -> Argo CD -> local.k8s - 用
Prometheus + Grafana去看整套集群和 Pods
阶段 2:Suzhou Home,低功耗收缩
后来硬件价格、成本和功耗压力让我不再追求本地继续堆高配,而是开始把 Homelab 收缩成更现实的样子:Intel N200 做本地核心,RK3566 x2 做轻量 k3s。
- 本地保留
Synology、RouteOS、MosDNS + Mihomo、PostgreSQL、FRPC - 轻量
k3s放Cloudflare Tunnel、OpenWebUI、Home Assistant、Vault、Traefik - 继续用这套更受限的环境尝试
Argo CD / GitOps
这个阶段开始让我更关注“什么必须留在本地”,而不是“什么都能放本地”。
阶段 3:Cloud VPS,承担公网与协同职责
接着我把一部分职责交给云端,让公网访问、镜像分发、GitOps 和外部协同不再过度依赖家庭网络。
Aliyun 华东 2(上海)2C512M跑FRPSOracle AMD 1H1G跑Docker、Traefik、Registry中继、Watchtower、探针、baihuOracle ARM 4H24G跑单节点Kubernetes、Argo CD、MinIO、PostgreSQL- 在部分场景里继续比较
Supabase PostgreSQL和Cloudflare R2
到这里,Homelab 的主题就从“本地一体化”变成了“本地与云端怎么更合理地协作”。
现在的结构,一眼看懂
现在这套环境可以简单理解成三层:
- 本地核心层:家庭网络、局域网体验、私有数据和必须贴近本地的基础能力
- 轻量集群层:低风险服务、Kubernetes 练习和 GitOps 尝试
- 云端协同层:公网入口、镜像分发、交付链路和更适合放在外部的工作负载
我持续在这里验证什么
- 访问路径怎么补位:
Cloudflare Tunnel、FRP、IPv6和Tailscale不是替代关系,而是互相补位 - 服务边界怎么判断:家庭网络和私有数据优先留本地,对外服务和协同能力优先上云
- 交付链路怎么迁移:从
Gitea / Jenkins / Harbor逐步转向GitHub Actions / Registry / Argo CD - 运维成本怎么收敛:功耗、预算、机器数量和故障面,往往比“再多一台机器”更重要