Files
abot/docs/Docker部署说明.md

4.6 KiB
Raw Blame History

ABOT Docker 部署说明

本文档面向希望通过 Docker / Docker Compose 快速部署 ABOT 的维护者,重点覆盖首次启动、855 / 864 配置差异、Dashboard 安全项以及常见上线注意点。

1. 部署架构

当前 Compose 方案拆分为三个服务:

  • abot:主程序与管理后台
  • mariadbMySQL 兼容数据库
  • 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_PASSWORD
  • DASHBOARD_PORT
  • ABOT_DASHBOARD_PASSWORD
  • ABOT_DASHBOARD_SECRET_KEY

微信接入项:

  • WECHAT_SERVER_URL
  • WECHAT_SERVER_IP
  • WECHAT_SERVER_PORT
  • WECHAT_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_USERNAME
  • ABOT_DASHBOARD_PASSWORD
  • ABOT_DASHBOARD_SECRET_KEY
  • ABOT_TRENDRADAR_WEBHOOK_TOKEN

这样做的目标是:

  • 公开仓库不再依赖固定弱口令
  • Docker 环境只维护 .env 一处
  • 非容器部署仍可继续使用本地 TOML 配置

5. wechat_ipad 配置说明

5.1 静态连接配置

统一通过 .env 注入:

  • WECHAT_SERVER_URL
  • WECHAT_SERVER_IP
  • WECHAT_SERVER_PORT
  • WECHAT_SERVER_TYPE
  • WECHAT_SERVER_KEY

说明:

  • legacy_855 / 855 / 859 可不填 WECHAT_SERVER_KEY
  • server_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 目录映射到宿主机,因此:

  • 容器重建后状态仍会保留
  • 855864 的状态天然分离
  • 不需要再人工维护历史 wechat_ipad/config.toml

6. Dashboard 安全建议

建议至少设置以下变量后再对外暴露:

  • ABOT_DASHBOARD_PASSWORD
  • ABOT_DASHBOARD_SECRET_KEY
  • ABOT_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. 开源仓库注意事项

在公开仓库、打包镜像或分享部署模板前,请再次确认:

  1. .env 未提交
  2. config.yaml 未提交真实密钥
  3. wechat_ipad/providers/*/runtime_state.toml 未被误公开
  4. Dashboard 密码、Session Secret、Webhook Token 已替换为你自己的值
  5. 未确认授权来源的字体、二进制与业务素材没有被一起公开