RSS 服务器端
- FreshRSS 自建
FreshRSS
Docker 方式运行: (文档)
mkdir -p /root/files/appdata/FreshRSS-data /root/files/appdata/FreshRSS-extensions
docker run -d --restart unless-stopped --log-opt max-size=10m \
-v /root/files/appdata/FreshRSS-data:/var/www/FreshRSS/data \
-v /root/files/appdata/FreshRSS-extensions:/var/www/FreshRSS/extensions \
-e 'CRON_MIN=*/5' \
-e TZ=Asia/Shanghai \
--net nginx \
--env "VIRTUAL_HOST=freshrss.example.com" \
--env "LETSENCRYPT_HOST=freshrss.example.com" \
--name freshrss freshrss/freshrss
以上命令参数说明
- CRON_MIN 是 freshrss 定时任务(负责后台更新feeds数据) 的 crontab 的 MINUTES 字段值。
- 使用 nginx-proxy 配置了 HTTPS 反向代理,域名 freshrss.example.com。
浏览器打开 https://freshrss.example.com , 会显示初始安装界面,配置管理员用户名和密码等即可(数据库配置为默认的 sqlite 即可)。
配置:
按照官方文档 步骤开启 API。
- Under the section “Authentication”, enable the option “Allow API access (required for mobile apps)”.
- Under the section “Profile”, fill-in the field “API password (e.g., for mobile apps)”.
- Every user must define an API password.
- The reason for an API-specific password is that it may be used in less safe situations than the main password, and does not grant access to as many things.
feeds 数据刷新频率:
FreshRSS 页面 - Configuration - Archiving - Do not automatically refresh more often than 配置项。默认1h (1小时), 页面上最短可以设置为 20m (20分钟). FreshRSS 两次拉取同一个 feed 的时间间隔不会少于这个值(不管是页面上手动刷新还是后台 cronjob 任务自动刷新)。如果需要修改为 < 20m 的值:
cd /root/files/appdata/FreshRSS-data
vi users/admin/config.php
<?php
return array (
'ttl_default' => 300,
)
文件路径中的 admin 是需要修改配置的用户名。修改 ttl_default 值(秒数)即可。由于 FreshRSS 使用世界上最好的语言 PHP 开发,修改后立即生效。
API 地址:
- API 说明页面: https://freshrss.example.com/api/
- Google Reader compatible API: https://freshrss.example.com/api/greader.php
- Fever compatible API: https://freshrss.example.com/api/fever.php
使用 Google Reader API / Fever API 兼容的客户端连接时,指定 API endpoint 为对应的地址,然后配置用户名和 API 密码即可。
使用:
- FreshRSS 添加某些 (RSSHub 生产的) RSS 源时需要在 url 后加上 "#force_feed", 否则报错。
RSSHub (Github)
使用 RSSHub 为各种网站创建 RSS 源。
官方服务: https://rsshub.app/ (部分反爬严格的网站无法工作,需要自建)
例如:
- cnbeta RSS : https://rsshub.app/cnbeta (文档)
RSSHub 使用 node.js 开发。自建支持 Docker / heroku 等部署方式。
Docker + docker-compose 部署
mkdir -p /root/files/appdata/rsshub && cd $_
vim docker-compose.yml
docker-compose up -d
docker-compose.yml : (在官方基础上修改)
version: '3'
services:
rsshub:
image: diygod/rsshub
#network_mode: bridge
restart: always
#ports:
# - '1200:1200'
environment:
NODE_ENV: production
VIRTUAL_PORT: 1200
VIRTUAL_HOST: "rsshub.example.com"
LETSENCRYPT_HOST: "rsshub.example.com"
CACHE_TYPE: redis
REDIS_URL: 'redis://redis:6379/'
PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
depends_on:
- redis
- browserless
browserless:
# See issue 6680
image: browserless/chrome:1.43-chrome-stable
#network_mode: bridge
restart: always
ulimits:
core:
hard: 0
soft: 0
redis:
image: redis:alpine
#network_mode: bridge
restart: always
volumes:
- redis-data:/data
volumes:
redis-data:
networks:
default:
external: true
name: nginx
以上同样使用 nginx-proxy 在 https://rsshub.example.com 地址提供反向代理(nginx-proxy 运行在 docker 的 "nginx" network 里),注意 RSSHub 的官方 Docker 镜像 http 服务跑在 tcp/1200 端口。
RSS 阅读器
fluent-reader
- Windows 客户端 (不要从 Microsoft Store 下载, 有毒)
- Fluent Reader Lite (Mobile app)
- Android apk 下载 (me.hyliu.fluent_reader_lite)