Skip to content

在 Debian 12 上安装并使用 RSStT

更关心您阅读体验的 Telegram RSS 机器人

RSS-to-Telegram-Bot (RSStT) 是一个功能强大的 Telegram 机器人,可以将 RSS 源的更新推送到 Telegram。使用 Docker Compose 是官方最推荐的部署方式,它极大地简化了安装、配置和更新过程,将应用程序及其依赖项打包在隔离的容器中运行,非常适合新手和追求便捷管理的用户。本教程将指导您如何在 Debian 12 服务器上一步步完成 Docker Compose 部署。

1. 准备工作

与任何安装方式一样,我们首先需要获取一些必要的凭证信息。如果您已在其他教程中获取过,可以跳过此步。

所需信息

  • Telegram Bot Token: 用于让我们的程序作为 Bot 连接到 Telegram。
  • 管理员 Telegram User ID: 用于管理 Bot 的权限。
  • Telegraph API Token(s): 用于将过长的消息发布为 Telegraph 文章 (推荐获取 5 个)。

1.1 获取 Telegram Bot Token

  1. 打开 Telegram,搜索并与 @BotFather 开始对话。
  2. 发送 /newbot 命令,按提示设置 Bot 的名字 (Name) 和用户名 (Username, 必须以 bot 结尾)。
  3. 创建成功后,复制 BotFather 发送的 HTTP API Token妥善保管
  4. (重要) 接着,向 BotFather 发送 /setinline 命令,选择你刚创建的 Bot,然后随意回复一条消息(如:输入命令...)以启用内联模式。

记录 Token

将获取到的 Bot Token 复制下来备用。我们称之为 TOKEN

然后与您的机器人对话,并发送/start命令。 ActivateBot

1.2 获取你的 Telegram User ID

  1. 打开 Telegram,搜索并与 @userinfobot 开始对话。
  2. 发送 /start 或任何消息。
  3. 复制它回复的纯数字 User ID

记录 User ID

将获取到的 User ID 复制下来备用。我们称之为 MANAGER

1.3 获取 Telegraph API Token(s)

  1. 访问 Telegraph API 创建页面(此链接会在生成的文章页脚留下 RSStT 的项目标识)

    自定义无标识链接: https://api.telegra.ph/createAccount?short_name=YourName

  2. 复制页面结果中 access_token 的值。

  3. (重要) 刷新页面以获取新的、不同的 access_token。重复此操作,至少获取 5 个 Token。

记录 Telegraph Token

将获取到的所有 Telegraph API Token 用逗号连接起来,复制备用。我们称之为 TELEGRAPH_TOKEN。例如:token1,token2,token3,token4,token5

2. 服务器环境准备:安装 Docker 和 Docker Compose

Docker Compose 需要 Docker Engine 运行环境。我们将安装最新的 Docker 版本。

操作环境

本教程假设您使用的是一台拥有 sudo 权限用户的 Debian 12 服务器。所有命令默认使用 sudo 提升权限,除非已将用户添加到 docker组。

2.1 更新系统软件包

首先,确保系统是最新的。

bash
sudo apt update && sudo apt upgrade -y

2.2 安装 Docker

  1. 卸载旧版本 (如果存在):

    bash
    sudo apt remove docker docker-engine docker.io containerd runc -y
  2. 安装必要的依赖包:

    bash
    sudo apt install -y ca-certificates curl gnupg lsb-release
  3. 使用一键脚本

    bash
    curl -fsSL https://get.docker.com | bash

3. 使用 Docker Compose 安装 RSStT

现在 Docker 环境准备就绪,我们可以开始部署 RSStT 了。

3.1 创建工作目录并下载配置文件

bash
# 创建一个专门的目录存放 RSStT 的配置和数据
mkdir ~/rsstt_docker
cd ~/rsstt_docker

# 下载官方提供的 docker-compose.yml 示例文件
wget https://raw.githubusercontent.com/Rongronggg9/RSS-to-Telegram-Bot/dev/docker-compose.yml.sample -O docker-compose.yml

3.2 配置 docker-compose.yml 文件

docker-compose.yml 文件定义了运行 RSStT 所需的服务(即容器)及其配置。我们需要编辑它来填入之前准备好的凭证信息。

bash
# 使用 nano 编辑器编辑文件 (也可以使用 vim 或其他编辑器)
nano docker-compose.yml

找到 services: -> rsstt: -> environment: 部分。这里定义了 RSStT 运行所需的环境变量。你需要修改以下几行:

docker-compose.yml (environment 部分)

yaml
services:
  rsstt:
    # ... (其他配置保持不变)
    environment:
      # --- Required ---
      # Telegram Bot Token (从 @BotFather 获取)
      - TOKEN=YOUR_TELEGRAM_BOT_TOKEN # <--- 替换为自己的 Token

      # Bot 管理员的 Telegram User ID (从 @userinfobot 获取)
      - MANAGER=123456789 # <--- 修改这里

      # Telegraph API Tokens (一行一个,至少一个,推荐5个)
      TELEGRAPH_TOKEN=<你的Telegraph_API_Token1>
        1599373e3dbf55515XXXXX8658d28297fa3
        f2a8f5c5db81c740bcXxxxX52287ec413
        361935c66b7XXX7ce645af19
        0702249218XXXXXc2ab7fcd981b9db820d80098c03ce6
        130f258173dXXXX10ef89adf51477535822a94fca708f578d62

      # 数据库类型 (Docker Compose 默认使用 sqlite, 数据存储在 volume 中)
      # 如果你想使用外部 PostgreSQL 数据库,需要取消注释并修改下面两行
      # - DB_TYPE=postgre
      # - DATABASE_URL=postgresql://user:password@host:port/database

      # --- Optional ---
      # Telegram API 的代理 (例如: socks5://192.168.1.100:1080, 注意这里的 IP 通常是宿主机 IP 或代理服务容器 IP)
      # - PROXY=socks5://192.168.1.100:1080
      # RSS 源的代理
      # - RSS_PROXY=http://192.168.1.100:1081

      # 启用 HTML 表格转图片 (需要容器内字体支持,官方镜像已包含)
      # - TABLE_TO_IMAGE=1

重要修改点:

  • <你的机器人TOKEN> 替换为你的真实 Bot Token。
  • <你的Telegram用户ID> 替换为你的真实 User ID。
  • <你的Telegraph_API_Token1> 替换为你之前生成的 Telegraph Token ,一行一个。
  • 如果需要代理,请取消对应 - PROXY=- RSS_PROXY= 行的注释并填入正确的代理地址。注意,如果代理在宿主机上,地址通常是宿主机的局域网 IP 或 172.17.0.1 (Docker 默认网桥 IP),而不是 127.0.0.1
  • 默认使用 SQLite 数据库,数据会保存在 Docker Volume (rsstt-data) 中,无需额外配置。

编辑完成后,按 Ctrl + X,然后按 Y,最后按 Enter 保存并退出 nano

3.3 启动 RSStT 服务

现在,只需要一条命令即可启动 RSStT:

bash
# 确保你在 ~/rsstt_docker 目录下
# 如果你没有将用户添加到 docker 组,请使用 sudo docker compose up -d
docker compose up -d
  • up: 创建并启动 docker-compose.yml 文件中定义的服务。
  • -d: Detached mode,表示在后台运行容器。

Docker 会自动下载 RSStT 的镜像 (如果本地没有),然后创建并启动容器。

3.4 检查服务状态和日志

bash
# 查看正在运行的容器 (应该能看到名为 rsstt_docker-rsstt-1 或类似的容器)
# 如果你没有将用户添加到 docker 组,请使用 sudo docker ps
docker ps

# 查看 RSStT 容器的实时日志
# 如果你没有将用户添加到 docker 组,请使用 sudo docker compose logs -f
docker compose logs -f

如果日志滚动显示,并且没有明显的错误信息 (如 ERROR 级别的日志),最后看到类似 INFO:telegram.ext.Application:Getting updates 的信息,说明 Bot 已经成功启动。

此时,你可以打开 Telegram,与你的 Bot 对话,发送 /start/help 命令进行测试。

Ctrl + C 停止查看实时日志 (服务仍在后台运行)。

4. 管理 RSStT 服务 (Docker Compose)

使用 Docker Compose 管理 RSStT 非常方便:

  • 启动服务 (后台运行): docker compose up -d
  • 停止并移除容器: docker compose down (数据卷 rsstt-data 默认会保留)
  • 停止服务 (不移除容器): docker compose stop
  • 启动已停止的服务: docker compose start
  • 重启服务: docker compose restart
  • 查看所有服务日志: docker compose logs
  • 查看实时日志: docker compose logs -f
  • 拉取最新镜像 (用于更新): docker compose pull

执行命令的位置

以上所有 docker compose 命令都需要在包含 docker-compose.yml 文件的目录 (~/rsstt_docker) 下执行。

5. 更新 RSStT

更新 RSStT 非常简单:

  1. 进入工作目录:

    bash
    cd ~/rsstt_docker
  2. 拉取最新的 Docker 镜像:

    bash
    # 如果你没有将用户添加到 docker 组,请使用 sudo docker compose pull
    docker compose pull
  3. 停止当前容器并使用新镜像重新创建启动:

    bash
    # 如果你没有将用户添加到 docker 组,请使用 sudo docker compose up -d
    docker compose up -d --remove-orphans

    --remove-orphans 会移除旧版本可能遗留的不再需要的容器。

更新完成!数据因为存储在 Docker Volume 中,所以会保留下来。

6. 常见问题与注意事项 (Docker)

  • Bot 没有响应?
    • 检查容器是否在运行: docker ps (或 sudo docker ps)。
    • 查看容器日志: docker compose logs -f (或 sudo docker compose logs -f)。
    • 确认 docker-compose.yml 文件中的 TOKEN, MANAGER, TELEGRAPH_TOKEN 是否正确填写且没有多余空格。
    • 确认服务器网络是否正常,Docker 容器的网络是否能访问 Telegram API (检查代理设置 PROXY 是否正确)。
    • 确认是否启用了 inline 模式 (/setinline @BotFather)。
  • RSS 抓取失败?
    • 检查 RSS 源地址是否有效。
    • 确认 Docker 容器的网络是否能访问该 RSS 源 (检查代理设置 RSS_PROXY 是否正确)。
    • 查看容器日志获取详细错误信息。
  • 消息过长被截断?
    • 确认 docker-compose.yml 文件中的 TELEGRAPH_TOKEN 是否配置正确且有效 (确保有多个,用逗号分隔)。
    • 检查容器日志看是否有 Telegraph 相关的错误。
  • 数据持久化: docker-compose.yml 文件中定义了名为 rsstt-data 的 Docker Volume。只要你不手动删除这个 Volume (docker volume rm rsstt_docker_rsstt-data),你的订阅和配置信息就会在容器停止、重启或更新后保留下来。
  • 资源占用: 可以使用 docker stats (或 sudo docker stats) 命令查看 RSStT 容器的实时资源使用情况 (CPU, 内存等)。

7.使用

现在您的 RSStT 机器人已经在 Docker 中成功运行,是时候开始使用它来订阅和管理 RSS 源了。以下是一些基本的操作指令:

7.1 添加订阅

这是核心功能,用于添加新的 RSS 源。

  • 为自己订阅 (Bot 向私聊发送信息):

    • 订阅单个源:/sub <RSS 订阅 URL>,将占位内容替换为你要订阅的实际地址,例如 /sub https://example.com/feed.xml

    • 批量订阅:/sub <URL1> <URL2> ...,多个地址之间使用空格分隔。

  • 为群组/频道订阅:

    • 首先,将机器人添加为群组成员或频道管理员(需发布消息权限)。

    • 将机器人加入至群组的步骤: JoinGroup

    • 将机器人加入至频道的步骤: JoinChannelS1 JoinChannelS2 JoinChannelS3 JoinChannelS4

    • 方法一 (直接在群组/频道内):

      • 在群组或频道内直接发送 /sub <RSS 订阅 URL>。 ControlBotPublic
    • 方法二 (在与 Bot 的私聊中指定目标):

      • 使用用户名: /sub @频道或群组用户名 <RSS 订阅 URL> 例如:/sub @MyChannelName https://example.com/feed.xml (注意:@ 符号必不可少)

      • 使用 Chat ID: /sub <频道或群组ID> <RSS 订阅 URL> 例如:/sub -1001234567890 https://example.com/feed.xml

        (注意:频道/群组 ID 通常以 -100 开头。您可以通过转发频道/群组消息给 @userinfobot 等方式获取 ID)

7.2 管理订阅

对于在群组或频道中的管理可以参见 7.1:在群组或频道内直接发送命令在与 Bot 的私聊中指定目标

  • 列出订阅: 发送 /list 查看您(或当前群组/频道)的所有订阅。
  • 取消订阅:
    • 发送 /unsub,机器人会列出订阅并提供按钮供您选择取消。
    • 或发送 /unsub <RSS 订阅 URL> 直接指定取消。
  • 全部取消订阅: 发送 /unsub_all 将一次性取消当前聊天(私聊、群组或频道)中的所有 RSS 订阅。请谨慎使用!
  • 停用订阅: 发送 /deactivate_subs,可以选择暂时停止接收某些源的更新,但保留订阅关系。
  • 启用订阅: 发送 /activate_subs,可以选择重新启用之前被停用的订阅源。

7.3 导入与导出

方便地迁移和备份您的订阅列表。

  • 导入订阅: 发送 /import 命令,然后按提示上传一个 OPML 文件 (一种常见的 RSS 订阅列表格式)。机器人会将文件中的订阅源添加到当前聊天。
  • 导出订阅: 发送 /export,机器人会将当前聊天的所有订阅打包成一个 OPML 文件发送给您,方便备份或迁移到其他阅读器。

7.4 自定义设置

调整订阅和机器人的行为。

  • 单个订阅设置: 发送 /set,可以选择一个已订阅的源,并对其进行详细设置(如:通知格式、过滤规则、Webpage Preview 等)。这是进行精细化管理的入口。
  • 默认设置: 发送 /set_default,可以为之后新添加的订阅设置默认的行为(类似 /set 中的选项,但作为默认值)。
  • 选择语言: 发送 /lang,可以更改机器人界面的显示语言。

7.5 Bot 管理员命令 (仅限 MANAGER 用户 ID)

这些命令仅限在 docker-compose.yml 中配置为 MANAGER 的用户 ID 在与机器人私聊时使用。

  • 测试订阅源: 发送 /test <RSS 订阅 URL> 来检查机器人是否能成功抓取和解析该源。这对于诊断问题非常有用。
  • 更改 Bot 配置: 允许 Bot 管理员修改一些全局性的机器人配置参数。
  • 用户信息: 查看或修改与特定用户相关的信息(通常用于管理)。

7.6 其他命令

  • 查看版本: 发送 /version 查看当前运行的 RSStT 机器人版本。

7.7 获取帮助 (/help):

发送 /help 显示所有可用命令及其简要说明,您可以自行探索该机器人的更多用法。

8. 结语

恭喜!您已经通过 Docker Compose 在 Debian 12 服务器上成功部署并运行了 RSS-to-Telegram-Bot。这种方式不仅安装过程简洁,后续的维护和更新也十分方便。

现在,您可以开始在 Telegram 上与您的 Bot 互动,添加您想要关注的 RSS 源了。

如果遇到任何问题或想了解更多高级功能,请查阅官方文档:

lidong 文档中心 · 清晰、可靠、持续维护