1 引言
本方案旨在将 Tg_pm_bot
从本地通过 CF Tunnel 暴露公网,升级为独立服务部署,提升稳定性与可维护性。核心思路包括:
服务拆分:将 Bot 服务与 MySQL 数据库分别部署在不同环境,避免单点故障。
高可用策略:使用 Docker Compose(1Panel)管理容器,配置重启策略与健康检查。
安全与运维:引入 Docker Secrets 管理敏感信息,定期自动化备份,并支持一键恢复。
项目地址:https://github.com/kkyu9527/Tg_pm_bot
2 架构概览
3 Bot 服务部署(1Panel)
3.1 基础配置
首先在应用商店下载openresty和mysql。
然后再创建一个数据库,数据库名称,用户名,密码需要记住,后面的环境变量的值需要和这里一致。
3.2 编排文件:docker-compose.yml
services:
bot:
image: kixyu9527/tg_pm_bot:latest
container_name: telegram_bot
network_mode: host
env_file:
- 1panel.env
environment:
DB_HOST: 127.0.0.1
restart: always
3.3 环境变量管理
在编排的下面一栏的环境变量中配置:
BOT_TOKEN=你的BotToken
USER_ID=你的UserID
GROUP_ID=你的GroupID
WEBHOOK_URL=https://your-domain.com/webhook
DB_HOST=mysql
DB_USER=botuser
DB_PASSWORD=botpassword
DB_NAME=tg_pm_bot
4 绑定域名及加密模式
4.1 绑定域名
在 Cloudflare 控制台中,为二级域名 pmbot.your-domain.com
添加一条 A 记录,指向 VPS 的公网 IP。
主机名:
pmbot
类型:
A
值:
<你的服务器 IP>
TTL:自动
Proxied(橙云):开启(推荐开启以启用 DDoS 防护和 CDN 加速)
4.2 加密模式
根据 VPS 上是否配置证书,选择合适的模式:
Full (完全加密):
要求:VPS 上已安装有效的 SSL/TLS 证书(Let's Encrypt、自签等)。
特点:Cloudflare 与客户端、Cloudflare 与原站之间均使用 HTTPS,端到端加密。
操作:在 1Panel 或 Nginx 配置中指定证书路径;确保证书定期续期。
Flexible (灵活加密):
要求:VPS 上未配置证书。
特点:仅 Cloudflare 与客户端之间使用 HTTPS,Cloudflare 与 VPS 之间仍使用 HTTP。
操作:在 Cloudflare SSL/TLS 面板中选择 “Flexible”;无需在 VPS 上部署证书。
推荐:生产环境优先使用 Full 模式,以保障全链路加密;开发或测试可临时使用 Flexible,快速上手。
5 反向代理
登录 1Panel 控制台,左侧菜单点击 “网站” → “创建网站”。
选择 “反向代理” 类型。
填写配置:
域名:
pmbot.your-domain.com
(全名)。协议:HTTP(1Panel 将接收 HTTP 请求并转发)。
代理目标:
http://127.0.0.1:9527
,将外部请求转发至本地 Bot 服务。SSL/HTTPS:如果没有证书就不勾选开启。
保存后 1Panel 自动生成并加载内部代理配置。
6 备份与恢复
6.1 备份
在左侧的选项中点击数据库,找到对应的数据库,然后选择右侧的备份列表,点击备份后下载该文件。
6.2 恢复
继续在刚刚的页面中选择备份列表旁边的导入备份,将上一步的备份的文件传入到这里点击恢复即可。
7 总结
通过以上独立服务部署方案,Tg_pm_bot
将获得更高的稳定性、易维护性与安全性。
评论