回归阅读的本质
站在 2024 年的今天,回看过去的这么多年,各种推荐算法和信息流层出不穷,您会发现在刷某乎、头条科技栏位时,大数据会根据您的喜好推送一堆的相同文章给您,这会让我们陷入推荐算法的漩涡。在大数据加持的今天,各类平台好像比您更懂您自己,很多文章为了流量红利都会起一个吸引眼球的标题,一下子流量就上去了,大数据就开始疯狂推送,实际质量一言难尽。果断删除该应用,世界瞬间清净了。但我们始终需要通过网络获取一些"养分",于是木子开始转向阅读一些相对优质的独立博客,但这种管理起来相对比较麻烦,当我们在手机浏览器里浏览,标签页一关就忘了。所以一个良好的阅读管理工具不可少。RSS 可以说是一个古董级的信息获取手段了,但站在今天,它依然是最好的阅读管理工具之一。它可以最大限度的让您自主可控的管理您的信息流,而不会被各种算法所左右。
FreshRSS 简介
RSS 全称简易信息聚合(RDF Site Summary 或 Really Simple Syndication),是一种用 XML 编写的文本格式,用于在互联网上以完全自动化的方式发布内容。RSS 属于消息来源(web/news feed)格式规范的一种,可以聚合信源网站的内容更新,并自动通知用户(订阅者)。
FreshRSS 是一个基于 PHP 语言的自托管 RSS 源聚合器。具备轻量、易于使用、功能强大且可定制等特点。功能十分丰富且强大,支持多用户,且具有匿名阅读模式。同时,支持自定义标签,并提供基于 Google Reader API (推荐)和 Fever API (功能和效率部分受限)的应用程序接口和命令行界面。但 RSS 订阅,需要对应网站开启 RSS 订阅功能,像 Rocky Linux 中文社区就开启了对应订阅: Rocky Linux RSS,如果一些网站没有开启 RSS 订阅,您又想订阅怎么办了?这时候就需要用到另一款软件 RSSHub。RSSHub 是一款开源、易用且可扩展的 RSS 源聚合器,它能从几乎所有内容生成 RSS 源。RSSHub 可以从各种来源聚合内容,并可与浏览器扩展程序 RSSHub Radar 和移动辅助应用程序 RSSBud(iOS)、 RSSAid(Android)一起使用。简单来说,我们可以通过 RSSHub 将任何不支持 RSS 的内容都聚合为 RSS 源,再添加进 FreshRSS 管理,最后借助 FreshRSS 的 GReader API 将内容导入客户端应用程序阅读。
部署 FreshRSS
说明: 基于前期构建的 traefik 网关,详见: DIY NAS系列12 — Traefik 出口网关配置
在 docker-compose.yaml 文件中,会对重要的配置进行说明,因个人网络环境等不同,需要根据自身实际情况调整配置。
[root@demo freshrss]# cat > docker-compose.yaml << \EOF
version: '3'
services:
freshrss-db:
image: postgres:12
container_name: freshrss-db
hostname: freshrss-db
restart: unless-stopped
volumes:
- /SSD/Demo/freshrss/freshrss-db:/var/lib/postgresql/data
networks:
- traefik_net
environment:
POSTGRES_USER: freshrss
POSTGRES_PASSWORD: password
POSTGRES_DB: freshrss
freshrss-app:
image: freshrss/freshrss:latest
container_name: freshrss-app
hostname: freshrss-app
restart: unless-stopped
ports:
- "8086:8086"
depends_on:
- freshrss-db
volumes:
- /SSD/Demo/freshrss/data:/var/www/FreshRSS/data
- /SSD/Demo/freshrss/extensions:/var/www/FreshRSS/extensions
environment:
CRON_MIN: '*/45' # RSS 刷新周期,单位为分钟,*/45 表示每 45 分钟刷新一次
TZ: Asia/Shanghai # 时区
LISTEN: 0.0.0.0:8086 # 这里将监听端口设置为8086,如果使用默认80,traefik 在反代的时候会出现 Bad Gateway 报错
TRUSTED_PROXY: 192.168.0.0/16
FRESHRSS_INSTALL: |-
--api_enabled
--base_url https://rss.rockylinux.cn # 配置域名
--db-base freshrss # 数据库名称
--db-host freshrss-db # 数据库服务器地址
--db-type pgsql # 数据库类型
--db-user freshrss # 数据库用户名
--db-password password # 数据库密码
--default_user admin # 默认管理员
--language zh_CN # 设置语言,启动服务后,web界面并未生效,应该是存在Bug
FRESHRSS_USER: |-
--api_password password # 启用API,并设置API接口访问密码
--email [email protected] # 设置邮箱,web界面并未生效,应该是存在Bug
--language zh_CN # 设置语言,启动服务后,web界面并未生效,应该是存在Bug
--user admin # 设置管理员
--password password # 设置管理员密码
networks:
- traefik_net
labels:
- traefik.enable=true
- traefik.docker.network=traefik_net
- traefik.http.routers.rss.rule=Host(`rss.rockylinux.cn`)
- traefik.http.routers.rss.entrypoints=websecure
- traefik.http.routers.rss.tls=true
- traefik.http.routers.rss.service=rss
- traefik.http.services.rss.loadbalancer.server.port=8086
networks:
traefik_net:
external: true
EOF
# 启动服务
[root@demo freshrss]# docker-compose up -d
配置 FreshRSS
FreshRSS 的基础设置这里不做详细介绍,主要介绍一下怎样添加订阅以及怎样开启 API 管理功能。打开 https://rss.rockylinux.cn 账号密码为我们在 docker-compose.yaml 中设置的账号密码,输入后,点击【登录】。
点击右上角的设置图标 — 管理 ,进行详细的配置,包括: 语言、时区、主题、内容显示宽度等。
添加订阅源
点击【订阅管理】
在这里可以添加分类,然后基于添加的分类再添加订阅源。
注意对应添加的订阅源,确保订阅地址可以打开。
添加成功以后,会自动获取标题、描述等信息。
在左侧边栏,优质博客中我们可以看到订阅成功,并且已经刮取了对应最新的文章信息。点击对应文章,我们就可以安心阅读了。
启用 API 管理
设置允许 API 访问,主要是为了方便使用 Fluent Reeder 等客户端软件连接 FreshRSS 服务器。
使用管理员登录 Web 界面,点击右上角的设置,点击 认证(Authentication)
,勾选 允许 API 访问(Allow API access)
。
在账户 — API 管理,设置 API 密码。这个 Password 是 RSS 客户端连接时用的,与网页版登录密码可以设置相同也可以不同。
API 密码设置下方有一个 API 连接地址,点击进去,查看详细的 API 信息。如果 Google Reader API 和 Fever API 两项都显示 ✓PASS
,则恭喜您,您的服务器一切正常。对应的 API 地址可以记录下来,一会配置客户端需要用到。
Fluent Reader 客户端配置
安卓 Android 客户端: GitHub – readrops/Readrops: Android
Windows macOS 客户端: irreade 阅读器 – FATECORE
Windows macOS iOS Android 全能选手: GitHub – yang991178/fluent-reader
Fluent Reader 客户端可以自己单独添加订阅,也可以同步服务器端订阅,我们可以根据自己实际需求进行配置,建议统一走服务器端配置。
单独添加订阅
这里以 macOS 客户端为例,打开 Fluent Reader ,点击右上角的【设置】– 【订阅源】,输入 URL,添加即可。
通过服务器端同步
点击【服务】,选择 Google Reader API,输入端点: https://rss.rockylinux.cn/api/greader.php
,以及登录的账号密码,保存即可。
后述语
在推荐算法的漩涡和爆炸式信息流的今天,静心阅读更加珍贵,它能够让我们具有独立思考能力。而我们更应该珍惜还在默默写着独立博客的原创作者。如果您有发现优质的独立博客,请不要吝啬分享,欢迎留言。
参考文献
[1] Github FreshRSS
[2] Docker 部署 README.md
[3] 手机客户端配置说明