4.6 KiB
4.6 KiB
ABOT Docker 部署说明
本文档面向希望通过 Docker / Docker Compose 快速部署 ABOT 的维护者,重点覆盖首次启动、855 / 864 配置差异、Dashboard 安全项以及常见上线注意点。
1. 部署架构
当前 Compose 方案拆分为三个服务:
abot:主程序与管理后台mariadb:MySQL 兼容数据库redis:缓存与运行时状态存储
说明:
wechat_ipad server仍建议运行在宿主机或独立机器abot容器通过WECHAT_SERVER_URL / WECHAT_SERVER_IP / WECHAT_SERVER_PORT连接该服务- 宿主机上的
./wechat_ipad/providers会映射到容器内,用于保留各 provider 的运行时登录态
2. 首次部署
2.1 复制环境变量模板
cp .env.docker.example .env
Windows PowerShell:
Copy-Item .env.docker.example .env
2.2 至少修改这些变量
基础项:
ABOT_DB_PASSWORDDASHBOARD_PORTABOT_DASHBOARD_PASSWORDABOT_DASHBOARD_SECRET_KEY
微信接入项:
WECHAT_SERVER_URLWECHAT_SERVER_IPWECHAT_SERVER_PORTWECHAT_SERVER_TYPE
当你接的是 864 风格 server 时,额外必须配置:
WECHAT_SERVER_KEY
若你需要启用 TrendRadar webhook,再额外配置:
ABOT_TRENDRADAR_WEBHOOK_TOKEN
3. 启动命令
docker compose up -d --build
启动完成后:
- Dashboard 默认访问:
http://127.0.0.1:${DASHBOARD_PORT} - 日志目录映射到宿主机:
./logs - MariaDB / Redis 数据保存在 Docker volume 中
查看状态:
docker compose ps
查看应用日志:
docker compose logs -f abot
4. 容器内配置生成逻辑
容器启动时会自动处理两类配置:
4.1 config.yaml
若容器内不存在 config.yaml,入口脚本会自动生成最小可运行模板,并注入:
- 数据库连接
- Redis 连接
wechat_ipad静态连接参数WECHAT_SERVER_KEY
4.2 admin/dashboard/config.toml
若容器内不存在该文件,入口脚本也会自动生成一份基础模板。
即使该文件存在,运行时仍支持通过环境变量覆盖以下敏感项:
ABOT_DASHBOARD_USERNAMEABOT_DASHBOARD_PASSWORDABOT_DASHBOARD_SECRET_KEYABOT_TRENDRADAR_WEBHOOK_TOKEN
这样做的目标是:
- 公开仓库不再依赖固定弱口令
- Docker 环境只维护
.env一处 - 非容器部署仍可继续使用本地 TOML 配置
5. wechat_ipad 配置说明
5.1 静态连接配置
统一通过 .env 注入:
WECHAT_SERVER_URLWECHAT_SERVER_IPWECHAT_SERVER_PORTWECHAT_SERVER_TYPEWECHAT_SERVER_KEY
说明:
legacy_855 / 855 / 859可不填WECHAT_SERVER_KEYserver_864 / 864必须提供WECHAT_SERVER_KEY
5.2 运行时状态
登录后的 wxid / device_id / device_name / login_time 会自动写到 provider 自己的状态文件中:
- 默认路径:
wechat_ipad/providers/<server_type>/runtime_state.toml
Compose 已将整个 ./wechat_ipad/providers 目录映射到宿主机,因此:
- 容器重建后状态仍会保留
855与864的状态天然分离- 不需要再人工维护历史
wechat_ipad/config.toml
6. Dashboard 安全建议
建议至少设置以下变量后再对外暴露:
ABOT_DASHBOARD_PASSWORDABOT_DASHBOARD_SECRET_KEYABOT_TRENDRADAR_WEBHOOK_TOKEN
补充说明:
- 仓库默认密码已不再使用
admin123 - 若数据库里已存在管理员账号,登录以数据库中的真实密码为准
- 如果你把 Dashboard 暴露到公网,建议再增加反向代理、HTTPS 和 IP / VPN 访问控制
7. 常用运维命令
停止服务:
docker compose down
停止并删除数据卷:
docker compose down -v
进入应用容器:
docker compose exec abot bash
重建应用镜像:
docker compose build --no-cache abot
docker compose up -d
8. 升级建议
拉取新代码后建议执行:
docker compose down
docker compose up -d --build
若数据库结构发生变更,请先备份数据库与关键挂载目录,再执行升级。
建议重点备份:
- MariaDB 数据卷
./logs./wechat_ipad/providers- 你自己的
.env
9. 开源仓库注意事项
在公开仓库、打包镜像或分享部署模板前,请再次确认:
.env未提交config.yaml未提交真实密钥wechat_ipad/providers/*/runtime_state.toml未被误公开- Dashboard 密码、Session Secret、Webhook Token 已替换为你自己的值
- 未确认授权来源的字体、二进制与业务素材没有被一起公开