Skip to content

Homelab

我的 Homelab 不是为了堆设备,而是为了把平台工程、自托管服务、持续交付和真实运维问题放进一个自己能长期维护的环境里。

相比把它做成一套“参数很好看”的家用机房,我更把它当成一个长期的探索现场:网络怎么接、服务怎么放、交付链路怎么跑、当现实约束变化时架构要怎么改。

我把这套 Homelab 当成什么

这也是我一直保留 Homelab 页面,而不是只写项目页的原因。很多判断在单个项目里看不出来,只有把服务真的跑起来、迁过一轮、踩过网络和成本的坑,平台工程的感觉才会立住。

其中最值得单独拎出来看的,是我在这套环境里跑过的 CI/CD。它最能体现的不是“会不会某个工具”,而是我能不能把代码、镜像、GitOps 和集群部署串成完整闭环。这个部分我单独写在了 CI/CD 演进

演进路线

阶段 1:Suzhou Home,高配本地一体化

早期我用 Ryzen 7 PRO 6850H / 96GB RAMPVE / Bare Metal 之间按需切换,尽量把平台能力都拉回本地验证。那时更像是在回答一个问题:本地能不能完整跑起一条像样的平台链路。

  • 跑过 Kubernetes 主从、PostgreSQL 主从、OpenWrtiKuai
  • 实践过 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

  • 本地保留 SynologyRouteOSMosDNS + MihomoPostgreSQLFRPC
  • 轻量 k3sCloudflare TunnelOpenWebUIHome AssistantVaultTraefik
  • 继续用这套更受限的环境尝试 Argo CD / GitOps

这个阶段开始让我更关注“什么必须留在本地”,而不是“什么都能放本地”。

阶段 3:Cloud VPS,承担公网与协同职责

接着我把一部分职责交给云端,让公网访问、镜像分发、GitOps 和外部协同不再过度依赖家庭网络。

  • Aliyun 华东 2(上海)2C512MFRPS
  • Oracle AMD 1H1GDockerTraefikRegistry 中继、Watchtower、探针、baihu
  • Oracle ARM 4H24G 跑单节点 KubernetesArgo CDMinIOPostgreSQL
  • 在部分场景里继续比较 Supabase PostgreSQLCloudflare R2

到这里,Homelab 的主题就从“本地一体化”变成了“本地与云端怎么更合理地协作”。

现在的结构,一眼看懂

现在这套环境可以简单理解成三层:

  • 本地核心层:家庭网络、局域网体验、私有数据和必须贴近本地的基础能力
  • 轻量集群层:低风险服务、Kubernetes 练习和 GitOps 尝试
  • 云端协同层:公网入口、镜像分发、交付链路和更适合放在外部的工作负载

我持续在这里验证什么

  • 访问路径怎么补位Cloudflare TunnelFRPIPv6Tailscale 不是替代关系,而是互相补位
  • 服务边界怎么判断:家庭网络和私有数据优先留本地,对外服务和协同能力优先上云
  • 交付链路怎么迁移:从 Gitea / Jenkins / Harbor 逐步转向 GitHub Actions / Registry / Argo CD
  • 运维成本怎么收敛:功耗、预算、机器数量和故障面,往往比“再多一台机器”更重要

继续看