美文网首页
自己搭建ttrss

自己搭建ttrss

作者: 苏三州 | 来源:发表于2019-12-07 17:31 被阅读0次

发现自己已经好长时间没事就喜欢刷知乎,或者刷豆瓣,而推荐给我的又都是什么结婚后是什么感受,离婚后是什么感受,处对象是什么感受。

这些东西,偶尔看看,能让自己在实际生活中注意,从而避免踩坑,维护家庭和谐当然是有好处的,但是天天看,最重要的作用大概就是杀时间了。

但生命转眼已经快过半,还是得把时间用在更有意义的地方才行。正好最近发现好些写博客的,觉得看了很有收获,那以后就看博客好了,最好是把所有信息都收集起来放在一个app里面看。一搜索,才发现这东西老早就有了,叫RSS,曾经google支持得很好,结果几年前直接把这个给关掉了。现在要用,最好就是自己搭建RSS服务器,找了半天,发现tt-rss应该普遍反映不错,不过官方文档写得实在儿戏,于是网上有了一堆乱七八糟的博客教怎么搭建tt-rss的。不过每个人安装tt-rss的时间不同,遇到的问题不同,总结的结论也不同,所以就有了这篇造轮子的文章。

这个安装大概分为服务器上的安装与安卓端安装,其中服务器端包括安装tt-rss,以及tt-rss的mercury_fulltext插件、fever插件,还有配合mercury_fulltext插件工作的mercury-parser-api,安卓端就比较简单了,只是找了好久也没找到中意的app,最后只能将就用了。

1.安装tt-rss

由于自己的服务器上搭建有博客系统,域名也只有1个,所以网上流传的docker安装方式不太喜欢,按我的理解,如果用docker在我的服务器上安装,大概得用不同的端口,这个让我很是不喜欢,于是就自己折腾怎么在nginx下面加一个location来解决,结果活活折腾了我两晚,要不是在外面出差,估计都不可能有两晚时间给我折腾。

好了,言归正传,还是说怎么安装折腾的吧。

1.1 服务器基本情况

ubuntu 18.04
nginx
typecho blog 系统,采用的nginx+php+sqlite

1.2 在服务器上安装php

此处的php指的是typecho 不需要而ttrss需要的各种模块,不过不管了,照着tt-rss的PhpCompatibilityNotes来安装就好。有一点小改动,我把其中的版本号去掉了,不然ubuntu18.04安装不过去。

sudo apt install php-cli php-curl php-mbstring  php-json php-intl php-gd php-pgsql php-xml php-opcache

1.3 设置php

安装好之后发现是php7.2版本,然后还要稍微设置一下。

sudo vim /etc/php/7.2/fpm/php.ini

然后找到php.ini中的opcache部分,更改为下面这样就行

[opcache]
 ; Determines if Zend OPCache is enabled
opcache.enable=1

; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=0

1.4安装postgresql

sudo apt-get install postgresql

然后更改ubuntu系统中postgres用户的密码,更改postgresql数据库中管理员postgres的密码,然后在postgresql数据库中新建一个role,这个role的名字最好和运行php、nginx的ubuntu系统中的用户名相同(如果不同会有什么问题不太清楚,会不会有问题也不太清楚),然后把这个role的密码也修改了,然后用这个role创建一个数据库。具体流程命令如下。

  • 更改ubuntu系统中postgres用户的密码
sudo passwd postgres
[sudo] password for ubuntu: 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
  • 更改postgresql数据库中管理员postgres的密码
sudo su postgres -c psql
postgres=# \password postgres
Enter new password: 
Enter it again:

上面的postgres=#是输入命令的提示符。

  • 在postgresql数据库中新建一个role,此处role叫ttrss
postgres=# CREATE ROLE "ttrss" WITH CREATEDB LOGIN;
CREATE ROLE

然后是更改ttrss的密码,与前面一样。

  • 用ttrss这个role创建一个数据库ttrss
    我的搞法是这样的,先在ubuntu系统中创建一个ttrss用户,然后用这个用户登录到ubuntu,然后在命令行输入
createdb ttrss

1.5 配置nginx

我的nginx配置文件为/etc/nginx/sites-available/default,我的default文件如下。

## for ttrss
server {
       listen 127.0.0.1:181;
       root /var/ttrss;
       index index.html index.htm index.php;
       location ~ .*\.php(\/.*)*$ {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        include fastcgi_params;
           }
}

# Default server configuration
#
server {
     listen 443 ssl default_server;
     listen [::]:443 ssl default_server;
        root /var/typecho;
    index index.html index.htm index.php;
    server_name sanzhou.live;
    ssl on;
    ssl_certificate /etc/private/ttrss.crt;
    ssl_certificate_key /etc/private/ttrss.key;
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/certs/dhparam.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ".........";
    keepalive_timeout 70;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    location / {
        try_files $uri $uri/ =404;
    }

        #for ttrss
    location ^~/ttrss/ {
        proxy_pass http://127.0.0.1:181;
        proxy_set_header  Host                $http_host;
        proxy_set_header  X-Real-IP           $remote_addr;
        proxy_set_header  X-Forwarded-Ssl     on;
        proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto   $scheme;
        proxy_set_header  X-Frame-Options     SAMEORIGIN;

        client_max_body_size        100m;
        client_body_buffer_size     128k;

        proxy_buffer_size           4k;
        proxy_buffers               4 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;

    }
       #for typecho blog php
    location ~ .*\.php(\/.*)*$ {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        include fastcgi_params;
    }
}

要注意3点,一是配置里面很多是我自己服务器对应的东西,需要对应修改,第二是里面的各个location顺序不能乱,第三个是“location ~/ttrss/”中的~这两个符号不能省略,这个和nginx中loation的执行顺序关系很大。后面两个注意点就是让我自己熬2个通宵的原因。

1.6 初始化ttrss

访问https://sanzhou.live/ttrss,第一次访问会直接到ttrss的安装界面,根据提示输入postgresql的用户名、密码,创建的数据库等,然后点初始化就可以了。

完了就可以登录了,访问https://sanzhou.live/ttrss,用户名输入admin,密码输入password,进去之后建议先修改密码。

到这一步基本就算完成了ttrss的安装过程,剩下的就是自己遇到有意思的rss往里面放就行了,也可以直接导入opml文件。

1.7 让ttrss自动隔1小时抓取一次rss内容

sudo crontab -u ttrss -e  
#插入以下字符,路径按照你的实际路径修改,作用是每小时刷新一次RSS。
* */1 * * * php /home/wwwroot/ttrss.tstrs.me/update.php  --feeds  > /dev/null
sudo service cron restart

2.安装ttrss的插件

2.1 安装mercury-parser-api

按我的理解,这是一个可以将任何网上文章结构化抓取下来的一个网络服务,本来想直接在ubuntu下安装,发现各种错误,毫无头绪,后来就直接安装了docker,再用docker来安装运行这个网络服务了,整个命令如下:

sudo apt-get install docker docker-compose
sudo docker run -p 3000:3000 -d --restart=always  wangqiru/mercury-parser-api

安装完成后,通过curl 139.162.77.179:3000命令能返回下面一行,就算成功了,其中ip地址是我杜撰的自己服务器的IP地址。

{"message":"Welcome to 🚀mercury-parser-api API! Endpoint: /parser"}

测试了下,这个docker 运行3000端口似乎只有本机能访问,应该还是比较安全的。

2.2 安装mercury_fulltext插件

之所以要装这个插件,是我订阅的rss中,有个大侠的rss只有前面一段短文,不给全篇文章,安装这个之后就可以自动把全篇文章给弄到rss上来了。
安装也简单,直接cd进入ttrss文件夹的plugins,然后输入这个命令

cd /var/ttrss/ttrss/plugins
git clone https://github.com/HenryQW/mercury_fulltext

完成了之后从浏览器登入https://sanzhou.live/ttrss,然后启用mercury_fulltext这个插件,完了在feeds的mercury_fulltext填上139.162.77.179:3000,然后对需要使用该插件的rss源右键进入编辑,然后插件选择使用mercury_fulltext就可以了。

2.2 安装fever插件

这个插件据说是为了在多个rss reader终端上能同步处理rss内容,意思就是在安卓看了某篇rss文章后,我再到windows下看的时候,这篇文章已经自动标记为已读。
这个也简单,按如下命令设置即可

cd /var/ttrss/ttrss/plugins.local
git clone https://github.com/DigitalDJ/tinytinyrss-fever-plugin

然后用浏览器登入https://sanzhou.live/ttrss,然后启用fever插件,具体启用、配置密码等过程见这里
然后从客户端登录fever的时候,记得登录的地址是https://sanzhou.live/ttrss/plugins.local/fever

3.安装客户端

3.1 ubuntu客户端

本来想安装安卓和ubuntu两种客户端,然后发现ubuntu下没找到支持fever的客户端,只找到了支持ttrss的客户端,叫liferea,安装也简单。

sudo apt-get install liferea

由于不支持fever,我也就没用。

3.2安卓客户端

安卓支持ttrss的客户端有好几款,试了feedme,还有Readably,最后柑橘还是ttrss自家出品的安卓客户端比较好使,直接在apkpure下载的。

但有个提醒说是trial mode,7 days left,估计是试用期仅7天?7天之后呢,不知道了,先用着吧。

不过如果是用这个客户端,其实倒不用安装fever插件了,它自己能跟服务器同步。

4.参考网站

相关文章

  • 自己搭建ttrss

    发现自己已经好长时间没事就喜欢刷知乎,或者刷豆瓣,而推荐给我的又都是什么结婚后是什么感受,离婚后是什么感受,处对象...

  • 自己DIY一个RSS源

    自从发现刷豆瓣、刷知乎除了浪费时间,基本没用之后,就自己搭建了一个TTRSS,用起来倒是方便,但是有个问题就是有些...

  • 更新TTRSS主题

    接上一篇“使用宝塔面板安装TTRSS全记录” https://www.jianshu.com/p/2418c262...

  • 使用宝塔面板安装TTRSS全记录

    相比于使用Docker来部署TTRSS,使用宝塔面板的优势显而易见 Docker 命令需要学习,而宝塔面板全中文操...

  • RSSHUB、TTRSS、Reeder组合安装教程

    想搞一个自己的RSS订阅服务,满足以下目标: RSS源越来越少,需要有生成源的能力; 可以多端同步阅读; 阅读体验...

  • 为什么女主播都爱穿浅色?

    为什么女主播都爱穿浅色? 穿黑衣服与白衣服的区别,这次知道为什么主播们都爱穿浅色衣服了! http://ttrss...

  • 搭建ghost博客

    最近突然想自己搭建一个博客,网上搜了几个自己搭建博客的方法,最后还是选择了ghost。 以下是搭建步骤(此处是搭建...

  • SpringBoot--工程搭建

    搭建Springboot工程 可以选择自己手动搭建,也可以选择start.spring.io快速搭建。偷懒直接用,...

  • 基于开源项目搭建属于自己的技术堆栈

    基于开源项目搭建属于自己的技术堆栈 基于开源项目搭建属于自己的技术堆栈

  • Github Pages加Hexo——我的独立博客

    搭建过程参考:如何搭建一个独立博客 但其中还有些错误之处,后面自己总结记录一下我自己搭建的过程。

网友评论

      本文标题:自己搭建ttrss

      本文链接:https://www.haomeiwen.com/subject/tjzjgctx.html