这几天自己在使用Tiny Tiny RSS的过程中总是共出现60 SSL certificate problem: certificate has expired错误,Tiny Tiny RSS无法订阅和阅读文章。检查了一下,应该是Tiny Tiny RSS好久没有更新的原因,毕竟是几年前安装的Tiny Tiny RSS,现在已经过时了。
之前挖站否在自建RSS阅读器Tiny Tiny RSS一文中有分享过如何手动在自己的虚拟主机或者VPS主机上安装Tiny Tiny RSS,不过现在Tiny Tiny RSS官方已经不再推荐此方法了,而是建议大家使用Docker安装的方式来运行Tiny Tiny RSS。
关于Tiny Tiny RSS Docker,官方已经提供了Docker Hub镜像了,不过我们可以使用Awesome TTRSS,这是一个基于Tiny Tiny RSS 官方的Docker镜像,增加了Fever API、OpenCC 繁简转换、Mercury 全文获取等实用插件,另外Tiny Tiny RSS还提供了非常多的主题可供选择。
本篇文章就来分享一下Awesome TTRSS Docker的安装与配置方法,更多的自建服务参考:自建服务与系统专题。
PS:更新记录。
1、不想自己架构RSS阅读器的,可以选择在线免费的RSS阅读器:在线RSS阅读器收集整理汇总-在线RSS阅读服务榜单。2022.5.14
网站:
一个域名。想要长期使用Tiny Tiny RSS,自然要使用域名+SSL证书了,单纯地用IP地址也可以使用Tiny Tiny RSS,但是这终究不是一个长久之计,所以你先准备好一个域名,并解析到你的服务器IP 上,参考:域名服务。
一台VPS。Tiny Tiny RSS要使用Docker安装,所以你需要准备一台VPS主机,现在便宜的VPS主机也非常多,参考:VPS主机排行榜单。
在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 一键安装脚本 可手动选择安装版本和下载源。
执行以下命令,创建好一个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
现在,进入到你的VPS主机的ttrss目录下,用代码编辑器打开docker-compose.yml。
你需要修改三个地方,一个是你的ttrss访问域名,一个是你的TTRSS的数据库密码。
最后一个就是将下方面的数据库密码与上面你修改的密码保持一致即可。
至于其它的变量你可以根据你自己的需要来修改,相关的参数如下:
支持的环境变量列表
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 禁用订阅源更新所产生的日志打印
仍然是进入到你刚刚创建的ttrss目录:cd ttrss
,执行以下命令开始创建并运行TTRSS:
docker-compose up -d
确认你的Docker是否安装成功,你可以执行以下命令,有输出结果就表现安装成功了。
docker ps
对于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(详情请看宝塔面板教程),如下图:
首次登录TTRSS,使用默认账号和密码:admin和password,登录成功后先修改密码。
TTRSS还可以自己选择主题、语言、时区等。
滚动时自动标记已读,这些都可以根据自己的需要来设置。
Mercury 全文内容提取插件,配合单独的 Mercury Parser API 服务器使用,Awesome TTRSS Docker中已经包含了 HenryQW/mercury-parser-api (opens new window)服务器。先在设置中启用 mercury-fulltext 插件。
然后打开你的订阅源,使用 Awesome-TTRSS 部署的 OpenCC 可填写service.mercury:3000。
你也可以对单独某一个订阅源设置是否开启Mercury 全文。
当你发现你的RSS订阅源只显示摘要时,点击右下角的“显示全文”,这时就会自动加载RSS全文了。
Tiny Tiny RSS还支持Fever API、OpenCC 繁简转换、FeedReader API、News+ API、Feediron、Options per Feed、Wallabag v2等,你可以根据自己的需要来设置。关于Wallabag的安装参考:Wallabag安装与使用-自建网页收藏服务-手机APP和浏览器离线保存网页。
RSSHub Radar是一个Chrome插件,可以用来自动发现RSS订阅源。
支持自动添加订阅源到Tiny Tiny RSS中。
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,我确信您知道该怎么做。
如果你想修改 docker-compose 配置文件,你需要先停止容器再启动,如下命令:
# 关闭 Docker 容器 docker-compose down # 删除已停止的 Docker 容器 docker-compose rm # …… # 修改 docker-compose 配置文件 # …… # 再次开启 Docker 服务 docker-compose up -d
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),且不再维护。
关于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服务。
首先是连接到数据库。
#连接数据库 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'
文章出自:挖站否 https://wzfou.com/ttrss-docker/, 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
文章更新于: %s = human-readable time difference 下午9:05
查看评论
有官方版本的教程么~
官方的可以参考之前的教程:https://wzfou.com/tt-rss/
官方也docker了. 上次试 没成功
好像是,官方文档推荐用docker。
许多年前用过,,,现在不看了
有点儿复杂呀
落寞了,RSS没人用了
这个确实好。08年那会用rSS订阅了几百个,现在看来都已经不更新了。
终于推荐了,我一直在用这个
我还是使用在线的RSS,一个人就几个种子,够我用了。
不错,就是感觉好麻烦!
现在还有人在用RSS?
不明觉厉