更关心您阅读体验的 Telegram RSS 机器人
RSS-to-Telegram-Bot (RSStT) 是一个功能强大的 Telegram 机器人,可以将 RSS 源的更新推送到 Telegram。使用 Docker Compose 是官方最推荐的部署方式,它极大地简化了安装、配置和更新过程,将应用程序及其依赖项打包在隔离的容器中运行,非常适合新手和追求便捷管理的用户。本教程将指导您如何在 Debian 12 服务器上一步步完成 Docker Compose 部署。
本文由用户 k08255-lxm
撰写,并已加入 VPS.Town 优秀原创文章激励计划
,本站享有完整版权,未经允许不得转载。
本文已通过 VPS.Town 社区文章投稿及奖励规则 (试行稿) 审核,并获得 现金 50 元
奖励。
与任何安装方式一样,我们首先需要获取一些必要的凭证信息。如果您已在其他教程中获取过,可以跳过此步。
/newbot
命令,按提示设置 Bot 的名字 (Name) 和用户名 (Username, 必须以 bot
结尾)。/setinline
命令,选择你刚创建的 Bot,然后随意回复一条消息(如:输入命令...
)以启用内联模式。将获取到的 Bot Token 复制下来备用。我们称之为 TOKEN
。
然后与您的机器人对话,并发送/start
命令。
/start
或任何消息。将获取到的 User ID 复制下来备用。我们称之为 MANAGER
。
自定义无标识链接: https://api.telegra.ph/createAccount?short_name=YourName
access_token
的值。access_token
。重复此操作,至少获取 5 个 Token。将获取到的所有 Telegraph API Token 用逗号连接起来,复制备用。我们称之为 TELEGRAPH_TOKEN
。例如:token1,token2,token3,token4,token5
。
Docker Compose 需要 Docker Engine 运行环境。我们将安装最新的 Docker 版本。
本教程假设您使用的是一台拥有 sudo
权限用户的 Debian 12 服务器。所有命令默认使用 sudo
提升权限,除非已将用户添加到 docker
组。
首先,确保系统是最新的。
卸载旧版本 (如果存在):
安装必要的依赖包:
使用一键脚本
现在 Docker 环境准备就绪,我们可以开始部署 RSStT 了。
docker-compose.yml
文件定义了运行 RSStT 所需的服务(即容器)及其配置。我们需要编辑它来填入之前准备好的凭证信息。
找到 services:
-> rsstt:
-> environment:
部分。这里定义了 RSStT 运行所需的环境变量。你需要修改以下几行:
重要修改点:
<你的机器人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
。rsstt-data
) 中,无需额外配置。编辑完成后,按 Ctrl + X
,然后按 Y
,最后按 Enter
保存并退出 nano
。
现在,只需要一条命令即可启动 RSStT:
up
: 创建并启动 docker-compose.yml
文件中定义的服务。-d
: Detached mode,表示在后台运行容器。Docker 会自动下载 RSStT 的镜像 (如果本地没有),然后创建并启动容器。
如果日志滚动显示,并且没有明显的错误信息 (如 ERROR
级别的日志),最后看到类似 INFO:telegram.ext.Application:Getting updates
的信息,说明 Bot 已经成功启动。
此时,你可以打开 Telegram,与你的 Bot 对话,发送 /start
或 /help
命令进行测试。
按 Ctrl + C
停止查看实时日志 (服务仍在后台运行)。
使用 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
) 下执行。
更新 RSStT 非常简单:
--remove-orphans
会移除旧版本可能遗留的不再需要的容器。更新完成!数据因为存储在 Docker Volume 中,所以会保留下来。
docker ps
(或 sudo docker ps
)。docker compose logs -f
(或 sudo docker compose logs -f
)。docker-compose.yml
文件中的 TOKEN
, MANAGER
, TELEGRAPH_TOKEN
是否正确填写且没有多余空格。PROXY
是否正确)。/setinline
@BotFather)。RSS_PROXY
是否正确)。docker-compose.yml
文件中的 TELEGRAPH_TOKEN
是否配置正确且有效 (确保有多个,用逗号分隔)。docker-compose.yml
文件中定义了名为 rsstt-data
的 Docker Volume。只要你不手动删除这个 Volume (docker volume rm rsstt_docker_rsstt-data
),你的订阅和配置信息就会在容器停止、重启或更新后保留下来。docker stats
(或 sudo docker stats
) 命令查看 RSStT 容器的实时资源使用情况 (CPU, 内存等)。现在您的 RSStT 机器人已经在 Docker 中成功运行,是时候开始使用它来订阅和管理 RSS 源了。以下是一些基本的操作指令:
这是核心功能,用于添加新的 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
为群组/频道订阅:
首先,将机器人添加为群组成员或频道管理员(需发布消息权限)。
将机器人加入至群组的步骤:
将机器人加入至频道的步骤:
方法一 (直接在群组/频道内):
/sub <RSS 订阅 URL>。
方法二 (在与 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.1:在群组或频道内直接发送命令
或在与 Bot 的私聊中指定目标
/list
查看您(或当前群组/频道)的所有订阅。/unsub
,机器人会列出订阅并提供按钮供您选择取消。/unsub <RSS 订阅 URL>
直接指定取消。/unsub_all
将一次性取消当前聊天(私聊、群组或频道)中的所有 RSS 订阅。请谨慎使用!/deactivate_subs
,可以选择暂时停止接收某些源的更新,但保留订阅关系。/activate_subs
,可以选择重新启用之前被停用的订阅源。方便地迁移和备份您的订阅列表。
调整订阅和机器人的行为。
/lang
,可以更改机器人界面的显示语言。这些命令仅限在 docker-compose.yml 中配置为 MANAGER 的用户 ID 在与机器人私聊时使用。
/test <RSS 订阅 URL>
来检查机器人是否能成功抓取和解析该源。这对于诊断问题非常有用。/version
查看当前运行的 RSStT 机器人版本。发送 /help
显示所有可用命令及其简要说明,您可以自行探索该机器人的更多用法。
恭喜!您已经通过 Docker Compose 在 Debian 12 服务器上成功部署并运行了 RSS-to-Telegram-Bot。这种方式不仅安装过程简洁,后续的维护和更新也十分方便。
现在,您可以开始在 Telegram 上与您的 Bot 互动,添加您想要关注的 RSS 源了。
如果遇到任何问题或想了解更多高级功能,请查阅官方文档: