来自 Wikipedia:
RSS(英文全称:RDF Site Summary 或 Really Simple Syndication),中文译作简易信息聚合[3],也称聚合内容,是一种 消息来源 格式规范,用以聚合多个网站更新的内容并自动通知网站订阅者。使用 RSS 后,网站订阅者便无需再手动查看网站是否有新的内容,同时 RSS 可将多个网站更新的内容进行整合,以摘要的形式呈现,有助于订阅者快速获取重要信息,并选择性地点阅查看。
简单地说,就是把各种网站的更新聚合到一起查看。
在关注多个网站的时候,如果想要检查网站有没有更新,一般需要打开每一个网站看一看。
RSS 便可以把这些信息聚合起来,在一处查看。
同时,部分网站也提供 RSS 用于监控某些变化,比如 GitHub 提供了仓库 commit 或者新 issue 等 RSS 源。
而且,在 RSSHub 这个项目的帮助下,我们可以给没有提供 RSS 的网站制作 RSS:意味着你可以用 RSS 订阅微博,B 站,知乎等社交媒体平台!
使用 RSS,主要要解决两个问题:订阅源和阅读器。
订阅源是一个链接,其中包括了文章信息,一些网站已经提供了 RSS 链接,比如 我的博客的 RSS 地址,而对于没有提供 RSS 订阅源得网站,就需要 RSSHub 来生成订阅源。
对于阅读器,现在大部分的 RSS 客户端都提供直接订阅 RSS 链接,或者可以直接使用 inoreader 这类一站式解决方案(如果你的需求免费方案即可满足,或者买得起 $9.9/月 的 Pro 套餐),如果你既有一些高级需求(如按正则过滤),又不想花太多钱,就可以选择自建方案,如本文要搭建的 miniflux。
{%note warning modern %}
如果你的服务器是中国大陆地区的,那么在没有备案的情况下,无法使用80或者443端口,也就是说不需要也不用做第二个需求。
如果还未购买云服务器,且对中国大陆的访问速度没有极高的要求,强烈不推荐购买位于中国大陆的服务器
{% endnote %}
RSSHub 文档:
RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容
可以直接用官方示例实例 rsshub.app,不过反爬严格的路由肯定是用不了了
或者 RSSHub 提供了大量云服务的安装方法,具体参见文档。
我比较推荐的是 部署到 Vercel,因为 Railway 和 Heroku 现在不付费的体验很不好,其他的服务我也不熟悉。
这种办法的缺点就是云服务的 ip 可能比较脏,部分反爬严格的路由可能会用不了
如果不想搭建,可以直接使用我的实例:https://rsshub.yfi.moe
如果你跟着 文档 走的话,记得去 docker-compose.yml 里看一眼,按照注释进行修改,或者直接用我提供的 docker-compose.yml
确定已经安装好了 docker 和 docker-compose,并且安装了一个反向代理工具(比如 nginx)。如果是新买的服务器,可以参考这篇文章 【Docker系列】一个反向代理神器——Nginx Proxy Manager
切换到 root 用户,进入一个你喜欢的目录,比如 /root/data/docker_data/rsshub
编辑一个 docker-compose.yml
填入以下内容(这是一个最小的配置)
version: '3'
services:
rsshub:
image: diygod/rsshub:chromium-bundled
restart: always
ports:
- '1200:1200'
environment:
NODE_ENV: production
CACHE_TYPE: redis
REDIS_URL: 'redis://redis:6379/'
depends_on:
- redis
redis:
image: redis:alpine
restart: always
volumes:
- redis-data:/data
volumes:
redis-data:
创建 volume 持久化 Redis 缓存 docker volume create redis-data
检查一下 1200 端口有没有被占用,没有的话继续,有的话把上面文件里的前一个 1200 改成一个没被占用的端口
docker compose up -d
然后浏览器访问 http://你的服务器ip:1200
,出现以下页面即为成功a
做一下反向代理
Miniflux is a minimalist and opinionated feed reader.
轻量!轻量!轻量!
主要的竞品是 Tiny Tiny RSS 和 FreshRSS
产品 | 优点 | 缺点 |
---|---|---|
Tiny Tiny RSS | 功能和插件最丰富 | 资源占用多,更新缓慢 |
FreshRSS | 支持 XPath 抓取不支持 RSS 的网站 | 资源占用也不小 |
Miniflux | 资源占用小,功能够用 | 无法为每个源自定义抓取间隔 |
注:都是我自己用下来的感觉,不一定准确
如果你要使用 TTRSS,不建议使用官方原版,用 🐋 Awesome TTRSS
切换到 root 用户,进入一个你喜欢的目录,比如 /root/data/docker_data/miniflux
新增一个如下的 docker-compose.yml
version: '3.4'
services:
miniflux:
image: miniflux/miniflux:latest
container_name: miniflux
ports:
- "8880:8080"
depends_on:
- db
environment:
- DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
- POLLING_PARSING_ERROR_LIMIT=10 # 抓取失败多少次后暂时禁用源
- POLLING_FREQUENCY=30 # 抓取间隔
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=yourname #管理员账户名称
- ADMIN_PASSWORD=pleasechangeme #管理员密码,记得修改
- BASE_URL=https://miniflux.yunfinibol.top
db:
image: postgres:15
container_name: miniflux-db
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
更多的环境变量参见:Configuration Parameters
检查一下 8880 端口有没有被占用,没有的话继续,有的话把上面文件里的 8880 改成一个没被占用的端口
启动容器
docker compose up -d
即可docker ps -a
中,miniflux 的状态 Exited),可能是因为启动顺序的问题,可以依次启动,即可解决docker compose up -d db
docker compose up -d miniflux
浏览器访问 http://你的服务器ip:8880, 应该可以看到登陆页面
做一下反向代理
在设置 ->设置中可以把语言改为中文,并且打开深色模式自动切换
直接用网页看就行!Miniflux 的网页版是支持 PWA 和移动版的,除了简陋了一点,体验很不错
Miniflux 提供多样的 API,供第三方软件使用,包括专有的 Miniflux API,以及通用的 Fever API 和 Google Reader API
可以试试 Fluent Reader,支持三种 API,建议直接使用 Miniflux
在 Miniflux 中,转到 设置 ->API 密钥,可以直接使用默认提供的账号密码的,也可以新建一个
打开 Fluent Reader 的设置 ->服务,选择 Miniflux
端点即为网页上的 API Endpoint,剩下的填好即可
因为在 20 年初的时候 Inoreader 的推荐价值导向问题,导致大量 RSS 阅读器从国区下架,包括大量本身不提供任何内容的优秀 RSS 客户端。如果你没有外区商店账号,我推荐使用 Unread 或者 ReadKit,两者是国区商店里矮子里挑高个的佼佼者;如果你有外区账号,我强烈推荐使用 $4.99
的 Reeder 5,可以说是平衡了价格和功能的最佳选择(也有 macOS 版);如果你不仅有外区账号,还能内购付费,而且手头比较宽裕,直接用 $14.99/year
的 Fiery Feed 吧,除了贵,几乎没有缺点。
对于 ReadKit 和 Fiery Feed,它们直接支持了 Miniflux 的专有 API,设置方法和 Windows 端的 Fluent Reader 一样,剩下的可以通过 Fever API 或者 Google Reader API 阅读,设置方法大同小异,这边以 Google Reader API 配上 Reeder 做演示
在 Miniflux 中,转到 设置 ->集成,打开 启用 Google Reader API
,并且设置一个专用的用户名/密码,点击更新以保存
在 Reeder 中,点击右上角加号以新增账号,选择 Reader
Server 中输入 Google Reader API 端点
,用户名/密码使用刚刚设置的
不太了解,ReadYou 还有 feedme 好像不错
至此,一个完全由自己掌握的 RSS 系统就搭完了,但是其实 RSSHub 和 Miniflux 还有很多本文不曾提到的实用功能,大概会在之后的文章里在写吧,自己翻翻 RSSHub 的文档和 Miniflux 的设置应该就能发现一些