随着信息爆炸,我们的碎片化时间变得捉襟见肘,式微很久的RSS,凭借其高效管理、获取信息的能力,再次映入了我的眼帘,但市面上目前仍提供服务的RSS服务屈指可数,对于爱折腾的我而言,搭建自己专属的RSS服务或许也是不错的选择。
背景&介绍
继续上面的话题,诚然微博、微信爆炸式的信息流、几乎实时的信息传递,都把有限、定时刷新的RSS完爆,但是RSS在信息越发爆炸的现下,拥有不可取代的优点:
- 分类信息来源,管理信息来源;
- 去除冗余信息,专注于文字和图片等;
- 信息存档,避免信息被淹没;
- 为你的信息获取增加仪式感(所谓的高逼格;
起先我想要尝试miniflux
这款程序,教程:https://www.miaomiaomiao.org/6366.html
但是其实在不久之前,我刚刚在“少数派”上看到了关于Tiny Tiny RSS
的教程:https://sspai.com/post/41302
所以有点先入为主的感觉,因此最终还是选择部署Tiny Tiny RSS
。
“少数派”上的教程是基于Docker的,诚然正如其作者所言:它既具有虚拟机方式安装软件的一些长处,如对安装和卸载对宿主系统影响小、软件之间相对隔离、安全性佳等,又保留了普通方式安装软件的优点,如资源消耗较小、软件间通信较为方便等。
不过我还是打算old school一些,按照官方的文档,用老方法部署一番。
对了,如果你也使用Docker部署,或许这篇教程你也需要一看,作者在转载的同时,也对Docker部署提出了自己的改进:
《Electronic Moon 电子月亮 - 如何搭建属于自己的 RSS 服务,高效精准获取信息》
Tiny Tiny RSS(也可简称TT-RSS)
项目主页: https://tt-rss.org/
优点/特性:
- 可自定义同步间隔;
- 订阅源管理便捷、支持导入OPML;
- 可自定过滤规则;
- 安装主题/插件非常简单;
- 有中文版本,可惜不完全;
- 最重要的:目前仍处于比较活跃的开发中;
开始部署
环境要求
PHP 5.4 或以上;
PostgreSQL(9.1 或以上)或者 MySQL(必须支持InnoDB, TT-RSS不支持MyISAM);
此外,我在实际安装中,遇到了错误提示:
PHP function mime_content_type() is missing, try enabling fileinfo module.
如果你也遇到这一问题,可以参考:《手动为已编译的PHP加入fileinfo扩展模块》
官方部署文档
https://git.tt-rss.org/git/tt-rss/wiki/InstallationNotes
下载程序并开始安装
在想要安装TT-RSS的网站根目录,执行git clone:
git clone https://tt-rss.org/git/tt-rss.git tt-rss
访问TT-RSS安装程序:
http://yoursite/tt-rss/install/
你会看到如下的安装界面:
填写完成后就会自动生成config.php
的代码,你可以选择由安装程序自动生成config.php
文件,或者自己复制后手动生成config.php
文件。
对于该文件,通常我们不需要进行额外的参数设置,不过如果你需要加入邮件提醒、用户注册等功能,可以参考其中的注释,自己进行参数设置。
至此,TT-RSS其实已经安装完成了!
配置自动更新
官方文档:https://git.tt-rss.org/git/tt-rss/wiki/UpdatingFeeds
在这里,我采用了第二种方法,即crontab的方式。
这里需要注意的是更新脚本文件update.php
或update_daemon2.php
不能由root
用户来执行,可以通过apache
或者Nginx
的运行用户来执行,如apache
或者www
等。
比如我们为www
用户加入crontab
crontab -u www -e
添加如下内容:
*/30 * * * * /usr/local/php/bin/php /data/wwwroot/安装TT-RSS的目录/update.php --feeds --quiet
需要注意的是:
- 上方的
/usr/local/php/bin/php
也可能为/usr/bin/php
,具体以你实际为准; - 同时也要注意上文提到的
config.php
中的路径需与上面统一; */30 * * * *
代表每30分钟执行一次更新,你也可以按自己需求设定其他间隔。
使用&设置
以上完成后,我们像正常访问网站一样打开TT-RSS,默认账户密码:
username: admin, password: password
首次登录后请及时修改密码。同时建议创建新的使用者账户作为日常使用,与管理员账户隔开。
安装主题
Tiny Tiny RSS安装主题非常简单,只需将CSS文件放入themes
目录下,并在后台进行选择即可。
目前看到仿Feedly和仿Google Reader的这两款主题比较受到大家欢迎:
tt-rss-feedly-themehttps://github.com/levito/tt-rss-feedly-themeclean-greaderhttps://github.com/naeramarth7/clean-greader
以安装tt-rss-feedly-theme为例,先下载主题:
wget https://github.com/levito/tt-rss-feedly-theme/archive/master.zip
解压缩:
unzip master.zip
复制主题至themes子目录:
cp tt-rss-feedly-theme-master/feedly.css /themescp tt-rss-feedly-theme-master/feedly /themes
而后我们至后台启用即可。
拓展
以下拓展的解释来自:http://ju.outofmemory.cn/entry/39790
- af_unburn:解决feedburner等rss链接跳转;
- bookmarklets:在设置-信息源生成bookmarklets标签;
- embed_original:图标插件,点击图标会显示文章原始内容,而不是rss;
- fever:模拟fever api,在设置-Fver
Emulation,设置好密码,可以和tt-rss的登录密码不同,然后就能支持fever的客户端比如reeder、Mr. Reader; - ff_feedcleaner:feed广告过滤,在设置标签生成FeecCleaner标签,过滤规则要用正则表达式,比较复杂;
- googlereaderkeys:模拟google reader快捷键,如J、K等;
- import_export:在设置-信息源,导入导出配置;
- mail:图标插件,点击通过邮件分享;
- mark_button:文章右下角能够快速将文章标记为已读未读;
- mobilize:图标插件,点击显示readability简化的页面;
- note:图标插件;
- nsfw:根据标签隐藏文章内容;
- share:图标插件,点击生成唯一的url方便分享;
- swap_jk:添加j、k快捷键,类似vim;
配置 RSS 全文输出
以下内容来自:https://sspai.com/post/41302
很多网站之所以不欢迎 RSS,一个主要的原因就是提供 RSS 会分走主站的流量;因此,一些网站即便保留了 RSS 订阅源,也做得十分「不情不愿」,只「抠门」地给出前两三段的内容,要看全文还得跳转到网站才行。这显然会破坏 RSS 的阅读体验。于是,获取全文的功能就显得十分必要了;很多 RSS 服务或客户端也将其作为 Premium 订阅的卖点之一。不过,通过 Tiny Tiny RSS,我们同样可以免费实现这一效果。
事实上,Tiny Tiny RSS 原本已经内置了基于 Readability 的全文输出服务,但可惜这家服务在前段时间已经跑路,关闭了 API 接口,我们只能另请高明。目前,比较好的替代方案是Mercury,这也是 Reeder、Unread 等主流 RSS 阅读器在近期更新中改用的方案。
首先,Mercury 的全文输出服务是免费的,但需要配合 API 密钥使用,这可以在注册后在其网站的 Web Parser 页面看到:
https://mercury.postlight.com/web-parser/
接着,为 Tiny Tiny RSS 安装全文输出插件,其方法与安装主题完全相同,直接复制到plugins
子目录即可:
git clone https://github.com/WangQiru/mercury_fulltext.gitcp mercury_fulltext /plugins
安装后,到 Tiny Tiny RSS 的设置页面中启用名为mercury_fulltext
的插件。这时,在设置页面的 Feeds 选项卡下,就会多出一个该插件的设置区域。我们将之前获得的 Mercury API 密钥填入文本框中,并点击 Save 保存配置。
完成上述准备工作后,就可以针对特定的订阅源启用全文输出了。方法是:在订阅源管理中,点击需要获取全文的订阅源,在弹出的 Edit Feed 对话框中,勾选 Plugins 选项卡中的 Get fulltext via Mercury Parser。
至此,Tiny Tiny RSS就已经部署完成并且可以很好地进行使用了,如果你需要使用过滤功能,以及希望添加更多客户端支持,可以继续参考:https://sspai.com/post/41302
本文参考链接:
https://sspai.com/post/41302
http://ju.outofmemory.cn/entry/39790