使用miniflux和rsshub搭建自己的rss服务

使用miniflux和rsshub搭建自己的rss服务

Tags
Published
Published July 9, 2022
Author

0. 使用到的东西

  • miniflux:使用go编写的轻量迅速的rss服务器。
  • rsshub:rss订阅生成器。为不支持rss网站生成rss订阅。
整个部署过程非常简单,只需要在railway和vercel上点几下就能部署成功,不需要使用ssh管理服务器。
 

1. 部署miniflux

先fork miniflux的项目:https://github.com/miniflux/v2
 

1.1 创建一个stable分支

然后我们需要创建一个stable分支,回溯到发布release的那个commit。因为miniflux的主分支会比release要多代码,我们日常使用会更想要稳定一点。所以等待作者确定最新主分支是没问题的可以发布一个release了,我们部署最新的release版本就好。
创建分支最方便的方法是使用具有图形界面的github desktop。虽然使用命令行也可以,但是使用github desktop会让你方便不少。
下载github desktop后,克隆自己仓库里的miniflux下来
 
先看一下最新的release版本,https://github.com/miniflux/v2
notion image
 
使用github desktop克隆自己的miniflux下来后,从history中往下滚,找到这个 2.0.37 的commit,右键,从这个commit创建一个分支:
notion image
分支名字是 stable
 
推送到github上:
notion image
 
然后在github自己的仓库就能看到这个新建的分支了:
notion image
 
 

1.2 在supabase部署一个postgresql数据库

原先我是在railway里部署了一个postgresql数据库,但是数据库是时刻在运行的,一个月的费用将近10刀,即使是有10刀的免费额度,也可能会超费用。所以得换到免费的supabase上。
在supabase上新建账号后,新建一个项目,新建项目时会让你设置密码,这个密码就是数据库的密码。记下来,待会会用到这个密码。
notion image
把这个数据库的URL复制下来,把 [YOUR-PASSWORD] 换成上面你设置的密码。注意方括号 [] 要删了。最后是形如 :
postgresql://postgres:[email protected]:5432/postgres
 
 

1.3 在railway部署miniflux

在railway中导入miniflux仓库,进行部署。不需要填任何环境变量,因为我们需要获得生成项目后分配的域名,并且还要给这个项目添加数据库、修改设置。
初次部署会提示失败,这时候项目已经起好了。
修改部署stable分支:
notion image
 
生成一个域名:
notion image
把这个生成的域名复制下来。
如果你有自己的域名,可以点击右边的 custom domain 添加自己的域名。
 
[可选] 可能需要把Builder换成Heroku:
notion image
railway默认是nixpacks,在我这时候可能是miniflux作者还没写好这个部署配置文件,所以用nixpacks会部署失败。
如果你使用ninxpacks部署没问题那么就不需要更改。
 
给miniflux填入环境变量:
notion image
notion image
DATABASE_URL=supabase的postgresql链接 PROXY_IMAGES=all RUN_MIGRATIONS=1 BASE_URL=https://域名,刚刚分配的域名 ADMIN_USERNAME=你的用户名 ADMIN_PASSWORD=你的账户密码 CREATE_ADMIN=1 POLLING_PARSING_ERROR_LIMIT=0
POLLING_PARSING_ERROR_LIMIT的作用是,防止miniflux在3次访问rss失败后,不再自动更新网站。设定为0就是禁止不自动更新网站。
 
可以看到重新部署就成功了:
notion image
 
打开部署好的miniflux:
notion image
notion image
可以在settings里修改显示的语言。

2. 部署rsshub

 

2.1 使用rsshub官方服务

我们可以直接使用rsshub提供的服务,获得生成好的rss订阅,https://github.com/DIYgod/RSSHub
通过vercel自建也只需要点击鼠标即可,所以建议选择自建分流rsshub官方服务的压力。
 

2.2 [可选]通过vercel部署rsshub

在vercel点击新建项目,导入rsshub仓库。
不需要填入任何环境变量,点击部署即可:
notion image
 
点击一下即可访问:
notion image
notion image
 

2.3 rsshub的使用方法

先去rsshub官方查看链接:https://docs.rsshub.app/
https://rsshub.app/ssmh
然后我们把中间的域名替换成vercel部署的:
https://rssh-ub-tau-one.vercel.app/ssmh
然后去miniflux里面订阅这个链接就行了

3. 一些工具

3.1 rss阅读软件

虽然miniflux网页版已经很够用了,但是使用rss阅读软件会有更好的体验。
使用rss阅读器需要在miniflux中开启fever api:
notion image
然后在rss阅读器中填入这个链接、用户名和密码。
FocusReader非常地漂亮,精致、流畅,是我见过安卓上最好的rss阅读软件:
notion image
FocusReader在酷安商店也有,不使用谷歌商店的话可以在国内商店里搜索下载。
 
reeder:
notion image
 

3.2 使用RSSHub Radar方便地获得rss链接

一般我们在网站首页可以顶部或者底部能够看到官方提供的rss链接,但是有时候没有显示,但是手动尝试输入这些链接:
https://网站.com/feed https://网站.com/rss.xml
尝试下可能会找到网站的rss订阅链接。
我们也可以安装rsshub提供的浏览器插件,RSSHub Radar方便得获地rss链接。
notion image
rsshub radar可以自动地发现网站的官方rss链接(有一部分rsshub radar会发现不到,因为格式不符合rsshub radar),也会显示rsshub上这个网站相关的rss链接。
 

3.3 获得rss订阅的网站

在这里可以获取公众号的订阅
 
在这里可以获取一些网站的全文rss订阅
 

4. 后记

这次又用到了老朋友vercel和railway,这两个部署平台是太好用了,全程点鼠标就可以部署好。
现在的网站和应用越来越讲究私域流量,不让搜索引擎检索他们的内容,提高你对他们app的粘性。其实这也无可厚非,赚钱嘛。
我不觉得使用rss是很高级的一个行为。只是如果感兴趣的内容分布在几个app里面,例如微信公众号、b站的视频,要想看有没有更新,就得全部应用打开看一次。开放应用通知又天天给你推垃圾运营信息。
使用rss能在一个地方获得通知就方便很多了。
谨记重在阅读,不要订阅了一堆又不看。

参考

打造你独享的 RSS 阅读环境 -- RSSHub 与 Miniflux 自建指南
自从我明确意识到推荐算法的危害以来,我就一直以以 RSS 订阅作为我的主要信息来源。推荐算法所做的事就是不断地将你想要接收的信息反哺给你,导致你对世界的感知被扭曲,直到你陷入消费主义的囚笼。而 RSS 是一种能帮助你主动获取信息的工具 -- 掌握权在你,而非在推荐系统。此外,RSS 与独立网站一起也是对抗网络审查的天作之合。 长期以来我使用 Feedly 订阅 RSS,并辅以 RSSHub 来订阅一些不支持 RSS 的网站。但我最近遇到了以下问题: RSSHub 的免费官方实例用户较多,许多路由因遭到了目标站点反爬虫措施的反制而无法使用; 对于一些小众冷门的 Feed,Feedly 更新经常有延迟,有时甚至还会出现缺漏; 随着我订阅的 Feed 逐渐增多,其数量接近了 Feedly 免费用户能订阅的数量上限 -- 但 Feedly 每月订阅费用过于高昂; 为了解决上述问题,我决定自建 RSSHub,并使用 Miniflux 代替 Feedly。本文就将介绍我自建 RSSHub 与 Miniflux 的过程,以供参考。 我个人最推荐的 RSSHub 自建方式是通过使用 Vercel。自建过程非常简单,也不几乎需要计算机相关的知识。如果自建好了 RSSHub,你也可以在社交网络上或者 All About RSS 这里把你的自建实例分享出去供大家使用,并为官方实例缓解压力。 最简单的部署方式,就是在 RSSHub
打造你独享的 RSS 阅读环境 -- RSSHub 与 Miniflux 自建指南