> For AI agents: the complete documentation index is available at https://docs.vps.town/llms.txt, the full documentation bundle is available at https://docs.vps.town/llms-full.txt.

# 在 Debian 12 上安装并使用 RSStT

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

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

:::tip 温馨提示

本文由用户 `k08255-lxm` 撰写，并已加入 `VPS.Town 优秀原创文章激励计划`，本站享有完整版权，未经允许不得转载。

本文已通过 [VPS.Town 社区文章投稿及奖励规则 (试行稿)](https://docs.vps.town/kb/community.md) 审核，并获得 `现金 50 元` 奖励。

:::

:::details 📖 本文目录

[](#1-准备工作)[](#11-获取-telegram-bot-token)[](#12-获取你的-telegram-user-id)[](#13-获取-telegraph-api-tokens)[](#2-服务器环境准备安装-docker-和-docker-compose)[](#21-更新系统软件包)[](#22-安装-docker)[](#3-使用-docker-compose-安装-rsstt)[](#31-创建工作目录并下载配置文件)[](#32-配置-docker-composeyml-文件)[](#33-启动-rsstt-服务)[](#34-检查服务状态和日志)[](#4-管理-rsstt-服务-docker-compose)[](#5-更新-rsstt)[](#6-常见问题与注意事项-docker)[](#7使用)[](#71-添加订阅)[](#72-管理订阅)[](#73-导入与导出)[](#74-自定义设置)[](#75-bot-管理员命令-仅限-manager-用户-id)[](#76-其他命令)[](#77-获取帮助-help)[](#8-结语)
:::

## 1. 准备工作

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

:::info 所需信息

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

:::

### 1.1 获取 Telegram Bot Token

![Get_BotToken](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/1.png)

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

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

然后与您的机器人对话，并发送`/start`命令。
![Activate_Bot](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/4.png)

### 1.2 获取你的 Telegram User ID

![Get_TGUserID](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/2.png)

1. 打开 Telegram，搜索并与 [@userinfobot](https://t.me/userinfobot) 开始对话。
2. 发送 `/start` 或任何消息。
3. 复制它回复的纯数字 **User ID**。

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

### 1.3 获取 Telegraph API Token(s)

![Get_TelegraphAPIToken](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/3.png)

1. 访问 [Telegraph API 创建页面（此链接会在生成的文章页脚留下 RSStT 的项目标识）](https://api.telegra.ph/createAccount?short_name=RSStT\&author_name=Generated%20by%20RSStT\&author_url=https%3A%2F%2Fgithub.com%2FRongronggg9%2FRSS-to-Telegram-Bot)。
   > 自定义无标识链接：
   > [https://api.telegra.ph/createAccount?short_name=YourName](https://api.telegra.ph/createAccount?short_name=YourName)
2. 复制页面结果中 `access_token` 的值。
3. **（重要）** **刷新页面**以获取新的、不同的 `access_token`。重复此操作，**至少获取 5 个** Token。

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

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

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

:::note 操作环境
本教程假设您使用的是一台拥有 `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 运行所需的环境变量。你需要修改以下几行：

```yaml title="docker-compose.yml (environment 部分)"
services:
  rsstt:
    # ... (其他配置保持不变)
    environment:
      # --- Required ---
      # Telegram Bot Token (从 @BotFather 获取)
      - TOKEN=781243512:AAGSDGHSRTGHJTRDSFGDSSD # <--- 修改这里

      # 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`

:::tip 执行命令的位置
以上所有 `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>`
    将`<RSS 订阅 URL>`替换为你想要订阅的 url，例如`/sub https://rss.nodeseek.com/`

  - 批量订阅: `/sub <URL1> <URL2> ... (url之间用空格分隔)`
    例如：`/sub https://rss.nodeseek.com/ https://docs.vps.town/rss/event.xml`
    ![Single_Sub](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/5.png)

- **为群组/频道订阅:**

  - 首先，将机器人添加为群组成员或频道管理员(需发布消息权限)。
  - 将机器人加入至群组的步骤：
    ![Join_Group](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/6.png)
  - 将机器人加入至频道的步骤：
    ![Join_Channel_S1](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/7.png)
    ![Join_Channel_S2](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/8.png)
    ![Join_Channel_S3](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/9.png)
    ![Join_Channel_S4](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/10.png)
  - 方法一 (直接在群组/频道内):
    - 在群组或频道内直接发送 `/sub <RSS 订阅 URL>。`
      ![Control_Bot_Public](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/11.png)
  - 方法二 (在与 Bot 的私聊中指定目标):

    - 使用用户名: `/sub @频道或群组用户名 <RSS 订阅 URL>`
      例如：`/sub @MyChannelName https://example.com/feed.xml`
      (注意：@ 符号必不可少)\
      ![Control_Bot_in_Private_Chat](/assets/images/how-to-setup-rsstt-debian-12-guide-vps-town/12.png)
    - 使用 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 源了。

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

- **项目仓库:** [https://github.com/Rongronggg9/RSS-to-Telegram-Bot](https://github.com/Rongronggg9/RSS-to-Telegram-Bot)
- **文档导航:** [docs](https://github.com/Rongronggg9/RSS-to-Telegram-Bot/tree/dev/docs)
- **FAQ:** [docs/FAQ.zh.md](https://github.com/Rongronggg9/RSS-to-Telegram-Bot/blob/dev/docs/FAQ.zh.md)
