TG-SignPulse 是一个 Telegram 自动化管理面板。你可以在网页里管理多个账号,配置自动签到任务,并让任务按固定规则每天自动执行。
AI 驱动:项目已集成 AI 能力(识图、计算题),可直接用于自动任务流程。
- 统一管理多个 Telegram 账号
- 自动签到、定时发送消息、点击按钮
- 支持 AI 识图和 AI 计算题动作
- 在网页中查看任务执行日志和历史结果
- 适合 VPS 长期运行
- 多账号管理:一个面板管理多个账号
- 动作序列:支持「发送文本 / 点击文字按钮 / 发送骰子 / AI识图 / AI计算」
- 日志可视化:可查看任务执行流程和最后机器人回复
- 稳定性优化:并发控制、429/超时场景优化、长期运行内存优化
- 容器化部署:Docker / Docker Compose 开箱即用
- 安装 Docker(服务器和本机都可)
- 执行下面命令启动容器
- 浏览器打开
http://服务器IP:8080,用默认账号登录
默认凭据:
- 账号:
admin - 密码:
admin123
docker run -d \
--name tg-signpulse \
--restart unless-stopped \
-p 8080:8080 \
-v $(pwd)/data:/data \
-e TZ=Asia/Shanghai \
-e APP_SECRET_KEY=your_secret_key \
ghcr.io/akasls/tg-signpulse:latest如果你走反代(如 Nginx),可改成仅本机监听:
-p 127.0.0.1:8080:8080services:
app:
image: ghcr.io/akasls/tg-signpulse:latest
container_name: tg-signpulse
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/data
environment:
- TZ=Asia/Shanghai
- APP_SECRET_KEY=your_secret_key- 默认数据目录:
/data - 当
/data不可写时,会自动降级到/tmp/tg-signpulse(非持久化) - 新镜像已支持根据
/data挂载目录属主 UID/GID 自动适配运行身份,通常无需chmod 777
容器内排查命令:
id
ls -ld /data
touch /data/.probe && rm /data/.probeAPP_SECRET_KEY: 面板密钥,强烈建议设置ADMIN_PASSWORD: 初次安装时 admin 账户的默认密码(安全起见强烈建议设置,未设置则默认 admin123)APP_HOST: FastAPI 容器监听 IP,防暴露默认127.0.0.1(如需用公网直连或宿主机反代端口请设为0.0.0.0)APP_DATA_DIR: 自定义数据目录(优先级高于面板配置)TG_SESSION_MODE:file(默认)或string(arm64 推荐)TG_SESSION_NO_UPDATES:1启用no_updates(仅string模式)TG_GLOBAL_CONCURRENCY: 全局并发(默认1)APP_TOTP_VALID_WINDOW: 面板 2FA 容错窗口
你可以通过两种方式设置数据目录:
- 面板设置:
系统设置 -> 全局签到设置 -> 数据目录 - 环境变量:
APP_DATA_DIR=/your/path
说明:
- 修改后建议重启后端服务生效
- 该目录请务必可写,并挂载持久化卷
GET /healthz:快速健康检查GET /readyz:服务就绪检查
backend/ FastAPI 后端与调度器
tg_signer/ Telegram 自动化核心
frontend/ Next.js 管理面板
- SQLite 死锁修复:完善了 Pyrogram 客户端实例和底层的生命周期缓存,彻底修复了由于高并发请求和后台任务轮询导致的
database is locked互斥死锁问题。如今并发的后台签到队列会平滑共用连接进行极速的写入,极大降低了硬盘 I/O 且杜绝了任务卡死。 - 防止任务重复执行 UI 防护:前端新增防连点与重叠保护。当用户点击“运行任务”时,若任务已在执行,系统不仅会弹出“该任务正在运行中”的柔性截断提示,并且能在全局面板无缝切换为您呈现该任务当前的实时拉取日志流。
- 主页状态显示修复:修复由于前端状态对比字样问题导致账号“正常”却误报“账号失效”的显示错误。
- 老账号签到异常修复:修复老账号(基于本地
.session文件的环境)在执行任务时被错误锁定在纯内存模式,从而导致 SQLite 本地数据丢失、出现PeerIdInvalid并导致签到失败的问题。恢复了纯本地存储后,跨账号复制任务的解析逻辑也更加稳定。 - 机器人最近回复可视:优化日志解析引擎。当任务包含向机器人发送消息时,现支持从底量日志中无感提取机器人的最后一句话或图片回复,并直接高亮在前端的可视化任务面板与历史大表哥中。
- 代码规范排版:执行了全面的 Linter 与 Ruff 的扫描,修复多处过期导入。
- 修复核心底层问题:修复因 Pyrogram 请求超时及
FloodWait重试引发的并发锁饥饿、Task exception未正确回收导致容器内存泄漏及网络高 I/O 问题。
- 任务动作序列优化:排序调整为「发送文本消息 -> 点击文字按钮 -> 发送骰子 -> AI识图 -> AI计算」。
- AI 动作优化:
AI识图、AI计算支持在右侧子模式切换(发文本 / 点按钮)。 - 任务复制粘贴优化:
- 复制任务改为弹窗展示配置,支持一键复制。
- 右上角粘贴导入优先自动读剪贴板,失败时自动弹出手动粘贴导入框。
- 日志展示优化:任务日志弹窗支持显示“任务:XXX执行成功/失败”及最后机器人消息。
- 主页状态检测优化:刷新/打开页面时账号状态检测更稳,减少误报“检测失败”。
- 移动端与弹窗 UI 优化:任务卡片操作区布局更紧凑,动作序列控件高度更统一。
- 导出编码修复:修复含 emoji 配置导出时的编码问题(UTF-8)。
- 容器权限兼容增强:按
/data挂载目录属主 UID/GID 自动适配运行身份,降低 VPS 写入失败概率。
- AI 动作升级、AI 配置保存修复、手机号验证码登录改为手动确认。
TimeoutError与429 transport flood高频日志优化。- 长时运行稳定性与内存占用优化。
- 新增自定义数据目录配置。
本项目基于原项目进行重构与扩展,感谢:
技术栈:FastAPI、Uvicorn、APScheduler、Pyrogram/Kurigram、Next.js、Tailwind CSS、OpenAI SDK。