在自己的服务器上快速部署RSSHub

admin


本文最后更新于 2020年09月27日

前言

折腾了两天,遇到不少问题,总算都解决了,过两天再写一篇tiny rss的教程

开始吧!

安装docker和docker-compose



2020.09.27 更新

docker-compose一把梭版

version: '3'

services:
rsshub:
image: diygod/rsshub
restart: always
ports:
- '1200:1200'
environment:
NODE_ENV: production
CACHE_TYPE: redis
REDIS_URL: 'redis://redis:6379/'
PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
depends_on:
- redis
- browserless

browserless:
image: browserless/chrome
restart: always

redis:
image: redis:alpine
restart: always
volumes:
- redis-data:/data

watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: rsshub_service.rsshub_1 --cleanup --interval 1200


volumes:
redis-data:

部署RSSHub

直接复制粘贴执行,一把梭

mkdir -p ~/rsshubcd ~/rsshubwget https://raw.githubusercontent.com/DIYgod/RSSHub/master/docker-compose.yml# 有需要的可以自己定制docker-compose.ymldocker volume create redis-datadocker-compose up -d# 自动更新rsshub,并清理老旧镜像docker run -d \--name watchtower \-v /var/run/docker.sock:/var/run/docker.sock \containrrr/watchtower --cleanup --interval 600 \rsshub_service.rsshub_1

使用NGINX反向代理RSSHub

显示所有容器IP地址,找到rsshub_service.rsshub_1的ip

docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

找到rsshub_service.rsshub_1的IP后,编辑nginx配置

vi /etc/nginx/conf.d/rsshub.conf
# 添加如下内容

server {
listen 80;
server_name 你的域名;
location / {
proxy_pass http://改成[rsshub_service.rsshub_1]的ip地址:1200;
proxy_redirect off;
proxy_set_header        Host    $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

配置https和开启gzip



教程结束,rsshub由于路由表放在了本地,所以要隔三差五就要更新容器和镜像,为此我还写了脚本解决这个问题(用不上了,使用watchtower解决)

我写了一个脚本,来定时更新routes,写的比较粗糙
希望可以更新支持自动检查并更新routes

mkdir -p ~/rsshub && cd ~/rsshub && vi new_routes.sh
# 添加如下内容,wq保存
#!/bin/sh

if [ -d "/tmp/RSSHub" ]; then
echo '存在/tmp/RSSHub,删除/tmp/RSSHub'
rm -rf /tmp/RSSHub
fi
cd /tmp
echo '开始下载DIYgod/RSSHub'
git clone https://github.com/DIYgod/RSSHub.git

echo '拷贝新路由表到/app/lib/routes'
docker cp /tmp/RSSHub/lib/routes rsshub_service.rsshub_1:/app/lib/
echo '清理下载文件'
rm -rf /tmp/RSSHub
赋权并执行

chmod +x ~/rsshub/new_routes.sh
sh ~/rsshub/new_routes.sh
添加定时任务

crontab -e
# 每120分钟执行一次
*/120     *       *       *       *      ~/rsshub/new_routes.sh

自动更新rsshub




1.256141s