Awesome TTRSS Docker安装配置方法


本文转载自 Tiny Tiny RSS最新安装与使用教程-Awesome TTRSS Docker安装配置方法

一、TTRSS安装前准备

网站:

  1. 官网:https://tt-rss.org
  2. 项目:https://github.com/torne/Tiny-Tiny-RSS
  3. Awesome项目:https://ttrss.henry.wang/zh/

1.1 域名与服务器

一个域名。想要长期使用Tiny Tiny RSS,自然要使用域名+SSL证书了,单纯地用IP地址也可以使用Tiny Tiny RSS,但是这终究不是一个长久之计,所以你先准备好一个域名,并解析到你的服务器IP 上,参考:域名服务

一台VPS。Tiny Tiny RSS要使用Docker安装,所以你需要准备一台VPS主机,现在便宜的VPS主机也非常多,参考:VPS主机排行榜单

1.2 一键安装Docker

在VPS主机上安装Docker可以使用一键命令安装方法,命令如下:

#Docker 一键安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

#Docker CE:Docker Community Edition 镜像仓库,用于下载并安装 Docker 相关软件包。
#Docker Hub:Docker Hub 镜像仓库,默认为官方提供的公共库,用于切换下载镜像时的来源仓库,又称镜像加速器。

脚本集成安装 Docker Engine与 Docker Compose,可手动选择安装版本和下载源,还可手动选择镜像加速器,支持国内外服务器环境和 ARM架构处理器环境使用。详情:Docker 和 Docker Compose 一键安装脚本 可手动选择安装版本和下载源

Tiny Tiny RSS安装Docker

二、TTRSS安装与配置

2.1 下载安装

执行以下命令,创建好一个TTRSS目录,并把docker-compose.yml下载到服务器上:https://github.com/HenryQW/Awesome-TTRSS/blob/main/docker-compose.yml

#创建 ttrss 目录并进入
mkdir ttrss && cd ttrss
#利用 curl 下载 ttrss 的 docker-compose 配置文件至服务器
curl -fLo docker-compose.yml https://raw.githubusercontent.com/HenryQW/Awesome-TTRSS/main/docker-compose.yml

Tiny Tiny RSS新建目录

2.2 配置yml

现在,进入到你的VPS主机的ttrss目录下,用代码编辑器打开docker-compose.yml。

Awesome TTRSS Docker修改文件

你需要修改三个地方,一个是你的ttrss访问域名,一个是你的TTRSS的数据库密码。

Awesome TTRSS Docker调整数据库

最后一个就是将下方面的数据库密码与上面你修改的密码保持一致即可。

Awesome TTRSS Docker设置数据库

至于其它的变量你可以根据你自己的需要来修改,相关的参数如下:

支持的环境变量列表
SELF_URL_PATH: TTRSS 实例地址。🔴 请注意,该变量值必须与你在浏览器中用于访问 TTRSS 的 URL 保持完全一致,否则 TTRSS 将无法启动。
DB_HOST: 数据库地址
DB_PORT: 数据库端口
DB_NAME: 数据库名字
DB_USER: 数据库用户名
DB_PASS: 数据库密码
DB_USER_FILE: Docker Secrets 支持(替代 DB_USE),包含数据库用户名的文件
DB_PASS_FILE: Docker Secrets 支持(替代 DB_PASS),包含数据库密码的文件
ENABLE_PLUGINS: 全局启用的插件名称,其中 auth_internal 为必须启用的登录插件
ALLOW_PORTS: 逗号分隔端口号,如1200,3000。允许订阅非 80,443 端口的源。🔴 谨慎使用。
SESSION_COOKIE_LIFETIME: 使用网页版登陆时 cookie 过期时间,单位为小时,默认为 24 小时
HTTP_PROXY: ip:port, TTRSS 实例的全局代理,为源地址添加单独代理请使用 Options per Feed
DISABLE_USER_IN_DAYS: 当用户 X 天后没有登录后,停止为其自动更新订阅源,直至用户再次登陆
FEED_LOG_QUIET: true 禁用订阅源更新所产生的日志打印

2.3 安装TTRSS

仍然是进入到你刚刚创建的ttrss目录:cd ttrss,执行以下命令开始创建并运行TTRSS:

docker-compose up -d

Awesome TTRSS Docker开始安装

确认你的Docker是否安装成功,你可以执行以下命令,有输出结果就表现安装成功了。

docker ps

Awesome TTRSS Docker安装成功

2.4 域名访问

对于Docker来说,反向绑定域名可以变得更简单:Nginx反向绑定域名管理工具-无需修改Nginx规则一键添加反向绑定域名。2022.10.20更新

对于Oneinstack或者LNMP这类的一键安装包已经配置好了Nginx,先用命令添加虚拟主机绑定好你的域名,然后打开Nginx配置文件,参考以下配置做好域名反代:(主要是前后部分复制粘贴过去,中间部分根据你自己的配置来调整。)

#前部分
upstream ttrssdev {
    server 127.0.0.1:181;
}
#前部分

server {
  listen 80;
  listen [::]:80;
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/rss.wzfou.net.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/rss.wzfou.net.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name rss.wzfou.net;
  access_log /data/wwwlogs/rss.wzfou.net_nginx.log combined;
  index index.html index.htm index.php;
  root /data/wwwroot/rss.ucblog.net;
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
  
#后半部分
 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;
    }
#后半部分

}

如果你想启用子目录,https://mydomain.com/ttrss,请参考如下配置:

location /ttrss/ {
      rewrite /ttrss/(.*) /$1 break;
      proxy_redirect https://$http_host https://$http_host/ttrss;
      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;
  }

如果你用的是宝塔面板,你可以直接在后台添加网站,绑定域名。然后在网站设置中反代域名,端口要换在181(详情请看宝塔面板教程),如下图:

Awesome TTRSS Docker宝塔面板

三、TTRSS使用与操作

3.1 相关设置

首次登录TTRSS,使用默认账号和密码:admin和password,登录成功后先修改密码。

Awesome TTRSS Docker修改密码

TTRSS还可以自己选择主题、语言、时区等。

Awesome TTRSS Docker设置语言

滚动时自动标记已读,这些都可以根据自己的需要来设置。

Awesome TTRSS Docker选项设置

Awesome TTRSS Docker导入订阅

3.2 全文获取

Mercury 全文内容提取插件,配合单独的 Mercury Parser API 服务器使用,Awesome TTRSS Docker中已经包含了 HenryQW/mercury-parser-api (opens new window)服务器。先在设置中启用 mercury-fulltext 插件。

Awesome TTRSS Docker全文获取

然后打开你的订阅源,使用 Awesome-TTRSS 部署的 OpenCC 可填写service.mercury:3000。

Awesome TTRSS Docker设置端口

你也可以对单独某一个订阅源设置是否开启Mercury 全文。

Awesome TTRSS Docker开启全文

当你发现你的RSS订阅源只显示摘要时,点击右下角的“显示全文”,这时就会自动加载RSS全文了。

Awesome TTRSS Docker显示全文

Tiny Tiny RSS还支持Fever API、OpenCC 繁简转换、FeedReader API、News+ API、Feediron、Options per Feed、Wallabag v2等,你可以根据自己的需要来设置。关于Wallabag的安装参考:Wallabag安装与使用-自建网页收藏服务-手机APP和浏览器离线保存网页

3.3 RSSHub Radar

RSSHub Radar是一个Chrome插件,可以用来自动发现RSS订阅源。

Awesome TTRSS Docker插件

支持自动添加订阅源到Tiny Tiny RSS中。

Awesome TTRSS Docker一键订阅

四、TTRSS相关问题

4.1 更新程序

Awesome TTRSS 会自动监控 TTRSS 官方更新并与之同步,如果你想手动更新的话,使用以下命令:

docker pull wangqiru/ttrss:latest
# docker pull wangqiru/mercury-parser-api:latest
# docker pull wangqiru/opencc-api-server:latest
docker-compose up -d # 如果您没有使用 docker-compose,我确信您知道该怎么做。

4.2 配置生效

如果你想修改 docker-compose 配置文件,你需要先停止容器再启动,如下命令:

# 关闭 Docker 容器
docker-compose down
# 删除已停止的 Docker 容器
docker-compose rm
# ……
# 修改 docker-compose 配置文件
# ……
# 再次开启 Docker 服务
docker-compose up -d

4.3 数据库迁移

Postgres 大版本更新需要额外的步骤来确保服务正常运行。 为了更好地优化 Awesome TTRSS,有时候可能会推出一些破坏性更新。

#步骤
这些步骤演示了如何进行 Postgres 大版本更新(从 12.x 至 13.x),或者从其他镜像迁移至 postgres:alpine。

#停止所有服务容器:
docker-compose stop

复制 Postgres 数据卷 ~/postgres/data/(或者你在 docker-compose 中指定的目录)至其他任何地方作为备份,这非常重要!

#执行如下命令来导出所有数据:
docker exec postgres pg_dumpall -c -U 数据库用户名 > export.sql

#删除 Postgres 数据卷 ~/postgres/data/。

#根据最新 docker-compose.yml (opens new window)中的database.postgres 部份来更新你的 docker-compose 文件(注意 DB_NAME 不可更改),并启动:
docker-compose up -d

#执行如下命令来导入所有数据:
cat export.sql | docker exec -i postgres psql -U 数据库用户名

测试所有服务是否正常工作,现在你可以移除步骤二中的备份了。

旧版 docker-compose(支持 Postgres 12)已经被 归档为 docker-compose.pg12.yml (opens new window),且不再维护。

4.4 docker-compose

关于docker-compose的命令,基本的操作命令如下:

1.docker-compose的使用非常类似于docker命令的使用,但是需要注意的是大部分的compose命令都需要到docker-compose.yml文件所在的目录下才能执行。

2.【Linux命令】docker-compose up
【命令解释】 命令聚合每个容器的输出,命令退出时,所有容器都将停止。

3.【Linux命令】docker-compose up -d
【命令解释】 在后台启动容器并使它们保持运行。

4.【Linux命令】docker-compose logs -f
【命令解释】 查看该容器的启动的日志打印(日志从头打印)。

5.【Linux命令】docker logs -f container_id
【命令解释】 查看某一容器的启动的日志打印(日志从头打印)。 

6.【Linux命令】docker logs -f --tail 数量词 container_id
【命令解释】 查看某一容器的启动的日志打印(查看最后n条日志打印)。 例:docker logs -f --tail 50 44b 

7.【Linux命令】docker-compose stop
【命令解释】 停止compose服务。

8.【Linux命令】docker-compose restart
【命令解释】 重启compose服务。

9.【Linux命令】docker-compose kill
【命令解释】 kill compose服务。

10.【Linux命令】docker-compose ps
【命令解释】查看compose服务状态。

11.【Linux命令】docker-compose rm
【命令解释】删除compose服务。

4.5 忘记密码或OTP

首先是连接到数据库。

#连接数据库
docker exec -ti postgres psql -U postgres
#切换数据库(可选)
\c
ttrss

现在是关闭OTP。

#关闭OTP
UPDATE ttrss_users SET otp_enabled = false WHERE login = 'admin'

或者是关闭OTP,将admin密码恢复到初始密码password。

UPDATE ttrss_users 
    SET pwd_hash = 'SHA1:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', salt = '', otp_enabled = false
    WHERE login = 'you'

如果本文帮助到了你,帮我点个广告可以咩(o′┏▽┓`o)


评论
  目录