概述
Tiny Tiny RSS是一款基于 PHP 的免费开源 RSS 聚合阅读器。Awesome TTRSS旨在提供一个 「一站式容器化」 的 Tiny Tiny RSS 解决方案,通过提供简易的部署方式以及一些额外插件,以提升用户体验。
这里有一个官方Demo可供试用,账号密码均为Demo
。
部署
摘自官方文档:
通过 Docker 部署
docker run -it --name ttrss --restart=always \
-e SELF_URL_PATH=[ TTRSS 实例地址 ] \
-e DB_HOST=[ 数据库地址 ] \
-e DB_PORT=[ 数据库端口 ] \
-e DB_NAME=[ 数据库名称 ] \
-e DB_USER=[ 数据库用户名 ] \
-e DB_PASS=[ 数据库密码 ] \
-p [ 容器对外映射端口 ]:80 \
-d wangqiru/ttrss
通过 docker-compose 部署
- 下载 docker-compose.yml至任意目录。
- 更改
docker-compose.yml
中的设置,请务必更改 postgres 用户密码。 - 通过终端在同目录下运行
docker-compose up -d
后等待部署完成。 - 默认通过 181 端口访问 TTRSS,默认账户:
admin
密码:password
,请第一时间更改。 wangqiru/mercury-parser-api
及wangqiru/opencc-api-server
为支持高级功能而加入的可选服务类容器,删除不会影响 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 禁用订阅源更新所产生的日志打印
更多环境变量,参见 官方 tt-rss。
非Docker部署(已过时)
注意:记得安装PHP和PostgreSQL/MySQL/MariaDB
参见官方文档:
从Git
上克隆存储库
git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss
处理全局配置: config.php
- 复制
config.php-dist
到config.php
- 定义下面的强制全局设置以及您需要更改的任何其他设置 。这是需要设置的绝对最小值(对于 PostgreSQL):
putenv('TTRSS_DB_HOST=dbhost');
putenv('TTRSS_DB_NAME=dbname');
putenv('TTRSS_DB_USER=dbuser');
putenv('TTRSS_DB_PASS=dbpassword');
putenv('TTRSS_SELF_URL_PATH=https://example.com/tt-rss');
如果是 MySQL/MariaDB,请添加以下内容:
putenv('TTRSS_DB_TYPE=mysql');
putenv('TTRSS_DB_PORT=3306');
然后,安装基础数据库架构。在 tt-rss 目录中,运行以下命令 :
php ./update.php --update-schema
打开页面,使用默认凭据登录 (用户名:admin
,密码:password
)。
添加Nginx反向代理
配置模板如下,可根据需要自行修改
server {
listen 443 ssl;
http2 on;
server_name www.example.com;
ssl_certificate /etc/nginx/cert/cf.pem;
ssl_certificate_key /etc/nginx/cert/cf.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA;
ssl_prefer_server_ciphers off;
root /usr/share/nginx/tt-rss;
location / {
index index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name www.example.com;
return 301 https://$host$request_uri;
}
使用
可以配合RSS Hub使用。