自建RSS信息聚合服务
1. RSS现状
RSS介绍,摘自WIKI百科:
RSS(全称:RDF Site Summary;Really Simple Syndication),中文译作简易信息聚合,也称聚合内容,是一种消息来源格式规范,用以聚合经常发布更新资料的网站,例如博客文章、新闻、音频或视频的网摘。RSS文件(或称做摘要、网络摘要、或频更新,提供到频道)包含全文或是节录的文字,再加上发布者所订阅之网摘资料和授权的元数据。简单来说 RSS 能够让用户订阅个人网站个人博客,当订阅的网站有新文章时能够获得通知。
RSS摘要可以借由RSS阅读器、feed reader或是aggregator等网页或以桌面为架构的软件来阅读。标准的XML档式可允许信息在一次发布后透过不同的程序阅览。用户借由将网摘输入RSS阅读器或是用鼠标点取浏览器上指向订阅程序的RSS小图标之URI(非通常称为URL)来订阅网摘。RSS阅读器定期检阅是否有更新,然后下载给监看用户界面。
RSS的黄金年代早已随着2013年Google Reader的下线而逝去,随之而来的是各种聚合类新闻APP,它们利用实时推送提高了信息传递的速度,利用推荐算法实现了信息传递的精准度。然而在这个信息爆炸的时代,良莠不齐的内容、低俗偏激的评论,大数据+人工智能精心打造的信息茧房真的适合人们去阅读去思考吗?
对信息来源、信息内容、信息实时性有要求,希望操作界面简单、适合阅读、跨平台。在2021年,利用RSS打造这样一个信息聚合服务,依然是小众之选,但却可以获得更纯粹的阅读体验。
目前市面上依然活跃的RSS服务当属Feedly和Inoreader:
- 均为国外产品,国内处于被墙状态。
- 均有免费版。免费版订阅源更新较慢,普遍为小时级。此外Inoreader免费版有广告。
- Feedly资费:6$/12$/month, Inoreader资费:1.67$/5.83$/month.
- 个人更喜欢Feedly的移动端界面交互。
如果不愿意折腾,又有梯子,个人更建议使用成熟的第三方RSS服务。但我个人有轻量云服务器,所以最终选择使用RSSHUB+TTRSS自建RSS服务。
2. 资源清单
- 基础设施
- 阿里云/腾讯云 轻量云服务器 2vCPU/4G内存/80G硬盘/30M带宽(仅供参考)
- 阿里云 域名
- 系统环境
- Ubuntu 20.04
- 软件工具
- docker / docker-compose:用于部署RSSHUB、TTRSS
- Nginx:用于反向代理
- acme.sh:用于生成SSL证书
- RSSHub:用于生产RSS Feed
- Awesome-TTRSS:用于搭建RSS服务
3. 域名与SSL证书
域名
- RSSHub域名拟定为:rss.yyyy.zz
- TTRSS域名拟定为:hub.yyyy.zz
RAM账号
- 阿里云“访问控制”
- 创建用户并赋予权限“AliyunDNSFullAccess”
- 创建AccessKey,记住AK和SK
SLL证书
使用Docker启动acme.sh,因为是daemon模式,容器会以最小资源保持运行,以便定期自动刷新证书
1
2
3
4
5
6
7
8替换AK、SK
可修改挂载卷目录 /home/ubuntu/acme ,用于存放证书
docker run --rm -itd \
-v /home/ubuntu/acme:/acme.sh \
-e Ali_Key="AK" \
-e Ali_Secret="SK" \
--name=acme.sh \
neilpang/acme.sh daemon进入容器,执行命令生成SSL通用域名证书
1
2
3替换 -m 邮箱
替换 -d 域名 yyyy.zz
docker exec -it acme.sh --register-account -m xxxx@yy.com --issue --dns dns_ali -d yyyy.zz -d "*.yyyy.zz"
4. 搭建RSSHUB
RSSHUB的文档可参考 介绍 | RSSHub,可以直接使用RSSHUB的公共订阅源,但缓存时间为20分钟,意味着新信息刷新时间有20分钟延迟,此外因为某些网站反爬严格,公共订阅源会被ban,此时使用私有化部署就可以解决问题。使用私有化部署的订阅源,只需要替换RSSHUB官方订阅源的域名。如https://hub.yyyy.zz/36kr/news/lastest
1 | # 可修改redis挂载卷 /home/ubuntu/rsshub/redis |
5. 搭建Tiny Tiny RSS
参考以下方式进行部署,初始账号:admin,初始密码:password
1 | version: "3" |
可参考TTRSS的文档添加上一步私有化部署的RSS订阅源,进行主题设置等功能。
全文索引插件:用于获取原文
可在“偏好设置——插件”里开启mercury。
启用mercury后,还需在“订阅源——插件”中设置插件地址为
localhost:3000
,然后在编辑订阅源中启用插件。在TTRSS中使用mercury
Fever API插件:用于某些RSS客户端
可在“偏好设置——插件”里开启fever。
在“偏好设置——fever emulation”设置fever密码
在RSS客户端(见第6章)填写TTRSS域名的fefver api地址,如 https://rss.yyyy.zz/plugins/fever
6. RSS客户端
2021年,符合界面美观、操作简洁的RSS客户端不多了,很多好用的APP如Press已经下架或者停更。好在RSS的小圈子依然有一些独立作者在开发。以下仅推荐几个个人觉得还不错的客户端。
Windows
- TTRSS Web端(免费)
- Windows商店的Newsflow:支持Fever API(免费)
- Windows商店的RSS 追踪:支持Fever API(付费)
iOS
- Reader 4:支持Fever API(付费)
Android
- FocusReader:支持TTRSS(免费/年费)
- 知微:支持TTRSS(免费)
目前个人在Windows使用RSS追踪,Newsflow也不错,都需要开启TTRSS的Fever API。在Android使用FocusReader,知微也很符合使用习惯,但目前缺少字体设置功能。暂时不推荐Feedme,它的Mobilizer不是很好,页面经常出现混乱,此外图片也无法正常加载,待作者更新解决这些问题。
自建RSS信息聚合服务