121 lines
2.4 KiB
Markdown
121 lines
2.4 KiB
Markdown
# 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/<server_type>/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 已替换为你自己的值
|