在算法推荐满天飞的世界里,定制获取信息就显得比较另类了,但是它可能是更高效的手段。

本篇是我之前提到的三种常规的 RSS 服务搭建方式的第二篇,Stringer。

如果你有阅读过我之前写的文章,那么参考本篇文章将文章搭建起来,应该只需要3分钟或者更少,如果你没有看过,那么可以点击本文相关的文章标签,阅读过往的文章。

关于 Stringer

Stringer 是一款基于 Ruby 编写的 RSS 服务。相比同为 Ruby 编写的 feedbin ,它的架构更为简单,界面也更现代化。

我之前使用它的主要原因有:

  • 支持有限时间的离线缓存。
  • 支持 Fever API,允许用户在客户端阅读器上进行阅读。
  • 代码量不大,技术栈简单。

但是它也有一些问题:

  • 文档不够丰富,优化调试时,需要翻代码。
  • 维护者虽然还在持续更新,但是活跃度不高。
  • 如果想离线图片,那么需要修改代码实现,或者自己包装一层 Feed 源。

如果你想了解更多,可以访问这里,如果你只是想使用,那么请继续阅读。

封装一个新的 Docker 容器镜像

为什么要封装一个新的容器呢?

社区里有好心人对当前版本提供了新的代码提交,但是没有被合并到主干,评论里也有提到一些安全风险需要修正,官方容器镜像的代码内容比较旧。

而且对比自己封装镜像和官方镜像的差异,发现文件尺寸也差了接近一倍。并且官方使用的数据库版本比较旧(PQ v9.5),在使用的过程中,还需要手动进入容器进行辅助操作,太不环保了。

你可以使用下面的配置,构建属于你的新镜像。

我这里将镜像构建后命名为 docker.lab.com/stringer:stable ,后续我们进行服务编排的时候,会使用。

使用 Docker 和 Traefik 提供服务

下面是我提供的服务应用配置,定义了中文界面,每十五分钟的更新频率。

在使用 docker-compose up 将服务运行起来之后,我们打开浏览器,访问:rss.lab.com ,设置你的个人账号密码之后,你就能够拥有一个功能强大,界面友好的 RSS 订阅服务了。

stringer rss 默认界面

默认没有数据源,所以你需要添加一个数据源,如果你之前是 RSS 用户,可以直接使用 OPML 数据源导入的方式批量导入你的订阅,每一个列表元素前的红绿小点表示了网站数据是否通畅,如果你订阅的网站在国内因为网络原因不能访问,可以自己对它进行网络中转,再添加订阅。

stringer rss 默认界面

Stringer 和其他阅读器不同的是,它的理念只是倡导阅读,整理贮藏的操作需要用户额外使用其他的软件进行,阅读过的文章默认保存时间是一个月。

stringer rss 默认界面

最后

之前写文章总是考虑没有阅读基础的同学,而忽略了一直订阅、关注着我的同学,未来重复的内容,我将会和本文一样,给予简短的指引,不赘述基础建设,只聊主题相关的核心部分。

虽然这个服务搭建完毕了,但是并不能很好的服务于我们,因为在当前的网络大环境下,越来越多的网站“被迫封闭了起来”,不再支持 RSS 方式的订阅模式,至于如何解决,请耐心等待这三篇文章结束后,我提供的方案吧。

— EOF