周天记 我在人间混日子

FreshRSS实现文章订阅

RSS订阅这个功能,对于想看自己所关注博客的文章,还是非常有必要的,我之前使用Hexo建站使用的是fcircle来搭建,部署上稍显麻烦,涉及到一些环境安装(docker、python),好在官方文档够详细,部署门槛也不是很高,但是后来发现有些问题,一是:不太稳定,二是:感觉有Bug,当然也可能是我自己前端实现的逻辑存在问题导致,所以在我换主题后,果断舍弃了,后来就到处寻找RSS订阅方案。

虹墨空间站给我推荐了Inoreader,并非私有部署,而是将RSS配置好后,将页面通过iframe内嵌进博客,我试了,可以实现,但是样式有些丑,所以舍弃了。

当然中间也尝试了不少其它应用,或多或少有些不如意的地方,所以一直没有采纳,直到看见小宋的rss订阅服务-FreshRSS文章,然后自己去了解了下,界面友好,docker搭建,很方便,就果断采纳了。

我这里就分享下自己搭建的过程,也算是做个记录了,后续迁站等等都用得上

拉取镜像,并运行

docker run -d --restart unless-stopped --log-opt max-size=10m \
  -p 4000:80 \
  -e TZ=Europe/Paris \
  -e 'CRON_MIN=1,31' \
  -v freshrss_data:/var/www/FreshRSS/data \
  -v freshrss_extensions:/var/www/FreshRSS/extensions \
  --name freshrss \
  freshrss/freshrss

剩下就是宝塔添加域名解析,然后反代等一系列操作了,配置好RSS订阅源后,几乎就是下面这个样子

搭建FressRSS阅读器,是为了在博客中能直接看到文章,而不是登录后台去看,所以我们还要接入到博客中,我们需要配置几个东西,让其支持API调用

  1. 设置>>认证中,勾选上:允许API访问
  2. 设置>>账户>>账户管理中,设置密码保存;
  3. 宝塔中添加从RSS订阅API获取数据逻辑,并设置定时访问;

如果是PHP的框架,可以参考给博客添加一个输出友链 RSS 的页面获取RSS数据,具体样式可以按照自己的喜好来调整了。

这样就可以非常方便实现RSS订阅器功能了,使用上没什么问题,很稳定。

当然也有人会选择PHP源码部署,如果你也遇到了RSS不刷新的问题,可以试试以下方案!

我发现基于源码部署后,出现了RSS未定时刷新的问题,因为docker中配置了CRON_MIN=1,31参数,其实就是设定自动刷新的,而源码中并没有,虽然在归档中设置 最小自动刷新间隔 ,实测发现并没什么用,所以决定还是通过url来实现自动刷新。

其实也就是如下两步:

  1. FreshRSS - 设置 - 认证中的"允许匿名刷新文章打开";
  2. 宝塔面板中创建定时任务,填入https://domain/i/?c=feed&a=actualize即可;

当然你如果没有使用运维面板的话,也可以借助cron来实现自动刷新

0 * * * * curl 'https://domain/i/?c=feed&a=actualize'

评论区

😃
提交

全部评论 35

  1. 头像
    叶开 Lv1 回复
    FreshRSS 以前用几年还是非常Nice的!挺好用的。
    · 福建 · Windows 10 / Google Chrome
    1. 头像
      满心 博主 回复
      @叶开 是呀,之前用其他的,还是有些不太满意,借这次机会正好换掉
      · 湖北 · Windows 10 / Google Chrome
  2. 头像
    梦泽 Lv1 回复
    我是使用友链朋友圈精简版,支持issue申请友链,但是我这边还没弄完,看源代码应该是使用的Python爬取issue
    · 湖南 · Android 10 / Microsoft Edge
    1. 头像
      梦泽 Lv1 回复
      @梦泽 不小心发了两遍抱歉
      · 湖南 · Android 10 / Microsoft Edge
    2. 头像
      满心 博主 回复
      @梦泽 我上个博客就是用的友联朋友圈,感觉还是麻烦了些
      · 北京 · iOS 17.3 / 手机微信
      1. 头像
        梦泽 Lv1 回复
        @满心 个人感觉还行
        (不是你273.zyx卖3000?不知道数字xyz不值钱嘛)
        · 湖南 · Android 10 / Microsoft Edge
  3. 头像
    LiuShen Lv3 回复
    哈哈,我自己用py写了一个爬取,然后把内容以api的方式,放到前端渲染啦
    · 湖北 · Windows 10 / Google Chrome
    1. 头像
      满心 博主 回复
      @LiuShen 那你这效率应该更高啊
      · 湖北 · Windows 10 / Google Chrome
      1. 头像
        LiuShen Lv3 回复
        @满心 还行,其实和fcircle是一样的,不过比那个简单,去掉了一些我用不上的功能,部署和响应都挺快的,并且前端代码也非常少,目前我测试了一下,同样是服务器部署,抓取成功率比fcircle高一些
        · 湖北 · Windows 10 / Google Chrome
        1. 头像
          满心 博主 回复
          @LiuShen 不错不错,妥妥的技术大佬
          · 湖北 · Windows 10 / Google Chrome