TTRSS+RSShub搭建指南

发布于 8 天前  48 次阅读


目标

本篇文章,我们旨在搭建一个小型的RSS服务,从零开始,构建一个可以供1-10人使用的RSS服务器。

需求

  • 一台有Root权限的虚拟服务器
  • 一个域名
  • 懂得基础的linux命令行操作
  • 基础的英文阅读能力

借助的项目

  • awesome-ttrss
  • rsshub
  • nginx

本文以 CentOS_7 做演示

awesome-ttrss based on tiny tiny rss (ttrss),将多需要用到个docker镜像汇集在一个docker-compose里,并且配置好了基本的插件,相对于原版的ttrss来说易于部署

不是所有的网站都支持rss服务,而 rsshub 的目的就是主动抓取信息。 这样我们就可以方便地订阅不支持rss服务的网站啦!

由于需要TLS保障传输安全以及实现反代,我们一Nginx为例,你也可以使用其它web server。

安装所需环境

所需环境列表

  • Docker
  • Docker Compose
  • Nginx
  • Snap
  • Certbot

我们使用certbot来获取、配置ssl证书。certbot依赖snap进行安装,所以安装了sna。如果你不想安装snap,也可以使用其它客户端,比如ACME。

因为安装步骤非常简单,并且有时候会发生变化,这里只记录粗略的安装步骤,具体安装方法请访问链接标注的官网。

安装Docker

首先我们需要安装docker。详细的安装方法请参阅官方说明

yum install -y yum-utils
#配置仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#安装docker
yum install docker-ce docker-ce-cli containerd.io
#配置开机自启并启动docker
systemctl enable docker
systemctl start docker

安装Docker Compose

同理,安装docker compose,详细的安装方法请参阅官方说明

#使用脚本下载。注意版本号,请从官网获取最新版本
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#设置权限
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#检验版本
docker-compose --version

安装Nginx

你可以参考 Nginx Cook book 这本书(从官网免费获取),或者查看官方文档

vi /etc/yum.repos.d/nginx.repo
#添加/etc/yum.repos.d/nginx.repo,替换OSRELEASE为所需版本,本文为7

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

#安装、设置自启、启动Nginx
yum -y install nginx
systemctl enable nginx
systemctl start nginx

安装Snap

我们使用certbot来获取、配置ssl证书。certbot依赖snap进行安装。你也可以使用其它客户端,如ACME。同理,访问官网获取安装方法。

yum install -y epel-release
yum install -y snapd
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap

安装Certbot

Certbot是获取SSL的最简单的方式,几乎是全自动的,关于不同发行版的安装,请访问官网

snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot

搭建项目

以上,我们完成了所需环境的搭建,现在我们需要登录域名控制台,修改或添加DNS记录,指向你的服务器。

搭建awesome-ttrss

配置环境变量并拉取镜像

#建立文件夹并进入
mkdir ttrss
cd ttrss
#下载.yml文件
wget https://raw.githubusercontent.com/HenryQW/Awesome-TTRSS/master/docker-compose.yml

现在,对yml文件进行小的修改

  • 第 7 行和第 23 行,修改 PostgreSQL 数据库的密码为相同值。
  • 第 18 行,设置实际使用的url,比如 https://ttrss.vincehut.com/ 结尾要加上 /

更多的环境变量请参考官网。实际使用来说,基本无需修改其它内容。

#启动
docker-compose up -d

配置Nginx文件

在 /etc/nginx/conf.d 目录下新建一个以 .conf 结尾的文件比如 ttrss_vincehut_top.conf 我们用它来定义站点,配置nginx。

这是一个配置示例,相比官网的配置来说,删除了certbot会自动添加的部分。请更改 ttrss.vincehut.top 为你的域名

upstream ttrssdev {
    server 127.0.0.1:181;
}

server {
    listen 80;
    server_name  ttrss.vincehut.top;
}
server {
    listen 443 ssl;
    gzip on;
    server_name  ttrss.wulaa.top;

    access_log /var/log/nginx/ttrssdev_access.log combined;
    error_log  /var/log/nginx/ttrssdev_error.log;

    location / {
        proxy_redirect off;
        proxy_pass http://ttrssdev;

        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;
    }
}

配置SSL

certbot --nginx

有相应的英文提示,我们只需要选择域名,输入邮箱即可。

现在访问我们的域名(相应网址)就可以正常访问你的ttrss啦!

搭建rsshub

拉取镜像

#建立文件夹并进入
cd
mkdir rsshub
cd rsshub
#下载.yml文件
wget https://raw.githubusercontent.com/DIYgod/RSSHub/master/docker-compose.yml
docker volume create redis-data

如需配置用户认证、黑白名单等,请查看官方的配置文档

#启动镜像
docker-compose up -d

配置Nginx文件

同理,和之前做过的一样,在 /etc/nginx/conf.d 目录下新建一个以 .conf 结尾的文件比如 rsshub_vincehut_top.conf 我们用它来定义站点,配置nginx。

upstream rsshub {
    server 127.0.0.1:1200;
}

server {
    listen 80;
    server_name  rsshub.vincehut.top;
}
server {
    listen 443 ssl;
    gzip on;
    server_name  rsshub.vincehut.top;

    access_log /var/log/nginx/rsshub_access.log combined;
    error_log  /var/log/nginx/rsshub_error.log;

    location / {
        proxy_redirect off;
        proxy_pass http://rsshub;

        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;
    }
}

配置SSL

certbot --nginx

注意选择相应的域名。

The End

以上,ttrss和rsshub就搭建好啦!开始享用吧!你可以在后台设置抓取频率、主题、插件等等。


长风破浪会有时,直挂云帆济沧海。在这条路上一直走下去!