# ABOT Docker 部署说明 本文档面向希望通过 Docker / Docker Compose 快速启动 ABOT 的维护者。 ## 1. 部署架构 当前仓库提供的 Compose 方案拆分为三个服务: - `abot`:应用主程序与管理后台 - `mariadb`:MySQL 兼容数据库 - `redis`:缓存与运行时状态存储 说明: - `wechat_ipad server` 仍建议跑在宿主机或独立机器,不直接内置到应用容器中 - `abot` 容器通过 `WECHAT_SERVER_URL` / `WECHAT_SERVER_IP` 连接该服务 ## 2. 首次启动 ### 2.1 准备环境变量 复制示例文件: ```bash cp .env.docker.example .env ``` Windows PowerShell: ```powershell Copy-Item .env.docker.example .env ``` 至少确认以下变量: - `ABOT_DB_PASSWORD` - `WECHAT_SERVER_URL` - `WECHAT_SERVER_IP` - `WECHAT_SERVER_PORT` - `WECHAT_SERVER_TYPE` - `DASHBOARD_PORT` ## 3. 启动命令 ```bash docker compose up -d --build ``` 启动后: - Dashboard 默认访问:`http://127.0.0.1:8888` - 日志目录映射到宿主机:`./logs` - MariaDB / Redis 数据保存在 Docker volume 中 ## 4. wechat_ipad 配置说明 现在 `wechat_ipad` 的静态连接参数统一走 `.env`: - `WECHAT_SERVER_URL` - `WECHAT_SERVER_IP` - `WECHAT_SERVER_PORT` - `WECHAT_SERVER_TYPE` 登录后的 `wxid / device_id / device_name` 会自动写入本地状态缓存: - 默认路径:`wechat_ipad/providers//runtime_state.toml` - Compose 已将宿主机的 `./wechat_ipad/providers` 目录映射进容器 - 因此容器重建后,已有登录态仍会保留 兼容说明: - 启动时仍会尝试兼容历史 `wechat_ipad/config.toml` - 但新的人工维护入口已经变成 `.env` - 后续不再建议继续手工编辑旧 TOML 文件 ## 5. 常用命令 查看服务状态: ```bash docker compose ps ``` 查看应用日志: ```bash docker compose logs -f abot ``` 停止服务: ```bash docker compose down ``` 停止并删除数据卷: ```bash docker compose down -v ``` ## 6. 升级建议 拉取新代码后建议执行: ```bash docker compose down docker compose up -d --build ``` 若数据库结构发生变更,请先备份再升级。 ## 7. 公开仓库注意事项 在公开仓库或分享部署示例前,请再次确认: 1. `.env` 未提交 2. `config.yaml` 未提交真实密钥 3. `wechat_ipad/providers/*/runtime_state.toml` 未被误公开 4. Dashboard 账号密码与 webhook token 已替换为你自己的值