直接给你粘贴这份 openbot-bot 最终版(镜像名已全部改为 kejizhihui/openbot-bot:latest):
┌─────────────────────────────────────────┐
│ bootstrap/ 启动引导层 │
│ launcher.py / web_server.py / cli.py │
└─────────────────┬───────────────────────┘
│
┌─────────────────▼───────────────────────┐
│ core/ 核心系统层 │
│ client_manager / mtproto_client / │
│ command_registry / plugin_scanner / │
│ download_engine / media_scanner / │
│ web_bridge / context.py │
└─────────────────┬───────────────────────┘
│
┌─────────────────▼───────────────────────┐
│ features/ 插件功能层 │
│ downloader / gfiles / promote / │
│ group_mgr / task_mgr / help_center / │
│ devverify / tmp_plugins/ │
└─────────────────────────────────────────┘
# 是否启动Web服务 + 隧道(true=启动,false=纯命令行)
WEB_ENABLED=true
# 日志级别
LOG_LEVEL=INFO
# 时区
TZ=Asia/Shanghai
# BotFather创建的Bot Token
BOT_TOKEN=123456:ABC-DEF...
# my.telegram.org申请的API_ID和API_HASH
API_ID=123456
API_HASH=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 方式一:外部代理(推荐,简单)
PROXY=[http://127.0.0.1:7890](http://127.0.0.1:7890)
# 方式二:内置mihomo代理(不需要外部Clash)
# SUB_URL=https://你的订阅地址
# MIHOMO_ENABLED=1
# 超级管理员(可多个,逗号分隔)
ADMIN_ID=111111111,222222222
# 普通管理员
ADMIN_LIST=333333333
# 全局下载并发数(同时最多下载几个文件)
DL_MAX_CONCURRENT=6
# 批量调度文件数(海量文件时分批)
DL_BATCH_SIZE=50
# 失败自动重试次数
DL_RETRY_COUNT=1
# 下载进度落库间隔(秒)
DL_PROGRESS_INTERVAL=3
# 断网恢复检测间隔(秒)
DL_NETWORK_POLL=3
# 网络等待超时(秒):断网时任务最多等待多少秒后转"待下载"
DL_NETWORK_MAX_WAIT=600
# 单文件网络错误重试上限
DL_FILE_NET_RETRY=8
# 单文件下载超时(秒)
DL_FILE_TIMEOUT=1800
# 单次MTProto读请求超时(秒)
DL_API_TIMEOUT=30
# 大文件分块并行下载阈值(MB)
DL_CHUNK_MIN_SIZE_MB=20
# 分块数(越大越快,注意Telegram限流)
DL_CHUNK_PARTS=4
# 同时允许几个大文件分块
DL_CHUNK_PARALLEL=1
# 每扫N条消息停顿X秒
DL_SCAN_RATE_EVERY=20
DL_SCAN_RATE_SLEEP=0.3
# 每扫N条加重停顿
DL_SCAN_HEAVY_EVERY=100
DL_SCAN_HEAVY_SLEEP=2.0
# 扫描停止阈值:连续N条已下载即停止
DL_SCAN_STOP_AFTER=50
# 单次/dl指定ID模式的数量上限
DL_MAX_IDS=5000
# 批次窗口(秒):连续转发的消息在这个窗口内归为同一任务
DL_FORWARD_BATCH_SEC=3.0
# 延迟启动下载(秒)
DL_FORWARD_START_DELAY=4.0
AI_BASE_URL=[https://ark.cn-beijing.volces.com/api/v3](https://ark.cn-beijing.volces.com/api/v3)
AI_API_KEY=ark-xxxxxxxx
AI_MODEL=doubao-seed-2-1-turbo-260628
docker run -d \
--name openbot \
--restart unless-stopped \
--memory="2g" \
--cpus="2" \
-p 7777:7777 \
-v /your/path/.env:/app/.env \
-v /your/path/sessions:/app/sessions \
-v /your/path/download:/app/download \
-v /your/path/logs:/app/logs \
-v /your/path/data:/app/data \
-v /your/path/tmp_plugins:/app/tmp_plugins \
-e TZ=Asia/Shanghai \
kejizhihui/openbot-bot:latest
创建 docker-compose.yml:
services:
openbot:
image: kejizhihui/openbot-bot:latest
container_name: openbot
restart: unless-stopped
ports:
- "7777:7777"
volumes:
- ./.env:/app/.env
- ./sessions:/app/sessions
- ./download:/app/download
- ./logs:/app/logs
- ./data:/app/data
- ./tmp_plugins:/app/tmp_plugins
environment:
- TZ=Asia/Shanghai
deploy:
resources:
limits:
memory: 2G
cpus: "2"
然后启动:
docker-compose up -d
启动成功后访问:http://你的服务器IP:7777
//qwjcxsm/xzrw/tgzf/qungl/admin| 命令 | 说明 | 权限 |
|---|---|---|
/start | 开始使用,显示欢迎信息 | 所有人 |
/help | 显示帮助菜单 | 所有人 |
/ping | 测试Bot是否在线 | 所有人 |
/id | 查看当前聊天ID | 所有人 |
/status | 查看系统状态(CPU/内存/运行时间) | 超管 |
/disk | 查看磁盘使用情况 | 超管 |
/python | 显示Python版本 | 超管 |
| 命令 | 说明 | 权限 |
|---|---|---|
/dl 链接 | 下载Telegram链接里的文件 | 超管 |
/dl_photo 链接 | 强制按图片下载 | 超管 |
/dl_video 链接 | 强制按视频下载 | 超管 |
/dls | 查看下载任务列表 | 超管 |
/dl_stop 任务ID | 停止指定下载任务 | 超管 |
/dl_continue 任务ID | 继续已停止的任务 | 超管 |
/dl_no 任务ID | 删除任务(保留已下载文件) | 超管 |
/dl_clear | 清空所有已完成任务 | 超管 |
/at | 转发消息自动下载开关 | 超管 |
| 命令 | 说明 | 权限 |
|---|---|---|
/look | 查看当前群文件列表 | 群成员 |
/sc | 收藏转发相关 | 超管 |
| 命令 | 说明 | 权限 |
|---|---|---|
/promote | 推广转发管理 | 超管 |
| 命令 | 说明 | 权限 |
|---|---|---|
/ban 用户ID | 封禁用户 | 群管 |
/unban 用户ID | 解封用户 | 群管 |
/delall | 删除用户所有消息 | 群管 |
/gm | 群管理设置 | 群管 |
/groupinfo | 查看群信息 | 群成员 |
| 命令 | 说明 | 权限 |
|---|---|---|
/add_admin 用户ID | 添加超级管理员 | 超管 |
/remove_admin 用户ID | 删除超级管理员 | 超管 |
/admins | 查看所有管理员 | 超管 |
/czbot | 重启Bot | 超管 |
| 命令 | 说明 | 权限 |
|---|---|---|
/plugins | 查看所有已加载插件 | 超管 |
/reload_plugins | 重新加载所有插件 | 超管 |
/add_plugin | 添加临时插件 | 超管 |
| 命令 | 说明 | 权限 |
|---|---|---|
/ai 你的问题 | 豆包AI对话 | 超管 |
/hunyuan 你的问题 | 腾讯混元AI对话 | 超管 |
| 命令 | 说明 | 权限 |
|---|---|---|
/mtlogin | MTProto登录管理器 | 超管 |
/cj | 开发手册 | 超管 |
| 目录 | 说明 |
|---|---|
sessions/ | MTProto登录session文件(挂载后不用重新登录) |
download/ | 下载的文件保存目录 |
logs/ | 日志文件 |
data/ | 数据库文件 |
tmp_plugins/ | 临时插件目录(放AI插件等) |
features/my_plugin/
├── __init__.py
├── plugin.py # 主逻辑
├── help.txt # 帮助说明(自动加载到命令菜单)
└── static/ # Web页面(可选)
└── my_plugin.html
from telegram import Update
from telegram.ext import CommandHandler, ContextTypes
async def hello(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("你好!我是自定义插件!")
def register(app):
app.add_handler(CommandHandler("hello", hello))
tmp_plugins/目录下,自动加载features/目录就是正式插件# 获取MTProto客户端
from core.context import get_mtproto_client
# 获取Bot应用
from core.context import get_application
# 注册Web路由
from core.web_server import add_route
# 写入下载任务队列
from core.web_bridge import add_download_task
# 查看实时日志
docker logs -f openbot
# 重启机器人
docker restart openbot
# 停止机器人
docker stop openbot
# 停止并删除容器
docker stop openbot && docker rm openbot
# 更新到最新版
docker pull kejizhihui/openbot-bot:latest
docker stop openbot && docker rm openbot
# 然后重新运行docker run命令启动
.env里的PROXY是否配置正确curl [https://api.telegram.org](https://api.telegram.org)/mtlogindocker logs openbot | grep uvicornDL_MAX_CONCURRENT(默认6,最大10)DL_CHUNK_PARTS(分块数,默认4)docker logs openbot | grep MTProto| 配置 | 适合场景 |
|---|---|
| 512M内存 + 1核 | 小群(<100群),每天下载<100个文件 |
| 1G内存 + 1核 | 中等规模(100-300群),日常使用 |
| 2G内存 + 2核 | 大规模(300+群),批量下载大文件 |
Content type
Image
Digest
sha256:160b65846…
Size
288.3 MB
Last updated
about 14 hours ago
docker pull kejizhihui/openbot-bot:6.0