由于部分网站严格的反爬机制、再加上大量使用带来的计算压力,RSSHub 鼓励用户自建使用。但如果你也有自建 RSS 阅读器习惯、且部署 RSSHub 也只是为了自用而不打算与他人共享,完全可以本地部署 RSSHub 后不将其暴露至公网、直接在自建 RSS 阅读器上通过特殊字段访问到本地的 RSSHub。
Docker 部署 RSSHub
RSSHub 官方文档已有多种手段详细的 部署教程,本文只介绍流程较为简单的 Docker 部署方式。
安装 Docker 与 Docker Compose
参考 官方文档 安装 Docker:
# 使用官方一键安装脚本 sudo curl -fsSL https://get.docker.com | sh # 如果是非 Root 账户,将当前账户添加到 "docker" 组 sudo usermod -aG docker <your-user>
随后安装 Docker 三剑客之一——Docker Compose,有它可以方便处理存在依赖关系的服务。即便没有依赖,将长长的 bash 命令换成 yaml 文件的格式传入也舒服多了,不是吗?
# 从 GitHub 下载到本地相应目录 sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 赋予 Docker Compose 目录相应权限 sudo chmod +x /usr/local/bin/docker-compose
第一条代码中的 1.28.2 可以更换为任何你希望获取的 版本。
使用 Docker Compose 安装 RSSHub
在特定目录新建 Docker Compose 配置文件,并编辑。
# 新建 Docker Compose 配置文件 touch docker-compose.yml # 编辑配置文件,反正我习惯用 Vim vim docker-compose.yml
version: '3' services: rsshub: image: diygod/rsshub restart: unless-stopped 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:1.43-chrome-stable restart: unless-stopped redis: image: redis:alpine restart: unless-stopped volumes: - redis-data:/data volumes: redis-data:
:wq 保存退出后,可先前台执行观察输出,若确认无误后便可置于后台持续运行。
# 先前台执行观察输出 docker-compose up # 确认无误后后台持续运行 docker-compose up -d
自建 RSS 阅读器中使用自建 RSSHub
这里有个前提,就是自建 RSS 阅读器与自建 RSSHub 需要在同一内网内,这样才可以方便地本地调用。若非服务器性能实在捉急,否则建议部署在同一服务器内。
不卖关子,一句话概括就是将 RSS 链接中的 rsshub.app 替换为 rsshub:1200(1200 为默认端口),后面的路由一致。若使用的是 HTTPS 请求,记得改回 HTTP 请求。
例如:
https://rsshub.app/twitter/user/iChrAlpha
就改为:
http://rsshub:1200/twitter/user/iChrAlpha
刷新源即可。
如果你从未接触过 RSSHub,可以参考 RSSHub 文档 - 开始食用 部分和路由部分。
举个例子,假如你想要订阅 ChrAlpha 的 Telegram Channel,地址为 https://t.me/s/ChrAlphaChannel,在 RSSHub 文档中找到关于 Telegram 的路由(位于「路由 => 社交媒体 => Telegram」)。
由于希望订阅的是频道,且通过 原链接 可知 :username 即为 ChrAlphaChannel。那么 RSS 订阅链接 便是 https://rsshub.app/telegram/channel/ChrAlphaChannel。
如果你同样也是使用自建RSS阅读器、自建RSSHub的话,就将RSS订阅链接中的 rsshub.app替换为 rsshub:1200,最终就是 http://rsshub:1200/telegram/channel/ChrAlphaChannel