简介
我不敢说自己玩 homelab 已经很久了,但我拥有个人服务器已经有好几年了。2018 年刚开始的时候,我才 13 岁,刚接触电脑和网络,而我爸恰好有一台闲置的笔记本。时间快进到今天,我的 homelab 已经发生了巨大的演变(也大了很多)。我想和大家分享一下它目前的状态、我用的工具,以及我为什么觉得它如此有成就感。
我的第一台服务器是一台改造过的 HP ProBook 440 G3,配备 Intel Core i5-6200U、8GB 内存和 512GB 机械硬盘。我在上面装了 TrueNAS Core(当时还叫 FreeNAS),为我的项目搭了一个简单的 NAS。我还在上面运行了几个 jail(可以理解为"FreeBSD 版的 Docker 容器"),跑着 qBittorrent 和 Plex Media Server 之类的服务。这套配置我用了大约三年(后来加了几块外置硬盘扩容),一直到高中。
踏入 Homelab 的世界
大约在 2021 年,我越来越少用我的游戏电脑了。我没有太多时间玩游戏,但让它闲着又觉得浪费。于是我决定把它改造成服务器;它配有 AMD Ryzen 5 2600、5700 XT、16GB 内存和一块 2TB 机械硬盘。我拿了个 U 盘,在上面装了 UnRAID,这简直是质的飞跃。UnRAID 非常灵活,可以轻松添加存储,而且它基于 Linux,我可以毫不费力地运行 Docker 容器和虚拟机。
那时我完全不知道 Docker 是什么,但很快就摸清了门道。我疯狂地安装容器,从 Pihole 到 Syncthing,再到 BorgBackup。我甚至搭建了 Cloudflared 隧道,用来远程访问我的服务。随着时间推移,我添加了更多硬盘、更多内存和几十个容器。
最终我意识到,server-mimas(我给它起的名字,取自土星的一颗卫星)被我运行的各种服务拖得非常吃力,在一颗可怜的 Ryzen 5 2600 上跑这么多容器并不理想。于是在 2024 年,迎来了下一次进化。
迷你主机来救场
在迷你主机热潮中,我入手了三台 GMKtec NucBox G3 Plus。每台配备 Intel N150 处理器、8GB 内存和 256GB NVMe 固态硬盘。虽然性能不是最强,但我觉得它们正好可以分担 server-mimas 上那些更轻量但数量众多的服务。我把其中两台装成 Debian 13 服务器,第三台装成 Proxmox VE 主机(我想借此学习 Kubernetes)。差不多在这个时候,一位朋友送了我一个旧机架,于是我 3D 打印了一些支架,把所有设备整整齐齐地装了上去。
cluster-chronos(希腊语的"时间")是 Proxmox 主机,cluster-tempus(拉丁语的"时间")托管媒体服务器、游戏服务器等非关键服务(外接一块 8TB 机械硬盘),cluster-jikan(日语的"时间",時間)则运行 Chhoto、n8n 和我的 DDNS 更新器等关键服务(还有这个网站的 API 服务器!)。我用 Tailscale 通过 WireGuard 将它们安全地连接起来,并在 cluster-jikan 上通过 Uptime Kuma 运行一个 Cloudflared 隧道用于远程访问。
一年后,2025 年圣诞节到来,我犒劳了自己一台新的迷你主机服务器:一台准系统 AceMagic M1,搭载 Intel Core i9-13900HK(哇!),我给它升级到了 16GB 内存和 512GB NVMe 固态硬盘。这头猛兽被我命名为 server-enceladus(同样取自土星的另一颗卫星),现在负责繁重的处理任务(比如用 Handbrake 转码我和女朋友的游戏录像),也是我 homelab 中真正的实验室部分。它同样是一台 Debian 13 服务器,运行着我那些更具实验性的服务,比如一些数据处理密集的工作流和数据库。
现在我有这么多运行服务的机器来替代 server-mimas,它终于可以专注于它本该做的事情了:存储。它上面唯一运行的服务是 Immich(一个自托管的照片管理方案)。如此一来,我不必再把宝贵的冗余磁盘空间浪费在 Jellyfin 媒体这类不重要的数据上了。
备份策略
……好吧,其实 server-mimas 并不只运行 Immich。它还托管着我的 BorgServer 实例,这是我所有其他服务器的主要备份目标。每台服务器(以及我的笔记本)都运行 BorgBackup 客户端,通过 SSH 备份到 server-mimas。我每天备份一次,保留 7 份每日备份、4 份每周备份、12 份每月备份,以及无限份每年备份(如果你还没发现的话,我是个数据囤积狂)。
另外,我把一台闲置的 OrangePi 4 LTS 改造成了异地备份目标。它运行 Armbian,同样在它的 14 TB 外置硬盘上托管着一个 BorgServer 实例。每天夜里,server-mimas 会通过 Tailscale 经 SSH 向这台 OrangePi 推送一次备份。这样,我就满足了 3-2-1 备份原则:三份数据副本,存放在两种不同的介质上,其中一份在异地。
我正在为这台 OrangePi 和它的硬盘打造一个好看的机箱,好让它能漂亮地放在我的书架上:
我的软件栈
下面快速概览一下我在 homelab 中使用的主要软件:
server-mimas(UnRAID):- Immich(照片管理)
- BorgServer(备份目标)
- Borgmatic(备份客户端)
cluster-chronos(Proxmox VE):- 三台用于学习 Kubernetes 的 Debian 13 虚拟机
cluster-tempus(Debian 13):~/services/games- Terraria 服务器
- Minecraft 服务器
~/services/media- Jellyfin
- qBittorrent
- SABnzbd
- 咳咳……Linux ISO 搜索器
~/services/privacy- invidious
cluster-jikan(Debian 13):~/services/essential- PostgreSQL
- Cloudflare DDNS
- Nginx Reverse Proxy Manager
- Uptime Kuma
- Chhoto 短链接服务
- LibreSpeed
- Adguard Home
- n8n(工作流自动化)
- Forgejo(这个网站的 Git 服务器!)
- marvil.cn API 服务器
~/services/hosting- 我客户的网站和 API 服务器
server-enceladus(Debian 13):~/processing- Handbrake(视频转码)
~/experimental- PostgreSQL
- Valhalla(路径规划引擎)
- Shipherd(代码部署工具)
结语
自从那台最初的 HP ProBook 以来,我的 homelab 已经走过了很长的路。这是一段绝佳的学习经历,让我了解了 Linux、网络、Docker、虚拟化和备份策略,而且我热衷于折腾新技术、优化我的配置。此外,拥有自己的基础设施也让我对自己的数据有了独立自主的掌控感。