1854 字
9 分钟

Docker-Compose自部署RSSHub,打造个人专属信息聚合系统

前言#

说实话,最近几年我越来越依赖 RSS 订阅来获取信息了。你可能也有同感:刷各种 App 越来越浪费时间,信息流算法不断推送你不需要的内容,真正有价值的东西反而不容易看到。

刚开始接触 RSS 的时候,也被各种 RSS 阅读器搞得头大。但后来发现,真正的痛点不是阅读器,而是没有好用的 RSS 源。很多网站根本不提供 RSS 订阅功能,或者提供的 RSS 源内容质量很差。

直到我遇到了 RSSHub

RSSHub 是什么?#

RSSHub 是一个轻量、易于扩展的 RSS 生成器,项目地址:https://github.com/DIYgod/RSSHub

简单来说,它可以给”任何”内容生成 RSS 订阅源。我用了这么久,真心觉得它的功能强大到令人惊讶。目前它支持:

  • B 站:番剧、UP 主投稿、UP 主动态、UP 主收藏夹、分区视频
  • 微博:博主、关键词
  • 网易云音乐:歌单歌曲、用户歌单、歌手专辑
  • 简书:首页、7 日热门、30 日热门、专题、作者
  • 知乎:收藏夹、用户动态、用户回答、专栏
  • 掘金:分类
  • 自如:房源
  • 快递:所有快递公司
  • 豆瓣:正在上映的电影、正在上映的高分电影、即将上映的电影
  • 贴吧:帖子列表
  • pixiv:用户收藏、用户动态、排行榜

远远不止这些,还有很多很多…

为什么要自己部署 RSSHub?#

你可能想问:官方不是有现成的 rsshub.app 实例吗?为什么还要自己折腾?

自部署的两个主要原因:

  1. 访问速度快:官方实例可能会被墙,只要官方会继续镜像的更新和维护,那么自己部署使用会更稳妥一些。
  2. 可定制配置:支持通过环境变量进行个性化配置。

准备工作#

在开始之前,你需要准备以下东西:

  • 一台服务器(推荐 2GB 内存以上,阿里云/腾讯云 99 元/年的轻量服务器就够用)
  • 服务器上已安装 Docker 和 Docker Compose

安装 Docker#

如果你还没安装 Docker,可以按照官方教程来安装:

Terminal window
# 使用官方一键安装脚本
sudo curl -fsSL https://get.docker.com | sh
# 如果是非 Root 账户,将当前账户添加到 "docker" 组
sudo usermod -aG docker $USER

安装 Docker Compose#

Terminal window
# 从 GitHub 下载到本地相应目录
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予 Docker Compose 目录相应权限
sudo chmod +x /usr/local/bin/docker-compose

注意:上面命令中的 v2.24.0 可以更换为你想要的任何版本,你可以去 Docker Compose Releases 查看最新版本。

使用 Docker Compose 部署 RSSHub#

之前折腾过很多部署方式,Docker Compose 真的是最简单、最稳定的方案。这里我就用官方提供的 docker-compose.yml 配置文件来进行部署。

第 1 步:下载并配置 docker-compose.yml 文件#

在服务器上创建一个目录来存放 RSSHub 的配置文件:

Terminal window
mkdir /opt/rsshub && cd /opt/rsshub

然后创建 docker-compose.yml 文件。我建议先在本地电脑上编辑好,再上传到服务器。下面是官方提供的配置文件(我做了一些必要的修改):

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'
# ACCESS_KEY: 'ILoveRSSHub' # 配置一个访问密钥,订阅源仅通过密钥访问,如 https://rsshub.app/qdaily/column/59?key=ILoveRSSHub
# PROXY_URI: http://192.168.0.10:7890 # 按需配置 http 代理
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:1200/healthz']
interval: 30s
timeout: 10s
retries: 3
depends_on:
- redis
- browserless
browserless:
image: browserless/chrome
restart: always
ulimits:
core:
hard: 0
soft: 0
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:3000/pressure']
interval: 30s
timeout: 10s
retries: 3
redis:
image: redis:alpine
restart: always
volumes:
- redis-data:/data
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 30s
timeout: 10s
retries: 5
start_period: 5s
volumes:
redis-data:

把这个配置文件保存为 docker-compose.yml,然后上传到服务器的 /opt/rsshub 目录。

第 2 步:启动 RSSHub#

/opt/rsshub 目录下执行下面命令会自动完成镜像拉取和容器启动:

Terminal window
docker-compose up -d

第 3 步:检查运行状态#

启动完成后,可以用以下命令检查服务运行状态:

Terminal window
docker-compose ps

你应该能看到三个服务都在运行:rsshub、browserless、redis。如果某个服务的状态不是 “Up”,可以用 docker-compose logs 查看日志排查问题。

第 4 步:访问 RSSHub#

打开浏览器,输入 http://<你的服务器IP>:1200,如果你能看到 RSSHub 的欢迎页面,说明部署成功了!

更多配置选项#

除了基础部署,RSSHub 还支持丰富的配置选项,比如:

  • 内容过滤:通过正则表达式过滤 RSS 源内容
  • 访问控制:配置访问密钥保护你的 RSS 源
  • 缓存配置:调整缓存策略和过期时间
  • 代理配置:设置代理访问受限制的内容
  • 图片处理:配置图片代理和优化

如果你需要这些高级功能,可以访问 RSSHub 官方文档 - 参数配置 了解详细使用方法。

使用 Caddy 反向代理添加 SSL 证书#

如果你有自己的域名,可以用 Caddy 配置反向代理并自动申请 SSL 证书,实现 HTTPS 访问。Caddy 的优势是配置简单、自动续期 SSL 证书,而且占用资源很小。

安装 Caddy#

在服务器上执行以下命令安装 Caddy:

Terminal window
# Ubuntu/Debian 系统
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
# CentOS/RHEL 系统
sudo yum install yum-plugin-copr -y
sudo yum copr enable @caddy/caddy -y
sudo yum install caddy -y

配置 Caddy#

编辑 Caddy 配置文件:

Terminal window
sudo vim /etc/caddy/Caddyfile

添加以下内容(修改域名、邮箱和 IP 地址):

your-domain.com {
reverse_proxy 127.0.0.1:1200
# 自动申请 Let's Encrypt SSL 证书
tls your@email.com
# 日志配置
log {
output file /var/log/caddy/access.log
}
# Gzip 压缩
encode gzip
}

配置说明:

  • your-domain.com:替换为你的域名
  • 127.0.0.1:1200:RSSHub 的监听地址和端口(如果是同一服务器,可以用 127.0.0.1;如果是其他服务器,填写实际 IP)
  • your@email.com:替换为你的邮箱,用于 SSL 证书申请
  • Caddy 会自动向 Let’s Encrypt 申请免费的 SSL 证书,并自动续期

启动 Caddy#

Terminal window
# 启动 Caddy
sudo systemctl start caddy
# 设置开机自启
sudo systemctl enable caddy
# 检查状态
sudo systemctl status caddy

访问测试#

此时,你就可以通过 https://your-domain.com 访问你的 RSSHub 辣。

写在最后#

最后推荐一下我现在的信息流获取的方式:RSSHub 生成各种 RSS 源 → FreshRSS 进行 RSS 订阅源聚合统一进行管理 → iOS / macOS 上使用免费的开源 RSS 客户端—> NetNewsWire 进行阅读。整个过程就像建立了一个属于自己的信息过滤系统,只让真正有价值的内容进来。

你可能会问:现在都 2026 年了,RSS 这种老掉牙的技术还有必要折腾吗?

我的答案是:非常有必要

在这个信息爆炸的时代,主动选择自己想要什么,比被动接受算法推送更重要。RSSHub 让我们能够把分散在各个平台的信息聚合到一处,按照自己的节奏阅读,这才是真正的信息自由。

如果你还没有尝试过 RSS,现在就是最好的时机。用这篇文章的方法,花 10 分钟时间部署一个属于自己的 RSSHub,开始构建属于你自己的信息流吧~

相关资源#

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Docker-Compose自部署RSSHub,打造个人专属信息聚合系统
https://blog.moewah.com/posts/1364/
作者
GoWah
发布于
2019-01-14
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
GoWah
Hello, I'm GoWah.
分类
标签
站点统计
文章
160
分类
9
标签
350
总字数
301,106
运行时长
0
最后活动
0 天前

目录