A high-performance Telegram message push service built on the Sanic framework.
107
https://github.com/dangerwolf/sanic-webui-tgbot
一个基于 Sanic 框架构建的高性能 Telegram 消息推送服务。集成了现代化的 Web UI 界面和标准 RESTful API,支持 Docker 容器化部署与数据持久化。
.
├── Dockerfile # 构建镜像的配置文件
├── app.py # 核心业务逻辑 (Sanic App)
└── templates/ # Web UI 模板文件
├── base.html
├── index.html
└── history.html
在项目根目录下执行:
docker build -t sanic-tg-bot .
使用以下命令启动服务。请务必替换 <YOUR_BOT_TOKEN> 和 <YOUR_CHAT_ID>。
Linux/macOS:
# 创建数据目录
mkdir -p $(pwd)/bot_data
# 启动容器
docker run -d \
--name tg-pusher \
--restart always \
-p 9010:8000 \
-v $(pwd)/bot_data:/app/data \
-e BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrsTUVwxyz" \
-e CHAT_ID="123456789" \
sanic-tg-bot
Windows (PowerShell):
docker run -d `
--name tg-pusher `
--restart always `
-p 9010:8000 `
-v ${PWD}/bot_data:/app/data `
-e BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrsTUVwxyz" `
-e CHAT_ID="123456789" `
sanic-tg-bot
启动成功后,访问宿主机端口:
Web UI: http://localhost:9010
| 变量名 | 必填 | 说明 | 示例 |
|---|---|---|---|
| BOT_TOKEN | ✅ | Telegram Bot 的 Token | 12345:AbCdEf... |
| CHAT_ID | ❌ | 默认接收消息的 Chat ID (可在请求中覆盖) | -10012345678 |
| TZ | ❌ | 时区设置 (Dockerfile 中已默认为 Asia/Shanghai) | Asia/Shanghai |
如果你不想使用 Web UI,可以通过 API 直接调用。
URL: /send
Method: POST
Content-Type: application/json
参数:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | string | ✅ | 消息内容 (支持 Markdown) |
| chat_id | string | ❌ | 指定接收者 ID,不填则使用环境变量默认值 |
示例 (Curl):
curl -X POST http://localhost:9010/send \
-H "Content-Type: application/json" \
-d '{
"text": "*Server Alert*: \nCPU usage is high!",
"chat_id": "123456789"
}'
URL: /history
Method: GET
参数:
| 字段 | 说明 |
|---|---|
| limit | 返回记录条数 (默认 50) |
示例:
curl http://localhost:9010/history?limit=10
容器内的数据库路径为 /app/data/history.db。 通过 -v 参数映射后,数据库文件将保存在宿主机的 bot_data 目录下。
注意:即使删除了容器,只要保留了宿主机的 bot_data 目录,你的发送历史记录就不会丢失。
欢迎提交 Issue 或 Pull Request 来改进本项目!
Content type
Image
Digest
sha256:aa0be08a5…
Size
53.4 MB
Last updated
10 months ago
docker pull dangerwolf/sanic_send_tg_bot:v1.0.0