全面改造的家庭实验室
摘要
作者详细介绍了家庭实验室的全面改造过程,从使用 Zimaboard 和 NixOS 迁移到基于 Debian 的新服务器,部署了 Dokploy、Jellyfin、Immich 及其他自托管服务,并改进了家庭光纤网络。
<p><a href="https://lobste.rs/s/feikm9/overhauled_homelab">评论</a></p>
查看缓存全文
缓存时间: 2026/07/13 00:55
# 改善 #4:彻底改造家庭实验室 - Tim Hårek
来源:https://timharek.no/blog/kaizen-4/
我开启了这个“博客系列”,目的是强迫自己多写写关于我的设置以及持续的迭代。但一直没动笔……直到今天!这篇博文酝酿了很久,我一直把想法记在脑子里和笔记里。
我将按顺序介绍我所做的所有事情:
- [之前的设置](https://timharek.no/blog/kaizen-4/#previous-setup)
- [网络状况](https://timharek.no/blog/kaizen-4/#network-situation)
- [我自托管的内容](https://timharek.no/blog/kaizen-4/#what-i-self-hosted)
- [网络](https://timharek.no/blog/kaizen-4/#networking)
- [光纤历险记](https://timharek.no/blog/kaizen-4/#fiber-adventure)
- [布线](https://timharek.no/blog/kaizen-4/#wiring)
- [车库布线](https://timharek.no/blog/kaizen-4/#wiring-the-garage)
- [新服务器](https://timharek.no/blog/kaizen-4/#the-new-server)
- [新设置](https://timharek.no/blog/kaizen-4/#the-new-setup)
- [Debian](https://timharek.no/blog/kaizen-4/#debian)
- [Dokploy](https://timharek.no/blog/kaizen-4/#dokploy)
- [媒体](https://timharek.no/blog/kaizen-4/#media)
- [Jellyfin](https://timharek.no/blog/kaizen-4/#jellyfin)
- [Immich](https://timharek.no/blog/kaizen-4/#immich)
- [文件](https://timharek.no/blog/kaizen-4/#files)
- [监控](https://timharek.no/blog/kaizen-4/#monitoring)
- [杂项](https://timharek.no/blog/kaizen-4/#miscellaneous)
- [qBittorrent](https://timharek.no/blog/kaizen-4/#qbittorrent)
- [Linkding](https://timharek.no/blog/kaizen-4/#linkding)
- [Mesh VPN](https://timharek.no/blog/kaizen-4/#mesh-vpn)
- [最终结果](https://timharek.no/blog/kaizen-4/#final-result)
- [剩余事项](https://timharek.no/blog/kaizen-4/#whats-remaining)
## 之前的设置
两年前,我[翻新了我的家庭实验室](https://timharek.no/blog/kaizen-3-revamped-homelab)。当时我刚买了一台新机器作为主要家用服务器,取代了那个堆满杂乱机器的 9U 服务器机架。那时我终于静下心来琢磨如何安排一切。效果一直很好……直到出了问题。
当时那台新机器是 Zimaboard,上面装了 NixOS,看起来非常棒,运行得也很完美,直到我想做一个基本的备份定时任务。我一直没弄明白怎么做,所以基本上是有空就手动备份。我用的是 Restic,这个工具很棒。
### 网络状况
我们用的是 Bergen Fiber(Altibox)提供的 750/750 Mbps 光纤连接,完全够用。连接非常稳定,从不卡顿,对网络没有任何抱怨。
今年早些时候我们搬到了一栋独栋房子里,整栋房子都是我们的,太棒了!但网络状况不太好。整栋房子里一个以太网接口都没有,除了光纤和调制解调器所在的位置。你猜在哪里?就在通往阳台的门旁边,前任主人把电视放在那里(我们单独弄了个电视房)。值得注意的是,房子里有很多电话线,我们稍后会讲到。

*我之前的设置,就在猫的喂食架下方。*
如你所见,这个位置并不理想,尤其在我们发现这里是给猫放食物、远离狗的绝佳位置之后。
我不喜欢之前 Zimaboard 设置的另一件事是,我选择把 NixOS 直接安装在板载闪存上。每次尝试升级 NixOS 版本时,都会遇到空间不足的问题。我每次都得做一堆清理和微调才能让它工作。
搬进新家后,我的网络状况还算可以,但车库无法接收到 WiFi 信号。覆盖范围似乎还行,但在室外或电视房效果不理想。我觉得把路由器放在地板上不是最佳选择,但也不想把它挂在客厅墙上。
所有 WiFi 都来自一台 ASUS RT-AX92U 路由器,效果还不错,尤其是在它所在的二楼。但在楼下和室外就是另一回事了。
### 我自托管的内容
对于所有我翻录的媒体、电视剧和电影,我都用 Jellyfin,这软件非常好,直接就能用。我还用 Jellyfin 播放有声书,搭配一个很棒的 iOS 应用 [plappa](https://plappa.me/)。至于所有的 Linux ISO 文件,我用的是 qBittorrent。它作为无头 BT 客户端运行得很好,而且也有一个很棒的 iOS 应用 [qRemote](https://apps.apple.com/us/app/qremote-for-qbittorrent/id6756276747)。
我还有一些小型的 Docker 容器,用于 [Foundry](https://foundryvtt.com/) 和一些个人项目。
我以前还自托管过 Nextcloud,但后来变得很繁琐,维护起来很麻烦。对我来说,它太臃肿了。
## 网络
我买了 Ubiquiti UniFi 设备,具体是:
- UCG Ultra
- U7 Lite 接入点 x3
- PoE 供电器
我还买了一卷新的以太网线,500 米,以及制作网线的工具。
UniFi 在家庭实验室爱好者中备受推崇,这并非没有道理。它不是(F)OSS,但硬件非常出色,无需订阅,也无需注册账号即可使用。

*简单部分:拆开所有新设备。*
买设备是简单的事,但把它们全部安装起来,哦,老天,那可完全是另一回事了。
### 光纤历险记
我们买房时最先考虑的事情之一,就是把光纤入口和调制解调器移到阁楼上,这样就不会碍眼,也不会难看。我礼貌地问了本地 ISP,Bergen Fiber,是否可以帮我做这件事,或者能否给我一根 5 米长的 SC/UPC 光纤跳线。他们答应给我一根线,但当我发邮件跟进需要怎么做时,他们却发短信说不能给了 🙃。不过他们可以给我一根 2 米长的线。于是我问了一圈,花了一些时间在网上找那种特定的线缆。找到的大多数要么长度不对,要么短距离的线缆贵得离谱。我最终从一家离我家只有 5 分钟路程的 B2B 公司找到了一根。我拜托一个在那里采购的管道工朋友帮我取一下,他帮我拿回来了,花了 32 克朗(约 3 美元)。
### 布线
除了找光纤线缆的冒险经历,我还得给整栋房子布线,尤其是为新的接入点准备线路。需要从阁楼拉到客厅、楼下走廊,以及另一栋建筑的车库。另外,我还希望在我的家庭办公室和电视房有以太网接口。这能有多难?
我请了一个朋友帮忙确定所有设备的位置,并帮我拉线。我告诉他只需要几个小时。结果我们花了六个小时,他必须回家了,我又自己干了三天。我原以为会很简单……
我们先移动光纤和调制解调器,这很容易——在阁楼的墙上钻了一个 42 毫米的孔,把线管从墙上推到客厅,然后拉入光纤。非常顺利!
接着我们在客厅天花板的中央钻了一个孔,用于安装 PoE 接入点,这也很容易。
但最难的来了:从阁楼往下走两层,而且没有任何现有的线管。正如我提到的,房子里遍布电话线,但都没有接通,而且线管也没通向阁楼。最初那天的大部分时间,我们都在拉扯电话线,试图弄清楚它们走向,以及如何从阁楼布线。最后我在客厅一个电话接线盒上方钻了一个孔,这样我就可以把线管从阁楼拉到这个接线盒里。因为这个接线盒通向一楼的门厅。

*从阁楼上精准定位墙壁的位置。*

*钻孔并沿墙向下穿线。*

*我在客厅旧电话接线盒上方开的孔。*

*把线管从阁楼拉到电话接线盒。*
而实际制作网线呢?真是一团糟。我知道有顺序要求,但我买的那些(来自 [Kjell & Company](https://www.kjell.com/no/produkter/nettverk/nettverkskabler/ftp-og-utp-kontakter/luxorparts-modulkontakt-rj45-cat.-6-utp-20-pk.-p41138))没有说明书,所以我只能上网查顺序。我花了两个小时才做出一条能用的网线,因为我没有注意到透明塑料袋里还有一个透明塑料袋,里面有用于固定双绞线顺序的“导引”。直到我看了差评才意识到这一点。我用一个超简单的网线测试仪检查网线是否做对,这玩意儿买得太值了,没有它的话会头大如斗。
### 车库布线
我最初的计划一直是要给车库布以太网线,但不知道怎么做。我知道房子外面有预埋管线,但不确定是否有空间容纳以太网线。幸运的是,我在车库里发现了一根从黄色线管里出来的剪断的电话线,这根线管的颜色和门厅里我已经铺设好一楼线路的线管颜色一样!我确信是同一根线管,于是开始拉线,看是否能拉动房子那头的线,但纹丝不动。我试了各种办法让它移动,但一点反应都没有。最后我把线的绝缘层都弄坏了,它卡得实在太紧了。

*卡死在车库线管里的旧电话线。*
纯属巧合,我发现房子外面还挂着一个旧同轴电缆和电话接线盒。我打开它,把里面所有的线都松开了,然后沿着房子外墙的线管往下找。幸运的是,外面的地面是碎石,所以我直接开始挖。你猜怎么着?我找到了那根该死的线管,实际上找到了三根!一根通向房子,一根通向车库,还有一根我猜是以前 ISP/电话公司的。我把它们都剪断,然后拉了出来。这下,车库里那根电话线轻而易举地就松动了。

*我在房子外面发现的那个旧同轴电缆和电话接线盒。*
我把房子那头的线拉过线管,然后接入车库的线管,瞧!车库就有以太网了!

*沿着地基挖掘,发现了三根埋藏的线管。*
## 新服务器
我搞到了一台巨大的 HPE DL380 Gen10 服务器,是退役的硬件。它有两个专用的 Intel Xeon CPU 和 288 GB 内存。我拿到了 16 块 600GB 企业级 10K RPM 硬盘,目前只装了 8 块,剩下的还在待办清单里!已安装的 8 块组成了 RAID6,所以可以允许两块硬盘故障而无需立即更换。
``
_,met$$$$$gg. tim@hailmary
,g$$$$$$$$$$$$$$$P. -------------
,g$$P"" """Y$$.". OS: Debian GNU/Linux 13 (trixie) x86_64
,$$P' `$$$. Host: ProLiant DL380 Gen10
',$$P ,ggs. `$$b: Kernel: Linux 6.12.94+deb13-amd64
`d$$' ,$P"' . $$$ Uptime: 3 days, 2 hours, 42 mins
$$P d$' , $$P Packages: 406 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.2.37
$$; Y$b._ _,d$P' Display (VGA-1): 1024x768 [External]
Y$$. `.`"Y$$$$P"' Terminal: /dev/pts/0
`$$b "-.__ CPU: 2 x Intel(R) Xeon(R) Bronze 3204 (12) @ 1.90 GHz
`Y$$b GPU: Matrox Electronics Systems Ltd. MGA G200eH3
`Y$$. Memory: 8.58 GiB / 267.31 GiB (3%)
`$$b. Swap: 22.89 MiB / 127.66 GiB (0%)
`Y$$b. Disk (/): 955.36 GiB / 3.10 TiB (30%) - ext4
`"Y$b._ Local IP (eno4): 192.168.1.23/24
`"""" Locale: en_US.UTF-8
``
我最初的计划是把这台服务器放在阁楼上,与光纤/调制解调器和路由器放在一起,但开机后我很快意识到,我能透过天花板听到这台机器的声音。好在我的车库阁楼空间足够大。
我从没测量过改造前后的功耗,老实说这对我来说不是大问题,挪威的电价相当便宜。
这台机器被命名为 `hailmary`,取自《[火星救援](https://en.wikipedia.org/wiki/Project_Hail_Mary)》中的飞船。如果你看看上面的 neofetch 输出,会发现它有海量的内存,288 GB,而我几乎没怎么用。我还得琢磨怎么充分利用它。我在考虑给服务器加一块 GPU,用来运行本地大语言模型(LLM)。

*终极服务器设置:直接放在车库阁楼地板上。*
## 新设置
在设置这一切之前,我把所有想保留的数据从 Zimaboard 移了过来:所有媒体(电影和电视剧翻录、有声书)以及照片。
在我自托管的生涯中,我头一次有了一个该死的仪表板来展示我拥有的所有东西!

*我的第一个家庭实验室仪表板,运行着 Glance。*
让我带你逐一了解!
### Debian
在家庭实验室里用了两年 NixOS 之后,我想回到我所熟悉的系统。我本可以用 Ubuntu Server,但我想尽可能保持简洁,同时又熟悉。
还记得我在 NixOS 上始终没能设置成功的 cron 任务吗?在 Debian 上,那只是无聊、可靠的 `cron` 而已,工具不再是横亘在自动化备份之间的障碍(更多内容见“剩余事项”部分)。
### Dokploy
这是我放置所有 Docker 相关东西的地方。我们最近在工作中开始使用它,所以这也是让我自己更熟悉其运作方式的借口。
有一个仪表板来查看所有 Docker 相关的东西,检查某个服务是否在运行、资源使用情况如何,或者是否有东西卡住了,这很有用。现在我既可以在浏览器里操作,也仍然可以使用 Docker 命令行。
相似文章
我厌倦了手动做SEO,于是将Claude Code变成了我的SEO管理器(开源)
一个基于Claude Code和NextJS构建的开源SEO管理器,通过GitHub Actions和仪表盘实现关键词研究、内容创作和性能追踪的自动化。
自托管Kimi K3:硬件成本增加20%,任务解决能力提升20%
最新基准测试显示,在8个B300节点上自托管Kimi K3实现了86.4%的任务解决率,硬件成本大约比在B200节点上运行的GLM-5.2高出20%,尽管吞吐量较低。
不安全世界中的安全
深入探讨 Netstack3 的设计理念,这是 Fuchsia 基于 Rust 的网络栈,在内测期间实现了极低的 bug 数量,现已部署在数百万台设备上,崩溃次数比前代减少了 20 倍。
针对越狱Kindle的更多Tailscale技巧
越狱Kindle上的Tailscale已更新,新增代理和TUN模式,使得KOReader等应用可以访问其他Tailscale设备,并默认启用Tailscale SSH。
Manganin:工具至关重要
Manganin 是一个用 Zig 编写的新 Git 伪造,它通过基于信任的担保树和自托管设计重新构想了源代码管理,从而避免了供应商锁定。