rss已死?对占有话语权的内容创作者当然希望这样,但就内容接收者而言,活用合适的rss工具能筛掉无用信息提升效率。本文提供docker之外手动本地搭建ttrss的方法。

需求

为什么不用docker

对个人用户而言,docker仅适用于一种场合:权限不足的服务器(包括非root的定制linux操作系统,如NAS的系统)。docker还有一个好处就是部署方便,但:1.需要大规模部署的场景并不多;2.可通过编写脚本来简化部署。docker的缺点:1.性能损失,对本地无所谓,但购买服务器的话内存需要升一档多花钱了;2.调试不方便(docker exec -it …),更适合稳定版产品的部署,可玩性差些。
不过,实在想用docker的话推荐Henry Wang的Awesome-TTRSS
注意,由于众所周知的原因,不建议本地或国内搭建,下文对如何科学地在国内搭建亦有所涉及。

为什么不用第三方服务

国外的第三方服务速度慢,连接不畅或直接被墙,国内的有和谐不考虑。且免费服务限制颇多,如无法设置过滤规则,订阅数刷新率有限制,有广告等等。

安装配置apache

安装mysql

注:fox在开发tt-rss时就是按照PostgreSQL来设计的,用MySQL会有性能损失。我这边由于有其他服务已经使用MySQL,故继续沿用。若在新系统部署建议使用PostgreSQL

创建数据库

1
2
sudo mysql -u root
CREATE DATABASE ttrss;

克隆ttrss源码

注:若是国内域名建议更改默认文件夹名tt-rss

1
2
cd /var/www/example.com
sudo -u www-data git clone https://git.tt-rss.org/fox/tt-rss.git

访问https://example.com/tt-rss/install/执行安装。
默认用户名admin,密码password
有个官方不支持但提供的代理选项,编辑/var/www/example.com/tt-rss/config.php并添加一行define ('_CURL_HTTP_PROXY', '127.0.0.1:8118');,其中8118端口是通过privoxy设置的http代理,缺点:1.这样所有的更新都全局走代理,影响速度;2.似乎无效。故并未采用。

创建feed更新服务

创建并编辑/etc/systemd/system/ttrss_backend.service文件。有一种科学方法即在此处将php通过proxychains之类的走代理,缺点:1.全局走代理,影响速度;2.易出错导致更新失败。故并未采用。

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=ttrss_backend
After=network.target mysql.service

[Service]
User=www-data
ExecStart=/var/www/example.com/tt-rss/update_daemon2.php

[Install]
WantedBy=multi-user.target

启用并开始服务。

1
2
sudo systemctl enable ttrss_backend.service
sudo systemctl start ttrss_backend.service

安装feed代理插件options_per_feed

其中有代理选项,可对单个feed设置走代理线路。

1
2
cd /var/www/example.com/tt-rss/plugins
sudo -u www-data git clone https://github.com/sergey-dryabzhinsky/options_per_feed

克隆源码后刷新浏览器,在Preferences-Plugins处激活该插件。
此后右键点击feed,编辑feed-Plugins处可启用并设置代理。
但由于添加feed时是直连的,对于已经被墙的feed会添加失败,无法进入编辑页面设置代理,这种只能在别处添加并导出,然后tt-rss再导入并设置代理选项才行。

安装fever插件以支持更多移动客户端

注:无论是原生支持tt-rss的客户端还是通过fever访问,都必须先去Preferences-Feeds处启用API(Enable API)。另外FeedMe现已直接支持tt-rss,故无需使用功能受限的fever。

1
2
cd /var/www/example.com/tt-rss/plugins.local
sudo -u www-data git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin fever

需要在Preferences-Fever Emulation处设置fever的密码,用于客户端在https://example.com/tt-rss/plugins.local/fever/处登录用。

安装feedly主题tt-rss-feedly-theme

这是看起来比较顺眼,操作也和GR类似的主题。

1
2
3
4
wget https://github.com/levito/tt-rss-feedly-theme/archive/master.zip
unzip master.zip
cd tt-rss-feedly-theme-master
sudo -u www-data cp -r feedly* /var/www/example.com/tt-rss/themes.local/

优化

取消默认展开文章

Preferences-Articles处取消Always expand articles

其他主题

其他插件

备份

备份数据库

1
sudo mysqldump ttrss | gzip > ttrss.sql.gz

可以把命令放cron里定时执行。

恢复数据库

1
2
tar -xzf ttrss.sql.gz
sudo mysql ttrss < ttrss.sql