首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

NixOS 让我不再那么害怕

摘要

Something funny happened a little while ago: I read about FreshRSS, and it sounded nice, so I installed it on a server and started using it . That would not have happened a year ago, but then again, a...

the read that feeds and server but NixOS was can
2026-10-20 1 阅读 约5分钟阅读 ibobev
分享:
字号:
不久前发生了一件有趣的事情:我读到了 FreshRSS,听起来不错,所以我将它安装在服务器上并开始使用它。一年前这不会发生,但一年前我还没有任何 NixOS 服务器。在过去的几年里,我的 RSS 提要仅存在于我的手机上。这背后有一个好主意 1 无论如何,当我离开电脑时,我大部分时间都可以花时间阅读。 ,但它在实践中从未完全发挥作用。其一,许多内容在更大的屏幕上更容易阅读。但信任手机应用程序来管理一百个提要中数千篇文章的已读/未读状态也很脆弱。 2 特别是,当我切换到另一部手机时,我可以将所有提要迁移到其中,但已读/未读状态会在此过程中丢失。我真正想要的是一个服务器端提要聚合器。这是在服务器上运行的软件,管理 rss feed,然后我可以通过 Web 界面或客户端应用程序读取 rss feed。我想要这样做已经有一段时间了,但我从未采取这一步,因为这将是另一个需要维护部署的副项目。但现在,有了一些 NixOS 经验,添加一个有效的 FreshRSS 配置(包括备份)需要 9 行 Nix 代码 3 加上十几行 nginx 反向代理配置。它变得有点复杂,因为我想从需要重写 cookie 路径的特定位置块进行 proxy_pass。但这是我的问题,而不是 NixOS 的问题。 。在过去的几个月里,该装置一直在不干涉地工作。如果或当该服务器发生故障时,我可以启动一台运行完全相同配置的新服务器,可能需要 15 分钟左右。当我们能够做到这样的事情时,我们几乎没有理由不尝试新软件。将此与 FreshRSS 在 NixOS 外部的安装方式进行对比。然后我们下载存档并将其解压到正确的位置;根据说明配置权限;安装 nginx 和 php-fpm 以及对服务器必要的额外依赖项;配置 php-fpm 池并使 nginx 将请求传递给 php-fpm ;设置 Let's Encrypt 证书;设置备份;希望记住如果出现问题并且我们需要稍后在新的或升级的服务器上重新安装 FreshRSS 时如何执行上述所有操作。当然,FreshRSS 项目提供了一个容器镜像,可以稍微缩短这个过程。它旨在使用 mod_php 设置 Apache 并以正确的方式配置它们。然后我们只需要配置备份,创建一个运行容器的 systemd 服务,并在其前面将 nginx 作为 tls 终止反向代理进行管理,因为容器映像合理地不支持 tls。这仍然是需要记住的事情,并且也不能保证在重新安装时同样的事情在六个月后仍然有效,除非我们写下我们下载的确切容器映像。 4 从源代码构建容器映像没有帮助,因为时间间隔不同的同一 Dockerfile 的两次构建可能会导致相当不同的容器映像。我之前提到过我是多么不喜欢维护副业项目。这包括我自己的代码,也包括其他人开发的自托管服务。我可以接受这里或那里几分钟的维护,但是必须安排几个小时不间断的工作来升级某些东西,或者花费任何时间进行紧急维护,这真的扼杀了我使用计算机的愿望。您可能会认为像我这样的人会深入研究配置管理、容器编排或两者,但事实并非如此。我对 CFEngine、Ansible、podman 和 k3s 进行了诚实的尝试,但它们都没有比 (a) 仔细写下内容,有时 (b) 将这些仔细的注释转化为执行一系列 ssh 命令的 shell 脚本来显着改善我的安装/配置/部署体验。 5 是的,这本质上是对 Ansible 的重新发明——但不那么脆弱。下次有人斜眼看 pip 时,它不会崩溃。 shell 脚本的缺点是它通常最终依赖于随着时间的推移或在不同的环境中使用而变得无效的假设。 NixOS 配置读起来很像对我自己的仔细说明,除了它们是可执行的并且每次都会产生相同的结果。
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱