[控场AI]
· 7 分钟阅读· 3,816 字

一套完整的Proxmox家庭实验室架构拆解:50+自托管服务实战

一套完整的Proxmox家庭实验室架构拆解:50+自托管服务实战

一套以Proxmox为底座、GitOps流水线驱动的家庭实验室,兼顾日常生产服务与IaC灾备演练。

这篇文章介绍了一套真实的家庭实验室配置,底层以Proxmox统一虚拟化,通过Forgejo、Komodo和Traefik构建GitOps式容器部署链路。作者将50余个服务按实际使用频率诚实分层:每日高频使用的生产应用(含Open WebUI等AI工具)、后台默默运行的自动化管道、以及"登录即出问题"的基础设施层(涵盖CrowdSec、Wazuh等完整安全可观测性体系)。网络层由独立的Beelink迷你主机运行OPNsense软路由,智能家居则集中在Saturn节点并实现本地语音处理。三台空置节点配合OpenTofu与Ansible,专门用于灾难恢复演练和Kubernetes/OpenStack技术栈学习,体现出鲜明的学习导向工程思维。

一个真实的家庭实验室长什么样

在自托管(self-hosting)圈子里,经常有人晒出自己运行的服务清单,但往往停留在"堆软件"的层面。一位 Reddit 用户分享的家庭实验室(homelab)配置却提供了更有参考价值的视角——它既承担了家庭日常服务,又兼作学习新技术的试验场,并且难得地诚实区分了"真正在用"和"只是摆着"的服务。

这套环境的底层统一采用 Proxmox 作为虚拟化平台(hypervisor),上层用 Debian 虚拟机运行 Docker 和 Komodo 进行容器编排。更有意思的是它的部署流水线:Forgejo(自托管 Git)负责代码托管,Komodo 读取并部署容器,而 Docker 标签(labels)则驱动 Traefik 完成反向代理和服务暴露。整条链路是一套可复现、可版本化的 GitOps 式工作流,这在家庭环境中已经相当专业。

GitOps 是一种将 Git 仓库作为系统"唯一事实来源"的运维范式:所有基础设施和应用配置以代码形式存储在 Git 中,部署动作由代码变更自动触发,而非手动执行命令。其核心优势在于可审计(每次变更都有 commit 记录)、可回滚(回退到任意历史版本)、可复现(新机器可以从同一份代码重建出相同环境)。在企业级 Kubernetes 场景中,ArgoCD 和 Flux 是主流的 GitOps 工具;而这套家庭实验室用 Forgejo + Komodo 实现了类似效果——开发者推送配置变更到 Git,Komodo 监听仓库并自动拉取最新配置完成容器部署,Traefik 则通过读取容器标签动态更新路由规则,整条链路无需人工介入。

reddit source: What I run

主力服务器 Jupiter:production 级的日常负载

作者把名为 Jupiter 的主机称为家里的"生产环境"。这台机器原本跑的是 Unraid,几周前才统一迁移到 Proxmox + Debian VM 的架构,从而与整个环境保持一致。

值得借鉴的是作者的分类方式。面对"你真的用得上这么多软件吗"这个自托管玩家的经典灵魂拷问,他把服务明确分成几档:

每天/每周真正在用的

这一档是实验室价值的核心所在,包括 Authentik(SSO 统一身份认证)、Immich(照片库,Google Photos 的开源替代)、Plex(媒体服务器)、Open WebUI(AI 聊天前端)、OpenHands(AI 智能体)、Mealie(菜谱管理)、Outline(知识库 Wiki)、Penpot(设计工具)、Forgejo(Git)以及 Windmill(工作流自动化)等近 20 个应用。

可以看到,AI 相关工具已经进入日常高频使用列表。Open WebUI 搭配 OpenHands,意味着本地大模型对话与自动化智能体正在成为家庭实验室的标配,而不再是尝鲜玩具。

间接使用的后端服务

Grafana、Paperless-ngx(文档管理)、Prowlarr/Radarr/Sonarr(媒体自动化套件,即 *arr 全家桶)、Tautulli(Plex 统计)等属于"用户不直接点开,但一直在后台支撑体验"的类型。这类服务恰恰体现了一个成熟实验室的分层思维——前台应用依赖一整套隐形的自动化管道。

基础设施层:登录即意味着出了问题

作者对基础设施类应用的描述很有意思:"如果我需要直接登录这些东西,说明某处坏了。lol"

这一层包括 Traefik(反向代理)、Komodo(容器管理)、CrowdSec(入侵防护)、Wazuh(SIEM 安全信息与事件管理)、VictoriaMetrics(指标数据库)、Beszel 与 Node Exporter(监控)、Backrest(备份)、Umami(网站分析)以及 VersityGW(S3 网关)等。

从 CrowdSec 到 Wazuh,再到完整的指标采集与备份方案,这套安全与可观测性组合已经接近小型企业的标准。对于想系统学习 DevOps 和 SRE 的人来说,这是一份很实用的技术栈清单。作者也坦率承认有几个服务(如 Actual Budget 预算、Navidrome 音乐流媒体、Lidarr 等)"大概该拆掉了"——这种对技术债的清醒认知同样值得学习。

CrowdSec 是一款协作式入侵防护系统(IPS),它分析日志中的异常行为模式(如暴力破解、端口扫描),在本地拦截攻击的同时,将威胁情报匿名共享到社区,使所有用户共同受益于全球攻击者 IP 黑名单。Wazuh 则是一套开源 SIEM(安全信息与事件管理)平台,负责收集、关联和分析来自各主机的安全日志,提供文件完整性监控、漏洞检测和合规审计等能力。VictoriaMetrics 是 Prometheus 兼容的高性能时序数据库,相比原生 Prometheus 在大规模指标存储场景下内存占用更低、查询更快,常作为 Prometheus 的长期存储后端与 Grafana 搭配使用。这三者的组合覆盖了"防御-检测-可观测"的完整安全运维闭环。

Saturn 与 Mars:职责分明的专用节点

Saturn 是环境中第一台 Proxmox 主机,最初用于开 VM 测试和培训初级同事,后来演变成智能家居与开发中枢。它运行 Home Assistant(家庭自动化)、Music Assistant(多房间音频)、Z-Wave JS UI、Mosquitto(MQTT 消息代理),以及 Faster Whisper(语音转文字)和 Piper(文字转语音)这两个本地语音组件——后两者让语音助手完全摆脱云端依赖。

Mars 则是一台配备双 2.5 Gbps 网卡的 Beelink EQ14 迷你主机,专门作为软路由/防火墙,运行 OPNsense、Technitium DNS(主 DNS)、Cloudflare DDNS 和 Tailscale(作为 VPN 出口节点)。把路由防火墙独立成专用硬件,而不是和其他负载混跑,是提升网络稳定性的明智选择。

OPNsense 是基于 FreeBSD 的开源防火墙与路由操作系统,提供状态防火墙、流量整形、入侵检测(Suricata 集成)、VPN 等企业级网络功能,是家庭实验室中替代商业路由器的主流选择。Tailscale 基于 WireGuard 协议构建,能在任意设备间建立点对点加密隧道,并通过中继服务器(DERP)穿透 NAT,使家庭网络中的设备可以被远程安全访问。将 Tailscale 部署在独立的 Mars 节点上作为"出口节点"(exit node),意味着其他设备的流量可以经由家庭网络出口,实现远程访问内网服务的同时,也充当轻量级 VPN 网关。Technitium DNS 则是一款自托管的全功能 DNS 服务器,支持 DNS-over-HTTPS、广告过滤和自定义解析规则,使内网域名解析完全受自己掌控。

空置的 DR 节点与 IaC 实践

最能体现这套实验室"学习导向"属性的,是另外三台命名为 Uranus、Neptune、Pluto 的新主机。它们同样跑 Proxmox,但平时保持空置,专门用于灾难恢复(DR)和技术栈演练。

作者通过 OpenTofu(Terraform 的开源分支)和 Ansible 编写的 playbook,可以按需拉起不同的"场景"或"DR 气泡",目前聚焦于 OpenStack、Kubernetes 以及各类业务仿真环境。这种"基础设施即代码"(IaC)加"可随时销毁重建的演练环境"的组合,正是现代云原生工程师的核心训练方式。

基础设施即代码(Infrastructure as Code,IaC)是指用声明式或命令式代码描述服务器、网络、存储等基础设施的期望状态,并通过工具自动将现实环境收敛到该状态。OpenTofu 是 HashiCorp Terraform 的开源社区分支(因 Terraform 在 2023 年修改许可证为 BSL 而诞生),语法与 Terraform 完全兼容,可用于声明虚拟机、网络、存储等资源的创建与销毁。Ansible 则是一款无需在目标机器上安装 Agent 的自动化配置工具,通过 SSH 执行 playbook(任务剧本)完成软件安装、配置文件分发、服务启停等操作。两者通常配合使用:OpenTofu 负责"有没有这台机器",Ansible 负责"这台机器里装了什么、怎么配置"。这种组合使得整套演练环境可以在数分钟内从零拉起,也可以一键销毁,极大降低了反复试验的成本。

这套配置给自托管玩家的启发

抛开服务数量不谈,这套实验室真正值得学习的是它的工程化思维:统一的虚拟化底座、GitOps 式的部署链路、清晰的服务分层、完善的监控与安全体系,以及用 IaC 管理的弹性演练环境。

对于正在搭建自己家庭实验室的人,几点可以直接借鉴:一是用 Proxmox 统一环境降低维护成本;二是像作者那样诚实审视每个服务的实际使用率,及时清理技术债;三是尽早引入监控、备份与 IaC,把实验室当作真正的工程项目来经营,而非软件的随意堆砌。

分享:

相关推荐