系统层的选择
选 Ubuntu 24.04 LTS,没什么特别的理由——文档最多,出问题最容易搜到答案。家庭服务器不需要折腾发行版,稳定性优先。
面板用 1Panel。有人会觉得面板多余,但对一台"长期不登录、偶尔要改点东西"的机器来说,有个 Web 界面能省掉大量"我上次那个配置放哪了"的时间。
目录怎么放
所有服务的持久化数据集中到一处,备份时打包一个目录就够:
/opt/stack/
├── <service>/
│ ├── docker-compose.yml
│ └── data/
每个服务一个子目录,compose 文件和数据放在一起。不要把数据卷交给 Docker 默认路径管理,否则半年后你根本不知道哪个卷是谁的。
踩过的坑
第一个坑:想装太多。 最开始的清单上有十几个服务,装到一半发现大部分根本没在用。后来改成"需要什么装什么",清单砍掉三分之二,机器反而稳定了。
第二个坑:端口规划。 所有服务一开始都用默认端口,结果很快就撞车。后来统一改成高位端口段,前面挂 OpenResty 做反代,按域名分发。对外只暴露 80/443 转发到家里的高位端口。
第三个坑:忘了监控。 有次硬盘写满,站挂了两天才发现。现在至少会看一眼磁盘水位——这件事应该更早做。
现在的状态
跑着 Docker、OpenResty、PostgreSQL,加上这个站点本身。负载很低,大部分时间 CPU 是个位数。
回头看,家庭服务器真正的价值不在于它能跑什么,而在于数据在哪里。在一台自己能物理接触到的机器上,这件事本身就足够让人安心。