我不维护我的家庭实验室
摘要
作者描述了如何通过一台服务器、UniFi网络设备和Docker容器,搭配定时更新和备份,实现了家庭实验室的自动化,使其几乎无需手动维护。
暂无内容
查看缓存全文
缓存时间: 2026/07/01 10:58
# 我不维护我的家庭实验室
来源:https://cleberg.net/blog/homelab-maintenance.html
2026-06-26
我不维护我的家庭实验室……它自己维护自己。
## 目录
- 1. 基础设施
- 1.1. 服务器
- 1.2. 网络
- 2. 软件
- 3. 结果
没错。我**不**维护我的家庭实验室……它自己维护自己。
我达到极乐境界了吗?这是家庭实验室爱好者的终极目标吗?似乎我通过构建一个弹性十足的家庭实验室,不知不觉地让自己“失业”(还是“失乐”?)了。
让我们来看看这一切是哪里“走偏”的。
## 1. 基础设施
### 1.1. 服务器
过去几年我用过几台不同的服务器,但后来把所有服务都整合到了一台服务器上(构建指南见这里),从而降低了环境的复杂度。
因为单服务器设置,维护工作量下降了75%(从四台服务器变为一台)。没错,集群、虚拟机管理程序、混合云解决方案确实光鲜亮丽而且流行,但我不喜欢。相反,我只有一台放在地下室、可以直接用手拿起来的金属盒子。
我*确实*还有另一台“服务器”:一个树莓派 4,但它运行 Home Assistant OS,能自动更新,并且简直**零**维护。那真的算服务器吗?按技术定义来说大概算吧。但我完全没那个感觉;它更像是我把一个潜在的服务器设备,转变成了一个自给自足的 IoT 设备。
### 1.2. 网络
除了服务器本身,我还有一组 UniFi 设备组成的小型机架(服务器也在同一个机架里)。一台 UniFi Dream Machine Pro、一个交换机、还有几个无线接入点,构成了我家地下室的“个人数据中心”。
同样,它们也基本自我维护。UniFi 支持自动更新和定时更新,让你完全无需手动维护硬件。UniFi 真是个“一次设置,永不操心”的平台。
## 2. 软件
我的服务器上只有一行 crontab,每周自动更新所有 Docker 服务。
而这些命令的别名是:
```bash
for d in ~/docker/*/; do (cd "$d" && sudo docker compose pull && sudo docker compose up -d); done
```
我还在 `root` 用户下跑了一些定时任务,以处理权限问题。说实话,这些任务其实只是用来备份的。我从未真正需要恢复备份,但安全起见,有备无患。
```bash
# 生成每日系统报告
0 8 * * * /home/cmc/daily_sys_report.sh
# 备份
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
## 应用感知的数据库导出
45 1 * * * mkdir -p /tank/cloud/server/backups/immich && sudo docker exec -t immich_postgres pg_dumpall -U postgres > /tank/cloud/server/backups/immich/immich-postgres-$(date +\%F).sql
50 1 * * * mkdir -p /tank/cloud/server/backups/piped && sudo docker exec -t piped-postgres pg_dumpall -U piped > /tank/cloud/server/backups/piped/piped-postgres-$(date +\%F).sql
## 备份文件到 ZFS 存储池
0 2 * * * rsync -aHAX --delete /var/lib/plexmediaserver/ /tank/cloud/plexmediaserver/
5 2 * * * rsync -aHAX --delete /var/www/ /tank/cloud/server/web_server/
10 2 * * * rsync -aHAX --delete /etc/nginx/ /tank/cloud/server/nginx/
15 2 * * * rsync -aHAX --delete --exclude='**/postgres/' --exclude='**/postgresql/' --exclude='**/mysql/' --exclude='**/mariadb/' --exclude='**/redis/' --exclude='**/valkey/' --exclude='**/database/' --exclude='**/cache/' --exclude='**/tmp/' --exclude='**/logs/' /home/cmc/docker/ /tank/cloud/server/docker/
20 2 * * * rsync -aHAX --delete /home/cmc/.ssh/ /tank/cloud/server/ssh/
```
除此之外,唯一需要的更新就是运行 `apt update` 以及可能的重启。这只需要大约 60 秒,什么时候想做都行。
```bash
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
```
## 3. 结果
那么最终结果如何?我估算每个月大约只花**15 分钟**来维护,除非出现紧急情况。
如果你觉得这很正常,恭喜你——你已经达到了人生巅峰。但对我来说,这**绝对荒谬**。过去我常常花好几天来构建、维护和调试服务器、数据库、应用等各个环节。
更疯狂的是:如果一个月里我连 15 分钟都抽不出来,通过 SSH 登录服务器做更新,实际上也完全不影响运行。我大概可以连续 6 个月(甚至更久?)不碰它,它也不会出问题。
*(这不是挑战,请不要弄坏我的服务器。)*
能处于这种状态真是太棒了——尤其对于像我这样职业生涯越来越忙碌的人来说。我觉得自己在隐私、安全与便利之间找到了绝妙的平衡。
相似文章
我的家庭实验室AI开发平台
作者描述如何在家庭实验室中搭建一个AI开发平台,使用带有Git访问权限的OpenCode Web UI,通过PR审查和GitOps部署实现对Docker服务的AI辅助维护。
@QingQ77: 一个 Docker 容器搞定整个 Homelab 的监控:GPU、容器、服务、磁盘、多机器,不用装 Prometheus/Grafana https://github.com/SikamikanikoBG/homelab-monitor……
HomeLab Monitor is a self-hosted, single Docker container that aggregates GPU stats, container memory, disk usage, and service health across multiple machines via SSH, without requiring Prometheus/Grafana or agents.
我的新家庭服务器软件选择
一篇个人博客文章,详细描述了作者为新家庭服务器选择操作系统和服务管理软件的经历,比较了Synology、TrueNAS、Debian以及使用Runit的Void Linux。
关于弃用 Vagrant
作者解释了弃用 Vagrant 并转而直接使用 KVM 和 libvirt 管理虚拟机的决定,认为对于其需求来说,额外的抽象层并无必要,原生 Linux 工具已足够。
我的家庭数据中心
用户描述了他们的家庭数据中心设置,包含多个用于机器学习实验、训练和智能体编程的高端系统。