TTRSS¶
Tiny Tiny RSS,即TTRSS
Docker搭建¶
準備¶
# 按需修改工作目录:
work=~/docker/tinytinyrss && mkdir -p $work && cd $work
# 按需修改端口,开启防火墙:
sudo ufw allow 3894/tcp comment 'tinytinyrss' && sudo ufw reload
# 提前拉取镜像:
docker pull wangqiru/ttrss:latest &&
docker pull wangqiru/mercury-parser-api:latest &&
docker pull wangqiru/opencc-api-server:latest &&
docker pull postgres:13-alpine
compose文件¶
nano $work/docker-compose.yml
version: "3"
services:
service.rss:
image: wangqiru/ttrss:latest
container_name: ttrss
ports:
- 3894:80 # 按需修改
environment:
- SELF_URL_PATH=https://rss.lyricn.com/ # 按需修改
- DB_PASS=EWufQHO4werW8F2 # 按需修改。与下面的密码对应
volumes:
- ./feed-icons:/var/www/feed-icons/
networks:
- public_access
- service_only
- database_only
stdin_open: true
tty: true
restart: always
service.mercury:
image: wangqiru/mercury-parser-api:latest
container_name: mercury
networks:
- public_access
- service_only
restart: always
service.opencc:
image: wangqiru/opencc-api-server:latest
container_name: opencc
environment:
- NODE_ENV=production
networks:
- service_only
restart: always
database.postgres:
image: postgres:13-alpine
container_name: postgres
environment:
- POSTGRES_PASSWORD=EWufQHO4werW8F2 # 按需修改。与上面的密码对应
volumes:
- ./db/:/var/lib/postgresql/data
networks:
- database_only
restart: always
networks:
public_access:
service_only:
internal: true
database_only:
internal: true
運行¶
上綫服務:cd $work && docker-compose up -d
查看日志:docker-compose logs -f
給予文件權限:sudo chmod 777 $work/feed-icons
重啓:docker-compose restart or docker-compose down && docker-compose up -d
初始化¶
默認賬號密碼:admin password
啓用外部API(偏好設置):爲了讓外部終端如手機使用。
啓用Fever API :Fever API可保证多客户端的实时进度同步。你可以用bitwarden生成一个新的密码并填入Set Password前面的空格中,记得点击Set Password保存。这个密码主要是在手机客户端通过 Fever API订阅时需要用。Fever API的密码与帐号密码是相互独立的。
插件¶
Mercucy/opencc :开启Mercucy是为了可以获取全文;开启opencc是为了中文的简繁体转换。记得点启用选择生效。
af_youtube_embed:这个插件的作用是在 Youtube RSS提要中嵌入视频(并将Youtube iframe 列入白名单)。
remove_iframe_sandbox:使定於源可以内嵌視頻
快捷鍵¶
- a+q:将展开的文章折叠
- f+q:将某个分类的文章全部标记为已读(好用)
- n:打开下一篇文章(好用)
- END和HOME:END用于不断地刷新未加载文章,而HOME是回到最新的文章。在电脑端上看一个消息比较多的频道时,可以先用END全部刷新完一波,然后用HOME定位至最新文章并快速往下浏览(通过是配合PAGE DOWN键)。
- PAGE UP和PAGE DOWN:向上翻页、向下翻页。文章比较多时很实用。
客戶端¶
IOS客户端Unread¶
Unread的用法如下:
地址:https://rss.domain.com/plugins/fever/(这里要注意没有.local!) 帐户:admin 密码:启用Fever时输入的那个密码。不是登陆密码。
備份¶
通过duplicati定期备份整个$work目录(包含www和db)。
Nginx 配置¶
#前部分
upstream ttrss {
server 127.0.0.1:3894;
}
#前部分
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /usr/local/nginx/conf/ssl/rss.lyricn.com.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/rss.lyricn.com.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.lyricn.com ;
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://rss.lyricn.com/ttrss,请参考如下配置:
location /ttrss/ {
rewrite /ttrss/(.*) /$1 break;
proxy_redirect https://$http_host https://$http_host/ttrss;
proxy_pass http://ttrss;
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;
}