主要观点:作者运行一个小型家庭实验室,为家庭网络提供基本服务,想找一个简单的仪表盘解决方案,最终选择了 homepage,且在 NixOS 上运行,文章介绍了 homepage 的配置、模块设计的演进、向后兼容性、解决日志重复问题、加强测试套件以及迁移现有配置等方面。
关键信息:
- 家庭实验室包括
raidz2
ZFS 池冗余存储、Syncthing 接收端和 Borg 备份等服务,通过 Tailscale 对外提供。 - 配置 homepage 用 YAML 文件,最初硬编码位置为
/config
,后来通过环境变量HOMEPAGE_CONFIG_DIR
改为/var/lib/homepage-dashboard
。 - 设计 NixOS 模块时利用 RFC42 方法,提供
environmentFile
选项让用户提供包含变量的环境文件。 - 处理向后兼容性时,若新配置选项未设置,模块按以前方式运行并显示弃用警告。
- 写补丁使 Homepage 遵循
LOG_TARGETS
环境变量,默认值为both
,已应用于 Nix 包。 - 加强测试套件时,在 NixOS 测试套件中指定多台机器进行测试,确保不同配置模式下的功能正确。
- 迁移现有配置用
yaml2nix
将 YAML 转为 Nix 表达式,再用nixpkgs-fmt
格式化。
重要细节: - 仪表盘初始状态及示例图片。
- PR [#243094]添加了 homepage-dashboard 包、NixOS 模块和基本测试。
- 介绍了 Homepage 的各种配置部分及支持的 widgets。
- 提到 feature request 被合并,后续可删除 Nix 包中的补丁。
- 给出了测试脚本的具体实现及注释。
- 展示了 PR 进度的截图及相关链接。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。