效果如下:
image-20250520193114819

一、项目背景与功能概述

1.1 RSS Reader 项目简介

根据 GitHub 仓库 的 README 内容,RSS Reader 是一个基于 Node.js 的 RSS 订阅工具,支持以下核心功能:

  • RSS 订阅管理:支持批量添加和管理多个 RSS 源。
  • 关键词过滤:根据用户定义的关键词,筛选感兴趣的内容。
  • 定时刷新:可配置 RSS 源的刷新频率(如每 5 分钟)。
  • 通知推送:支持通过 Telegram 等方式发送更新通知。
  • 时间段控制:允许设置夜间模式,控制通知发送时间。
  • 数据归档:将处理过的 RSS 内容保存到指定文件中。

该项目适合需要实时监控 RSS 源并获取定制化信息的用户,例如追踪技术博客、论坛动态或新闻资讯。

二、环境准备

2.1 系统要求

  • 操作系统:Debian 12
  • 权限:Root 或具有 sudo 权限的用户
  • 网络:稳定的互联网连接,用于下载 Docker 和项目文件

2.2 更新系统

确保系统包和依赖是最新的,以避免兼容性问题:

sudo apt update
sudo apt upgrade -y

说明apt update 更新软件包列表,apt upgrade -y 自动升级已安装的软件包,-y 参数跳过确认提示。

三、安装 Docker 和 Docker Compose

3.1 安装 Docker

在 Debian 12 上安装 Docker 的步骤如下:

sudo apt install docker.io -y

验证安装

docker --version

预期输出类似:Docker version 24.x.x, build xxxxx

3.2 安装 Docker Compose

Docker Compose 用于管理多容器应用,安装步骤如下:

  1. 下载最新版本的 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

说明uname -suname -m 分别获取系统类型和架构,确保下载匹配的二进制文件。

  1. 赋予执行权限:
sudo chmod +x /usr/local/bin/docker-compose
  1. 验证安装:
docker-compose --version

预期输出类似:Docker Compose version v2.x.x

3.3 启动并启用 Docker 服务

确保 Docker 服务在系统启动时自动运行:

sudo systemctl start docker
sudo systemctl enable docker

四、部署 RSS Reader 项目

4.1 克隆项目

将 RSS Reader 项目克隆到本地:

git clone https://github.com/okhanyu/rss-reader
cd rss-reader

说明cd rss-reader 进入项目目录,确保后续操作在正确路径下执行。

4.2 配置 config.json

编辑 config.json 文件,添加 RSS 源、关键词和通知设置。以下是您提供的配置文件,已优化格式以提高可读性:

{
  "values": [
    "https://v2ex.com/feed/tab/deals.xml",
    "https://rss.nodeseek.com",
    "https://linux.do/latest.rss",
    "https://rsshub.app/telegram/channel/v2exc",
    "https://www.chiphell.com/forum.php?mod=rss",
    "https://rsshub.app/telegram/channel/Aliyundrive_Share_Channel",
    "https://sspai.com/feed",
    "https://rsshub.app/telegram/channel/shareAliyun",
    "https://rsshub.app/telegram/channel/awesomeRSSHub",
    "https://tech.meituan.com/feed/",
    "https://xueqiu.com/hots/topic/rss",
    "https://huiris.com/feed",
    "https://www.macin.org/atom.xml",
    "https://www.ithome.com/rss/",
    "https://www.tmtpost.com/rss",
    "http://www.voicer.me/feed",
    "https://www.backpackers.com.tw/forum/external.php",
    "https://www.photoworld.com.cn/feed",
    "https://feed.cnblogs.com/blog/sitehome/rss",
    "https://www.williamlong.info/rss.xml",
    "http://www.ftchinese.com/rss/hotstoryby7day",
    "https://wangyurui.com/feed.xml",
    "https://hostloc.com/forum.php?mod=rss&fid=45&auth=389ec3vtQanmEuRoghE%2FpZPWnYCPmvwWgSa7RsfjbQ%2BJpA%2F6y6eHAx%2FKqtmPOg",
    "https://www.dalao.net/feed.htm",
    "http://rss.dw.de/rdf/rss-chi-all",
    "https://cn.nytimes.com/rss.html",
    "https://www.bbc.com/zhongwen/simp/index.xml",
    "https://rsshub.app/initium/latest/zh-hans",
    "https://www.stefanjudis.com/",
    "https://webtoolsweekly.com/archive",
    "https://rsshub.app/telegram/channel/wxbyg",
    "https://www.biede.com/feed",
    "http://www.woshipm.com/feed"
  ],
  "refresh": 5,
  "autoUpdatePush": 7,
  "nightStartTime": "08:00:00",
  "nightEndTime": "23:30:00",
  "keywords": [
    "NAS"
  ],
  "notify": {
    "telegram": {
      "api": "https://api.telegram.org/bot${token}/sendMessage",
      "chat_id": "yourchat_id",
      "token": "yourtoken"
    }
  },
  "archives": "archives.txt"
}

配置说明

  • values:列出需要订阅的 RSS 源,涵盖技术论坛(如 V2EX、Chiphell)、新闻媒体(如 BBC、纽约时报)和个人博客等。
  • refresh:RSS 源刷新间隔(分钟),这里设置为 5 分钟。
  • autoUpdatePush:自动推送更新的频率(天),这里为 7 天。
  • nightStartTime/nightEndTime:通知发送时间段,限制为 08:00 至 23:30。
  • keywords:过滤关键词,匹配包含这些词的内容(如 “NAS”、“AI”)。
  • notify.telegram:Telegram 通知配置,包括 API 地址、聊天 ID 和令牌。
  • archives:归档文件路径,存储处理过的 RSS 数据。

优化建议

  1. RSS 源验证:部分 RSS 源(如 https://www.chiphell.com/forum.php?mod=rss)可能需要登录或特定权限,建议测试每个 URL 的可用性。
  2. 关键词优化:关键词列表较广泛,可能导致通知过多。建议精简为高优先级词,如 “NAS”、“AI”、“推荐”。
  3. 刷新频率:5 分钟刷新可能对 VPS 资源和 RSS 服务器造成压力,建议根据实际需求调整为 10-15 分钟。

4.3 运行项目

使用 Docker Compose 启动项目:

docker-compose up -d

说明

  • -d 参数表示后台运行容器。
  • 启动后,项目将根据 config.json 的设置自动拉取 RSS 内容、筛选关键词并通过 Telegram 发送通知。

验证运行状态

docker ps

检查是否有名为 rss-reader 的容器在运行。

五、常见问题与排查

5.1 Docker 无法启动

  • 问题:执行 docker-compose up -d 报错。
  • 解决

    1. 检查 docker-compose.yml 文件是否存在且格式正确。
    2. 确保 VPS 磁盘空间足够:df -h
    3. 查看 Docker 日志:docker logs <container_id>

5.2 Telegram 通知失败

  • 问题:未收到 Telegram 通知。
  • 解决

    1. 确认 config.json 中的 chat_idtoken 正确。
    2. 测试 Telegram API 是否可访问:curl https://api.telegram.org/bot<token>/getMe
    3. 检查 VPS 网络是否限制了 Telegram 的访问。

5.3 RSS 源无法访问

  • 问题:部分 RSS 源无法拉取数据。
  • 解决

    1. 使用 curl <rss_url> 测试 RSS 源是否可达。
    2. 检查是否需要认证或特定 User-Agent。
    3. 替换不可用的 RSS 源。

六、参考资料

  1. RSS Reader GitHub 仓库
  2. YXVM VPS 产品详情
  3. Docker 官方文档
  4. Docker Compose 官方文档
  5. Telegram Bot API

七、附加信息

  • 项目地址https://github.com/okhanyu/rss-reader
  • VPS 管理:请定期检查 VPS 到期时间,以确保服务持续运行。
  • 优化建议

    • 启用日志监控(如 docker logs 或外部工具)以跟踪项目运行状态。
    • 考虑使用 docker-compose.yml 中的 restart: always 确保容器自动重启。
    • 定期备份 archives.txtconfig.json 以防数据丢失。