把家里那台老 NUC 重装了一遍系统,我想清楚了一些事

随笔 · 4 分钟阅读· 12 次阅读

周末把跑了七年的那台 NUC 关机了。

它是一台 2017 年的 NUC7i3BNH,i3-7100U,16G 内存,一块 512G 的 SATA SSD。风扇早就开始有声音,去年清过一次灰好了一点,今年又回来了。真正让我决定重装的原因是:/var 分区满了,而且我完全不记得里面装了多少东西。

重装前,我先把「它到底在干什么」列了出来

用 docker ps 和 systemctl list-units --type=service --state=running 对了一遍,一共 23 个服务:

  • 8 个是真正在用的:Gitea、Miniflux、Vaultwarden、n8n、两个静态站、一个下载器、一个内网 DNS
  • 7 个是「装过就忘了」的:三个监控面板、两个测试用的数据库、一个去年的爬虫、一个只跑过一次的博客生成器
  • 8 个连我自己都要点开配置才想起来是干什么的

我盯着这个列表看了很久。七年里我一直在往这台机器上加东西,从来没有认真删过。

一个细节让我有点触动

在一堆 compose 文件里,我翻到了最早的那一版,日期是 2017 年 11 月:

version: '2'
services:
  gitea:
    image: gitea/gitea:1.2
    ports:
      - "3000:3000"

那时候我还在用 version: '2',端口直接怼在宿主机上,没有 volumes,没有 restart 策略,数据全靠容器里那层可写层——现在看简直是自杀式部署。

但它确实跑起来了,而且跑了两年多没出过事。

重装的过程没什么可写的

备份数据、导出数据库、dd 一块新盘、装 Debian 12、Docker、把 8 个服务按新的 compose 重新摆一遍。一共花了六个小时,其中四小时在等数据拷贝。

真正花时间的是决定哪些不装回去。最后我只恢复了 6 个,另外两个(一个下载器和一个静态站)干脆搬到了别处。

现在这台机器的负载从平均 1.8 掉到了 0.2,风扇声音小了很多。

我想到的三件事

第一,维护成本是复利的。

加一个服务只要十分钟,但它的存在会持续消耗你的注意力:升级、日志、证书、端口冲突、某天突然挂掉。七年二十三个服务,我大概有一半的周末在给这些东西擦屁股。如果每次加之前都问一句「这个我三个月后还会用吗」,可能现在只有八个。

第二,技术债不只在代码里。

我们习惯把技术债理解成代码层面的东西:坏味道、重复逻辑、没有测试。但一个跑在家里的机器,同样会积累债——过期的镜像、散落的配置文件、没人知道的端口、写在聊天记录里的密码。这些债不会报错,它们只是让你在某一天不敢动这台机器。

第三,我对「折腾」的兴趣在下降。

以前装一个新服务能兴奋一晚上,现在我看到「又一个自建方案」的第一反应是:它会不会在半年后变成一个我要照顾的东西。

这不完全是坏事。以前我用工具证明自己能折腾,现在我只想让工具安静地待在那里。

最后

新系统只装了 6 个服务,全部用 git 管理 compose 文件,.env 统一放一个加密仓库,每个服务写了「它干什么 / 数据在哪 / 挂了怎么办」三行说明,放在仓库 README 里。

我不确定这次能维持多久。人的记性很差,可能两年后我又会在 /var 里发现一堆不认识的东西。

但至少现在,我打开这台机器的终端,知道里面每一个容器是干什么的。这种感觉比多装十个服务舒服得多。

评论 (0)

还没有评论,来说两句吧~

发表评论

验证码

提交后需站长审核,通过后才会显示。