欢迎光临散文网 会员登陆 & 注册

折腾系列二:RSSHub+TTRSS+Fever插件+自动更新+跨域服务

2021-12-28 14:51 作者:G天眼  | 我要投稿

原文地址: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.localtt-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.跨域服务搭建完成

折腾系列二:RSSHub+TTRSS+Fever插件+自动更新+跨域服务的评论 (共 条)

分享到微博请遵守国家法律