搭建自己的 RSS 聚合器

RSS 是一种看起来似乎 “过时” 了的信息聚合技术,通过订阅 RSS 链接,我们能够及时得到自己关注的网站、论坛的最新动态。尽管目前 RSS 已经逐渐淡出了历史舞台,但面对其他各种网站、论坛推送的大量无营养内容,使用 RSS 订阅自己喜欢网站的内容似乎也是很有必要的,更何况,很多优质的个人博客都开启了 RSS 订阅。因此,小醋就打算利用自己购买的服务器,来搭建一个 RSS 聚合器。

环境:Ubuntu 20,宝塔面板,docker-compose,tiny tiny rss。

Docker 部署 Tiny Tiny RSS

新建一个 docker-compose.yml 文件,内容如下:

version: "3"
services:
service.rss:
image: wangqiru/ttrss:latest
container_name: rss
ports:
- 33334:80
environment:
- SELF_URL_PATH=https://rss.litcu.cn/ # please change to your own domain
- DB_PASS=RSS2020 # use the same password defined in `database.postgres`
- PUID=1000
- PGID=1000
volumes:
- feed-icons:/var/www/feed-icons/
networks:
- public_access
- service_only
- database_only
stdin_open: true
tty: true
restart: always

service.mercury: # set Mercury Parser API endpoint to `service.mercury:3000` on TTRSS plugin setting page
image: wangqiru/mercury-parser-api:latest
container_name: mercury
networks:
- public_access
- service_only
restart: always

service.opencc: # set OpenCC API endpoint to `service.opencc:3000` on TTRSS plugin setting page
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=RSS2020 # feel free to change the password
volumes:
- /home/docker/rss/postgres/data/:/var/lib/postgresql/data # persist postgres data to ~/postgres/data/ on the host
networks:
- database_only
restart: always

# utility.watchtower
# container_name: watchtower
# image: containrrr/watchtower:latest
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# environment:
# - WATCHTOWER_CLEANUP=true
# - WATCHTOWER_POLL_INTERVAL=86400
# restart: always

volumes:
feed-icons:

networks:
public_access: # Provide the access for ttrss UI
service_only: # Provide the communication network between services only
internal: true
database_only: # Provide the communication between ttrss and database only
internal: true

然后创建好 /postgres/data 目录,使用 docker-compose up -d 来启动环境。

宝塔面板配置

利用宝塔面板新建一个网站,使用 PHP,然后添加 DNS 解析、申请 SSL 证书并部署,这部分省略。

完成后有一点需要特别注意:重定向。如果直接使用宝塔面板自带的重定向,那么会无法访问。因此需要自己手动修改配置文件。

首先打开配置文件,找到 SSL 相关的部分,有 SSL SSTARTSSL END 提示,将中间的部分复制出来,暂时保留。

然后删除配置文件所有内容,填入以下内容:

upstream ttrssdev {
server 127.0.0.1:181;
}

server {
listen 80;
server_name rss.litcu.cn;
return 301 https://rss.litcu.cn$request_uri;
}

server {
listen 443 ssl;
gzip on;
server_name rss.l.com;

#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则

将上面复制的内容粘贴到这里

#SSL-END

# 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 相关配置填入对应的地方,保存即可。

验证

浏览器访问自己设置的域名,默认用户名为 admin,密码为 password,能够成功登录即可。

参考链接