折腾系列二:RSSHub+TTRSS+Fever插件+自动更新+跨域服务
原文地址:https://bright.htyed.top/index.php/archives/72/
建议打开原文地址浏览,也有相应文件可供下载
开篇
RSS: 一种好用的信息聚合技术。
本次折腾目的:
想要做一个能全平台获取rss的服务
平台应用:
PC: rss追踪
Android: feedme
Ios: reeder5
分析:
排除掉Inoreader、NewsBlur、feedbin、feedly等之后,就剩下onedriver和fever两种服务了
在使用onedriver过程中总会发生一些数据错乱的情况,所以打算尝试一下fever
fever需要自己搭建,在这里记录一下折腾的全过程,主要是利用ttrss和fever插件来实现这个功能。
rsshub是用来制作rss的。
[如果在国外 不愿意折腾,建议使用Inoreader服务]
RSSHub:万物皆可 RSS
介绍
RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容
搭建
首先,在宝塔面板中安装Docker 管理器
接着,打开 Docker 管理器,在「镜像管理」中获取官方库镜像 diygod/rsshub。

然后,在「容器列表」创建新的 Docker 容器:

然后,我们创建一个新的网站,不需要创建新的数据库,PHP 设置为纯静态:

把文章根目录下的文件都清空,然后把 RSSHub 源代码拉取到网站根目录 /www/wwwroot/rsshub/
最后,设置反向代理,以便我们可以通过域名来访问该服务:

这样,我们的 RSSHub 就完成了搭建,具体的配置和路由可以参见RSSHub 文档。
原文链接:https://blog.dlzhang.com/posts/49/
TTRSS
介绍
Tiny Tiny RSS Tiny Tiny RSS 是一个免费和开源的基于 Web 的新闻提要 (RSS/Atom) 阅读器和聚合器

搭建
首先,利用宝塔新建一个站点:xxx.xxx.xxx
,然后配置PHP为7.4
(只要大于5.5就行,7.x性能更好)

然后,安装PHP的fileinfo
扩展

然后,下载源码,放到xxx.xxx.xxx的目录下,注意把之前的里面的文件删掉。
TTRSS源代码点此处下载
打开xxx.xxx.xxx/install
,开始安装:

测试配置之后,初始化数据库,然后保存配置文件,再次打开xxx.xxx.xxx
,会发现出现了登陆窗口,账号:admin
,密码:password
安装完成!
细节调整:
修改时区

更新:自动更新比较简单,打开根目录的config.php,然后搜索SIMPLE_UPDATE_MODE,将其设为true即可。
TTRSS-RSSHUB主题
将 CSS 文件下载到
themes.local
tt-rss 根目录下进入您的 tt-rss 首选项并选择
rsshub.css
主题
fever插件
将其移至plugins
文件夹中解压,文件名改成fever

然后打开偏好设置--用户插件--fever
,打开,然后刷新,会看到下面有一行Fever Emulation
选项,注意下面的红框部分:

到此我们完成了fever的布置
在RSS追踪-设置-RSS服务设置-fever中输入链接-用户名-密码 即可完成配置
ttrss自动更新
使用 crontab 开启后台自动更新模式
打开 config.php
配置文件,将 PHP_EXECUTABLE
的 PHP 路径设置好:
# /usr/bin/php 为我的系统的 php 路径,仅供参考define('PHP_EXECUTABLE', '/usr/bin/php');
如果找不到 PHP 路径的话,可以通过在站点目录下创建 <?phpecho phpinfo();
的 .php
文件后打开浏览器访问查看。
改好 config.php 文件后,需要创建一个 Linux 普通用户,之所以要另外创建一个用户,是因为更新脚本文件 update.php
或 update_daemon2.php
不能由 root 用户来执行,但是可以通过 apache
或者 Nginx
的运行用户来执行脚本计划(这里拿创建一个名叫 ttrss
的用户举例):
# 创建新用户adduser ttrss# 给新用户初始化密码passwd ttrss
给相关目录设置 777
的权限:
chmod -R 777 feed-icons
chmod -R 777 lock
chmod -R 777 cache/exportchmod -R 777 cache/images
chmod -R 777 cache/upload
用 crontab 添加一个定时运行计划:
crontab 命令被用来提交和管理用户需要周期性执行的任务,与 windows 下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
先看下 crontab 定时计划的规则示例:
# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |
* * * * * user-name command to be executed
由于 Tiny Tiny RSS 的更新脚本不能用 root 执行,所以需要用到上文创建的用户来执行计划:
# 编辑 cron 文件,写入 ttrss 用户,允许 ttrss 用户使用 crontab 命令sudo vi /etc/cron.allow# 以 ttrss 用户身份执行 crontab 计划crontab -u ttrss -e# 在打开的计划编辑页面输入指令,每45分钟执行一次计划*/45 * * * * /usr/bin/php /你的tinyrss站点目录/update.php --feeds --quiet
注意:
定时时间可以自行修改
为了保证 crontab 正常运行,一定先在 cron.allow 中写入执行用户
/usr/bin/php 为我的系统的 php 路径,仅供参考
检查定时计划的配置是否成功:
方法一
# 在 root 身份下,查看 ttrss 用户的计划内容cat /var/spool/cron/ttrss# 查看 crontab 的 log 文件是否包含 ttrss 用户的计划内容cat /var/log/cron
如图:

方法二
# 切换到 ttrss 用户身份下su ttrsscrontab -l# 同样可以看到该用户的计划内容
如图:

进一步确保 crontab 命令是否正常运行,在 ttrss 用户身份下执行:
/usr/bin/php /你的tinyrss站点目录/update.php --feeds
当终端开始运行计划,并显示信息源的更新时间,则说明定时任务配置成功,如图:

以上配置都完成后,Tiny Tiny RSS 就可以每45分钟在后台自动更新信息源了。
跨域服务
1.下载源文件上传到你的服务器并解压,安装cors-anywhere,
2.PM2管理器 添加项目、并添加启动文件为server.js

3.点击映射然后配置跨域服务域名

4.跨域服务搭建完成