如果你是一个 RSS 使用者,你一定会被两个问题所困扰,
问题一:网站没有提供 RSS Feed。
问题二:没有一个合适的 RSS 阅读器。
对于问题一, 你可以使用 RSSHub 项目,将知乎、微博这些不提供 RSS Feed 的网站转换为 RSS Feed。
如何搭建一个 RSSHub?你可以参考我之前的文章。
对于问题二,你可以选择本地 RSS 阅读器,比如说 Akregator。你也可以选择 Feedly、Inoreader 这样的在线阅读器。
二者各有利弊,对于阅读器选择,你可以参考维基百科上的这个表格。
Tiny Tiny RSS (TT-RSS) 是一个基于web的开源、新型Feed(RSS/Atom)阅读器。
如果你不愿意使用 Feedly、Inoreader,TT-RSS 将会是一个合适的替代品。
本文将以 Debian 9 系统为例,演示如何在自己的服务器上搭建 TT-RSS。
所需列表
服务器一台(Digitalocean 每月5美元的云服务器就可以了)
域名一个(可以注册免费域名)
步骤零:更新系统
步骤一:安装 PHP
步骤二:安装、配置 PostgreSQL
安装
配置
sudo -u postgres psql postgres=# CREATE USER "www-data" WITH PASSWORD 'yourpasshere'; postgres=# CREATE DATABASE ttrss WITH OWNER "www-data"; postgres=# \quit
将 yourpasshere
替换为你自己的密码,建议使用密码生成器产生的高强度密码。
步骤三:安装 tt-rss
运行上述命令之前,请确保 /var/www/
目录已经建立,并属于 www-data:www-data
。
步骤四:安装 Caddy
Caddy 是一个用 Golang 写成的 Web 服务器,相较于 Nginx,Caddy 的配置文件相当简单,而且 Caddy 可以自动签发 Let’s Encrypt 证书,对于新手相当的友好。
如果想更多的了解 Caddy 可以阅读这篇博文。
安装 Caddy
安装 Caddy 以及服务
curl https://getcaddy.com | sudo bash -s personal http.git,http.cache sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service sudo mkdir /etc/caddy sudo chown -R root:www-data /etc/caddy sudo touch /etc/caddy/Caddyfile sudo mkdir /etc/ssl/caddy sudo chown -R www-data:root /etc/ssl/caddy sudo chmod 0770 /etc/ssl/caddy
允许 Caddy 绑定低位端口:
如果上述命令出错,尝试 sudo apt install libcap2-bin
。
重载服务
配置 Caddy
example.com { #你的域名 gzip cache tls [email protected] #你的邮箱,用于申请 Let’s Encrypt 证书 root /var/www/tt-rss ext .html .htm .php git https://tt-rss.org/git/tt-rss.git #自动更新 tt-rss fastcgi / /run/php/php7.0-fpm.sock php status 404 { #保护敏感文件 /.editorconfig /.git /.gitignore /.gitlab-ci.yml /CONTRIBUTING.md /README.md /COPYING } }
将上述内容写入 /etc/caddy/Caddyfile
,
确保域名指向本机后(不要开启 CDN),启动服务。
自动更新 Caddy (可选)
由于 Caddy 不在官方仓库中,可以通过创建服务实现 Caddy 自动更新。
# /etc/systemd/system/upgrade_caddy.service [Unit] Description=Upgrade Caddy [Service] Type=oneshot Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ExecStart=/bin/bash -c "curl https://getcaddy.com | bash -s personal http.git,http.cache && systemctl restart Caddy.service"
# /etc/systemd/system/upgrade_caddy.timer [Unit] Description=upgrade caddy [Timer] OnCalendar=weekly Persistent=true [Install] WantedBy=timers.target
创建上述文件,然后重载服务,Caddy 将每周检查一次更新。
步骤五:配置 TT-RSS
你将会看到如下的配置界面。
如上图进行配置:
- Database type:
-
PostgreSQL
- Username:
-
www-data
- Password:
-
yourpasshere
- Database name:
-
ttrss
- Host name:
- Port:
-
5432
- RSS URL:
步骤六:配置 Feed 更新服务
# /etc/systemd/system/ttrss_backend.service [Unit] Description=ttrss_backend After=network.target mysql.service postgresql.service [Service] User=www-data ExecStart=/var/www/tt-rss/update_daemon2.php [Install] WantedBy=multi-user.target
创建上述文件,重载服务。
systemctl daemon-reload systemctl enable ttrss_backend.service systemctl start ttrss_backend.service
到此 TT-RSS 就已经搭建成功了。
再次访问你的域名 https://example.com/,使用 username: admin
, password: password
登录 TT-RSS ,修改密码,根据需求创建帐户。
你还可以根据需求启动插件,建议启动 af_readability
插件,对于 RSS Feed 不提供全文输出的网站(如: VICE中国),可以使用该插件转换为全文。
步骤七:Enable PHP 7 OPcache (性能优化,可选)
打开 /etc/php/7.0/fpm/php.ini
文件。
做出下面的调整:
To enable the OPcache, change to the following lines of your php.ini file: ;opcache.enable=0 ;opcache.memory_consumption=64 ;opcache.max_accelerated_files=2000 ;opcache_revalidate_freq = 2 Change to: opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=4000 opcache_revalidate_freq = 240