内容提要
本文介绍了作者购买的DIY NAS配置和使用经验,包括选择NixOS作为操作系统,使用Caddy提供的反向代理和DNS服务,使用immich进行机器学习服务,使用Jellyfin存放影视资源,使用Tailscale解决外网访问NAS的问题,自建DNS服务器进行域名解析,以及硬盘的备份策略。
延伸解读
硬件选择与性能考量
作者选择16G内存和较强CPU的DIY NAS,主要是为了满足Docker的强需求,并为未来可能的应用预留性能。存储上采用512G SSD作为系统盘,4块4T HDD通过LVM组成逻辑卷挂载到/data,兼顾存储与备份。这种配置适合需要运行多个容器服务的用户,但需注意LVM的运维复杂度。
NixOS的适用场景与注意事项
作者选用NixOS是看重其可复现、声明式和可靠的特性,适合喜欢通过配置文件管理系统的用户。但安装时需注意Graphical ISO必须联网,否则会卡住。此外,未使用Btrfs快照以降低运维复杂度,说明在功能与简单之间做了权衡。
服务部署与优化实践
作者使用Caddy作为反向代理并自动签发Cloudflare证书,简化了HTTPS配置。Immich的机器学习服务放在有独显的笔记本上运行,以减轻NAS负担。视频预处理采用H265压缩以提高空间利用率,并用-map_metadata 0保留录制时间。这些做法对资源有限的NAS有参考价值。
外网访问与备份策略
由于没有公网IP,作者通过Tailscale建立隧道,并自建DNS服务器解决域名解析一致性问题。备份方面,目前仅手动通过SMART检测硬盘完整性,尚未提及自动化备份方案。读者需注意,这种手动检测可能无法及时发现潜在故障,建议结合定期备份。
Q&A
作者选择NixOS作为NAS的操作系统的原因是什么?
作者选择NixOS是因为其具有可复现性、声明性和可靠性,并且对其他NAS操作系统没有更多了解和偏好。
如何通过Caddy提供反向代理和DNS服务?
通过Caddy配置可以为域名和wildcard域名自动签发证书,使用Cloudflare作为域名服务商。
作者使用immich进行什么样的服务?
作者使用immich进行机器学习服务,并在笔记本上定期启用Docker来处理照片的批量导入。
为什么作者放弃使用Nextcloud?
作者放弃Nextcloud是因为其性能不如预期且资源消耗较大,最终选择了更轻量的资源管理器作为替代。
如何解决外网访问NAS的问题?
作者通过Tailscale解决外网访问NAS的问题,并自建DNS服务器进行域名解析。
作者的硬盘备份策略是什么?
作者手动通过SMART检测硬盘的完整性,并制定了相应的备份策略。