一直在用 RSS 来组织信息源,建立个人信息输入系统。之前发现 RSSHub 这个国人编写的 Feed 制作神器,通过它可以订阅不提供 RSS 功能的网络内容来源。于是 Inoreader 中的订阅源数量就暴增。但是从去年起 Inoreader 免费版只能添加最多 100 个订阅源,付费版又超贵而且用不到那么多功能,再次体验到免费的服务迟早让人不爽又无法反驳,毕竟企业要生存。如果使用本地 RSS 阅读软件,又无法实现多客户端同步,那只剩一个办法,自己搭建个 RSS 阅读器。Tiny Tiny RSS(简称 TTRSS)貌似是开源界同类软件中最有名的,教程也多,就选这个了。
作为编程小白,所谓搭建过程,就是先大概理解下教程中的原理,然后复制粘贴运行命令行。嗯嗯,就是这么任性,不懂也能折腾成功,感谢互联网上的分享。
99%的操做都遵循无影人的这篇教程 《在 Debian 9 上安装 TT-RSS》,最后运行 TTRSS 时候遇到一个小问题,会在后面说道。
sudo apt update && sudo apt upgrade
sudo apt install php7.0-cli php7.0-curl php7.0-mbstring \ php7.0-json php7.0-gd php7.0-pgsql php7.0-xml \ php7.0-opcache php7.0-fpm
sudo apt install postgresql
sudo -u postgres psql postgres=# CREATE USER "www-data" WITH PASSWORD 'yourpasshere'; postgres=# CREATE DATABASE ttrss WITH OWNER "www-data"; postgres=# \quit
将 yourpasshere
替换为你自己的密码,建议使用密码生成器产生的高强度密码。
建立目录/var/www/
,并属于 www-data:www-data
。
sudo mkdir /var/www chown -R www-data:www-data /var/www
然后下载安装 TTRSS。
cd /var/www/ sudo -u www-data git clone https://tt-rss.org/git/tt-rss.git tt-rss
Caddy 是一个用 Golang 写成的 Web 服务器,相较于 Nginx,Caddy 的配置文件相当简单,而且 Caddy 可以自动签发 Let’s Encrypt 证书,对于新手相当的友好。
如果想更多的了解 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 setcap cap_net_bind_service=+ep $(which caddy)
如果上述命令出错,尝试 sudo apt install libcap2-bin
。
重载服务
sudo systemctl daemon-reload sudo systemctl enable caddy.service
example.com { #你的域名 gzip cache tls i@example.com #你的邮箱,用于申请 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),启动服务。
sudo systemctl start caddy.service
由于 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 将每周检查一次更新。
sudo systemctl daemon-reload sudo systemctl enable upgrade_caddy.timer sudo systemctl start upgrade_caddy.timer
访问你的 TTRSS 服务的网址https://example.com/
你将会看到如下的配置界面。
如上图进行配置,参数意义如下:
Database type: | PostgreSQL |
---|---|
Username: | www-data |
Password: | yourpasshere |
Database name: | ttrss |
Host name: | |
Port: | 5432 |
RSS URL: | https://example.com/ |
创建以下路径和名称的文件,
touch /etc/systemd/system/ttrss_backend.service
写入下面的内容,
# /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
打开 /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
可能由于安装的 TTRSS 版本不同,按照以上步骤安装完成后,浏览器登录 TTRSS 网址,提示以下错误:
PHP UConverter class is missing, it's provided by the Internationalization (intl) module
查了下,应该是缺少php7.0-intl
模块造成的,于是安装该模块,再重新加载 TTRSS 服务,
sudo apt install php7.0-intl systemctl daemon-reload systemctl enable ttrss_backend.service systemctl start ttrss_backend.service
再次用浏览器登录,没有提示错误,问题解决。到此 TTRSS 就已经搭建成功了。
这时候访问你的 TTRSS 域名 https://example.com/,使用 username: admin
, password: password
登录 TT-RSS ,修改密码,根据需求创建帐户,之后就可以开心的使用免费无限制订阅源的 RSS 阅读器了。
本文作者:tsingk
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!