用Miniflux搭建一个自己的RSS服务

自从Google Reader挂掉后就一直使用Feedbin提供的RSS订阅服务,期间也想过开源解决方案搭建一个但无奈仅有的几款成熟度比较合格的方案都是PHP的产物,我不是一个喜欢在自己的服务器上配置PHP环境的人.

前段时间了解到miniflux这样一个用GO编写的可以自己托管的RSS订阅服务,恰恰我是一个很喜欢使用Go编写程序和使用Go编写的程序的人,于是在 https://miniflux.app/ 上看了下手册后就很简单的将miniflux配置好了.

配置的过程很简单,拜Go只依赖glibc的巨大优点所赐,只需要一个二进制可执行文件就可以在几乎所有操作系统上跑起来,除了主程序外只需要按照手册自己配置好Postgresql就行.

miniflux可以在控制台开启fever api支持,这样就可以用Reeder和Unread这种第三方APP里进行阅读了.只是有些小缺点,因为fever确实太陈旧而且小众所以某些功能缺失了,比如Unread上没有向上/向下设定已读.

搭建好以后就当作主力RSS阅读器使用,期间唯一遇到的问题是miniflux程序目前还处于密集开发状态,所以每个版本甚至每个commit都可能带来不可预知的改动,特别是对我这种每天都会拉取最新代码然后自己编译更新的人来说.
遇到过一次自己编译更洗后提示entries表中缺少一个键,当时很简单的自己给这张表添加了缺少的键.
当时表面上没什么问题了,但后来随着miniflux更多修改的提交问题就出来了,那就是一旦你自己修改过表结构,那么很可能以后的修改都需要自己来维护了.而正常情况下是需要按照upgrade中的流程来执行的(当然自己拉取代码手动编译的话很可能升级工具并没有相应的更新).

此后我就老老实实选择下载release版本的二进制文件来升级了.

而使用以来最大的优点有以下几项:

  • 可以自己设定刷新间隔

某些公共服务也能设定,但一般是需要收费的比如inoreader.但即便将刷新间隔设定在15分钟我发现仍然有几小时才刷新的情况.

  • 可以清晰的看到哪些feed拉取出现了异常

其实很多服务都有这项功能,但Feedbin很遗憾没有.只能看到源最后更新时间,这算是Feedbin最大的硬伤吧.

  • 可以直接修改feed的URL

某些时候feed链接会有变更,比如从blog.xxx.com变成了xxx.blog,相应的feed链接也会变更,而这个时候如果不能修改feed的URL就只能创建一个新的订阅.而miniflux却可以很方便的更改,甚至因为有操作数据库权限所以很多控制台中无法修改的项也可以修改.

  • 免费

当然如果本来就有服务器的话

  • 支持受保护的rss源

自建了rsshub,本来是直接丢在公网不过有几个反爬严格的源拉取一旦频繁就会异常只能随手加了验证.结果发现很多RSS公共服务要么无法支持要么需要付费.inoreader需要49.99$/年的套餐才支持受保护的源,而Feedbin直接就只有付费帐号.