ubuntu下自建rss阅读器ttrss
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 | sudo mysql -u root |
克隆ttrss源码
注:若是国内域名建议更改默认文件夹名tt-rss
。
1 | cd /var/www/example.com |
访问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 | [Unit] |
启用并开始服务。
1 | sudo systemctl enable ttrss_backend.service |
安装feed代理插件options_per_feed
其中有代理选项,可对单个feed设置走代理线路。
1 | cd /var/www/example.com/tt-rss/plugins |
克隆源码后刷新浏览器,在Preferences-Plugins
处激活该插件。
此后右键点击feed,编辑feed-Plugins
处可启用并设置代理。
但由于添加feed时是直连的,对于已经被墙的feed会添加失败,无法进入编辑页面设置代理,这种只能在别处添加并导出,然后tt-rss再导入并设置代理选项才行。
安装fever插件以支持更多移动客户端
注:无论是原生支持tt-rss的客户端还是通过fever访问,都必须先去Preferences-Feeds
处启用API(Enable API
)。另外FeedMe现已直接支持tt-rss,故无需使用功能受限的fever。
1 | cd /var/www/example.com/tt-rss/plugins.local |
需要在Preferences-Fever Emulation
处设置fever的密码,用于客户端在https://example.com/tt-rss/plugins.local/fever/
处登录用。
安装feedly主题tt-rss-feedly-theme
这是看起来比较顺眼,操作也和GR类似的主题。
1 | wget https://github.com/levito/tt-rss-feedly-theme/archive/master.zip |
优化
取消默认展开文章
Preferences-Articles
处取消Always expand articles
。
其他主题
其他插件
备份
备份数据库
1 | sudo mysqldump ttrss | gzip > ttrss.sql.gz |
可以把命令放cron
里定时执行。
恢复数据库
1 | tar -xzf ttrss.sql.gz |