Docker系列 利用RSShub搭建个人RSS源 从此万物皆RSS
本文最后更新于 48 天前,如有失效请评论区留言。

前言

通过Docker系列 安装个人RSS服务TTRSS 手机完美适配的学习,我们已经成功地搭建了自己的RSS阅读器。可能也有小伙伴通过Unread之类的手机App观看了RSS订阅。不知道你自己觉得这个获取知识的方案好不好呢?有了RSS阅读器后,马上就会有一个很大的问题——RSS源

由于RSS的式微,加上平台对自身资源的垄断,稳定的RSS越来越难获取。

今天我们要介绍一个在RSS界大名鼎鼎的项目——RSShubRSShub在Github上有19.6k的Star,足见其受欢迎程度了!根据官方仓库的介绍,“RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容”。此外,结合RSSHub Radar可以快速发现当前页面自带的RSS,这也大大增加了RSS源的可用性。

如果只看这个描述,好像也不是很特别。不过接下来,就是我觉得的比较特别的地方了:你可以通过docker来安装自己的RSShub!虽然官方已经搭建了一个服务:https://rsshub.app来进行RSS源的支持,但是这个地址经常有网络上的问题;速度也比较慢。况且玩docker到现在,搭建一个docker服务对我们而言已经是很简单的事了,所以我也准备搭建一个自己的RSShub

话不多说,我们开始吧!

准备工作

按需修改工作目录:

work=~/docker/rsshub && mkdir -p $work && cd $work

按需修改端口,开启防火墙:

sudo ufw allow 1200/tcp comment 'rsshub' && sudo ufw reload

提前拉取镜像(browserless/chrome很大):

docker pull diygod/rsshub && 
docker pull browserless/chrome && 
docker pull redis:alpine

配置yml文件

值得一提的是,官方给出的docker-compose文件只是一些基础设置。如果你有更多需要,可以参考这里的教程:RSShub配置,主要是通过修改rsshub的Environment选项来达到多种效果,比如用户控制。如果你按下面的方法来安装,原则上任何知道你RSShub地址的人都可以用你的地址进行订阅。如果你开启了ACCESS_KEY参数,这个参数的值要保管好,不要让其它人知道。

新建一个docker-compose文件:

vim $work/docker-compose.yml

添加以下内容:

version: '3'

services:
    rsshub:
        # two ways to enable puppeteer:
        # * (only on amd64/x86_64) comment out marked lines, then use this image instead: diygod/rsshub:chromium-bundled
        # * (on all supported architectures, but consumes more disk space and memory) leave anything unchanged
        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'  # marked
            ALLOW_LOCALHOST: true # 允许所有本地访问
            # ACCESS_KEY: wikWJAYTsq # 访问密钥,推荐开启。若要开启,将前面的#号去除即可,并按需定义
        depends_on:
            - redis
            - browserless  # marked

    browserless:  # marked
        image: browserless/chrome  # marked
        restart: always  # marked
        ulimits:  # marked
          core:  # marked
            hard: 0  # marked
            soft: 0  # marked

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

上线服务:

docker-compose up -d

ddns-go & NPM

不了解Nginx Proxy Manager用法的小伙伴,请看《Docker系列 两大神器NPM和ddns-go的安装》。

域名:https://example.com

NPM中加反代,无特殊。配置如下:

image-20220430184057229

直接访问https://example.com。如果你的服务安装成功,可以看到下面的内容:

image-20220430180101651

RSShub使用

使用说明:https://docs.rsshub.app/

比如,我比较喜欢看人民网的报道。RSShub的文档是如此建议订阅人民网的:

image-20220430182155578

你可以用自己的地址替换rsshub.app。这里分2种情况:

  • 如果你在docker-compose.yml文件中定义了ACCESS_KEY参数,应该使用:https://example.com/people?key=wikWJAYTsq或者https://example.com/people?code=27dcc3af2b1c660f050bcb5fd79310cb这两个地址之一。
  • 如果你没有在docker-compose.yml文件中定义ACCESS_KEY参数,直接使用https://example.com/people即可。

我一般推荐定义ACCESS_KEY参数(最好用bitwarden生成一段随机字符串),使用带code的那个地址来订阅。这种设置的好处是:如果你的某个RSShub源地址不小心泄露了,别人也无法以完全权限白嫖你的节点。

那么,链接中的code=XXX中的XXX是怎么来的呢?按文档的描述:

Code_atz4ZIWkts

其实就是2个字符串组合后生成md5码。在Linux Shell中,你可以用以下命令:

# 仔细体会字符串的结构。在本例中,由路由/people和密钥wikWJAYTsq组成
echo -n '/peoplewikWJAYTsq'|md5sum|cut -d ' ' -f1 # 27dcc3af2b1c660f050bcb5fd79310cb

自己试试在TTRSS中添加一个自建的RSShub地址吧,不会的评论区留言!

在实际使用中,我们很少自己计算,一般是通过RSSHub Radar自动生成带有code的RSS订阅地址。

RSSHub Radar使用

如果你是一个RSS重度用户的话,使用RSShub Radar会更加方便!

具体的方法自己去官方Github Repo查吧!我这里贴一下它的安装介绍。我平时使用是将RSShub Radar当作Chrome插件用的:

image-20220501120352949

这里我主要讲一下RSShub Radar的设置:

chrome_vXz2cd3ooc

注意:如果你用Nextcloud News的话,这里填写的链接类似于https://nextcloud.domain.com/apps/news/。你可以在Docker系列 深度使用nextcloud(七) 在nextcloud使用RSS订阅中查看关于News的使用。

设置好后,比如我要打开知乎热榜:https://www.zhihu.com/hot,就可以有一些自定义的选项。非常方便!

image-20220501120948065

小结

RSShub的安装和使用还是比较简单的。而且你也不需要用duplicati去备份它的目录,因为你其实不需要本地的任何数据。比较傻瓜式!配合TTRSS、RSShub Radar,RSS订阅的体验还是非常好的!

我还发现,像知乎这种新媒体还是支持RSS的,可能它是一个比较开放和极客的平台吧!不管怎么说也要给它点赞了!头条系就比较封闭,基本上不支持RSS。

其实RSShub可能也不能完全解决你的问题。对于某些很难获得的源,你可以看看拓展阅读的内容,或者请教一下大神们,要怎么做。有条件的话,你可以加入RSShub的Telegram群或者去Github提issue获得社区帮助。总之,完美的RSS体验还是需要自力更生的。不过,如果你真的折腾通了的话,那么个人阅读的环境将会非常干净和惬意。

日志

2022-06-04

  • docker-compose.yml文件中增加ACCESS_KEY参数,增加RSShub私人属性。

参考

拓展阅读

版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。 如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租:留言板 | 博客VPS |
暂无评论

发送评论 编辑评论


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