在自己的服务器上快速部署RSSHub
本文最后更新于 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 ~/rsshub
cd ~/rsshub
wget https://raw.githubusercontent.com/DIYgod/RSSHub/master/docker-compose.yml
# 有需要的可以自己定制docker-compose.yml
docker volume create redis-data
docker-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

原创声明
本文由 NG6 于2019年06月14日发表在 sleele的博客
如未特殊声明,本站所有文章均为原创;你可以在保留作者及原文地址的情况下转载
转载请注明:在自己的服务器上快速部署RSSHub | sleele的博客

评论

  1. Windows Chrome
    4年前
    2020-9-22 14:40:53

    非常详细的教程!

  2. HIMAN
    Macintosh Chrome
    4年前
    2020-9-11 22:19:31

    发现用 Heroku 一键安装的 RSSHUB 也是无法使用 YouTube 和 Twitter 的。

    • NG6
      HIMAN
      博主
      Jetpack
      4年前
      2020-9-11 22:31:20

      @HIMAN 服务端只是拉取了文字,你客户端能访问这俩网站才行

  3. HIMAN
    Macintosh Chrome
    已编辑
    4年前
    2020-9-11 20:05:46

    谢谢作者,按照你的教程终于搞出来了,不过还是遇到问题了,订阅 Youtube 频道的时候,提示:Youtube RSS is disabled due to the lack of relevant config。

    刚刚测了一下 Twitter 也不行。

  4. 匿名
    Macintosh Opera
    4年前
    2020-1-01 10:37:50

    记得nextcloud 有RSS功能模块的,我看博主有写一篇docker 安装nextcloud。建议就在nextcloud里用。

  5. Macintosh Chrome
    5年前
    2019-7-01 11:34:37

    之前我也想装个,但是要docker就放弃了

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇