- 调整 Dockerfile 与入口脚本,拆分应用、MySQL、Redis 的部署职责 - 新增 docker-compose、docker ignore 与 Docker 环境变量示例 - 重写 README 并补充 Docker 部署说明与第三方资产说明 - 将后台示例账号与 webhook token 改为安全占位值,移除弱口令默认兜底
182 lines
4.9 KiB
Markdown
182 lines
4.9 KiB
Markdown
# ABOT
|
||
|
||
ABOT 是一个基于插件体系构建的微信机器人项目,包含消息处理主链路、管理后台、MySQL/Redis 存储、定时任务与多类 AI / 内容插件能力。当前仓库更适合有一定 Python 与部署基础的维护者进行二次开发、私有部署与功能扩展。
|
||
|
||
## 项目定位
|
||
|
||
- 面向“可持续迭代的机器人平台”,不是一次性脚本
|
||
- 核心能力包括消息接入、插件化处理、后台管理、数据归档与 AI 扩展
|
||
- 当前默认假设你具备 MySQL、Redis、Docker、环境变量配置的基础经验
|
||
|
||
## 当前主要能力
|
||
|
||
- 微信消息接入与机器人主循环
|
||
- 插件加载、启停、热更新与后台管理
|
||
- MySQL + Redis 双存储
|
||
- AI 自动回复、消息总结、成员画像等能力
|
||
- 签到、积分、排行榜、内容推送、媒体处理等业务插件
|
||
|
||
## 快速开始
|
||
|
||
### 方式一:Docker Compose
|
||
|
||
适合第一次快速跑通部署骨架。
|
||
|
||
1. 复制 Docker 环境变量示例
|
||
|
||
```bash
|
||
cp .env.docker.example .env
|
||
```
|
||
|
||
Windows PowerShell:
|
||
|
||
```powershell
|
||
Copy-Item .env.docker.example .env
|
||
```
|
||
|
||
2. 按实际环境修改 `.env` 中的数据库密码、`WECHAT_SERVER_URL` 等参数
|
||
|
||
3. 启动服务
|
||
|
||
```bash
|
||
docker compose up -d --build
|
||
```
|
||
|
||
更多说明见 [docs/Docker部署说明.md](/d:/learn/abot/docs/Docker部署说明.md:1)。
|
||
|
||
### 方式二:本地直跑
|
||
|
||
1. 准备 Python 3.10+
|
||
2. 准备 MySQL、Redis
|
||
3. 复制配置文件
|
||
|
||
```bash
|
||
cp config.example.yaml config.yaml
|
||
cp .env.example .env
|
||
```
|
||
|
||
Windows PowerShell:
|
||
|
||
```powershell
|
||
Copy-Item config.example.yaml config.yaml
|
||
Copy-Item .env.example .env
|
||
```
|
||
|
||
4. 安装依赖
|
||
|
||
```bash
|
||
python -m venv .venv
|
||
.venv\Scripts\activate
|
||
pip install -r requirements.txt
|
||
pip install pysilk-mod
|
||
```
|
||
|
||
5. 启动主程序
|
||
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
## 配置说明
|
||
|
||
### 全局配置
|
||
|
||
项目支持从 `.env` 自动加载环境变量,并在 [config.example.yaml](/d:/learn/abot/config.example.yaml:1) / `config.yaml` 中使用:
|
||
|
||
- `${ENV_NAME}`
|
||
- `${ENV_NAME:默认值}`
|
||
|
||
示例:
|
||
|
||
- `${ABOT_DB_PASSWORD}`:必须提供
|
||
- `${ABOT_DB_HOST:127.0.0.1}`:可缺省时回退
|
||
|
||
### wechat_ipad 配置
|
||
|
||
当前仓库仍保留 [wechat_ipad/config.toml](/d:/learn/abot/wechat_ipad/config.toml:1) 作为现有登录态与设备信息的本地配置文件。
|
||
|
||
说明:
|
||
|
||
- Docker 部署会通过环境变量在首次启动时生成该文件
|
||
- 本地直跑继续兼容原有读取方式
|
||
- 本轮未强制把全部 `wechat_ipad` 配置迁移进 `.env`
|
||
|
||
## 目录结构
|
||
|
||
```text
|
||
abot/
|
||
├── admin/ # 管理后台
|
||
├── base/ # 插件基础接口与管理能力
|
||
├── db/ # 数据库访问层与迁移脚本
|
||
├── docs/ # 部署、设计、使用文档
|
||
├── plugins/ # 业务插件
|
||
├── utils/ # 通用工具与服务
|
||
├── wechat_ipad/ # 微信相关客户端与 server 对接代码
|
||
├── Dockerfile
|
||
├── docker-compose.yml
|
||
├── config.example.yaml
|
||
├── .env.example
|
||
└── main.py
|
||
```
|
||
|
||
## 管理后台
|
||
|
||
- 默认端口:`8888`
|
||
- 配置文件:[`admin/dashboard/config.toml`](/d:/learn/abot/admin/dashboard/config.toml:1)
|
||
- 公开仓库中的账号密码与 webhook token 已改为占位值,部署前务必自行修改
|
||
|
||
## Docker 化现状
|
||
|
||
本仓库现在提供的是“开源友好”的基础部署骨架:
|
||
|
||
- 应用、MariaDB、Redis 已拆分为独立服务
|
||
- 提供 `docker-compose.yml`、`.dockerignore`、`.env.docker.example`
|
||
- 保留 `wechat_ipad/config.toml` 的挂载方式,避免这次改动影响你现有登录态逻辑
|
||
|
||
当前仍建议你在正式生产前继续补充:
|
||
|
||
- HTTPS / 反向代理
|
||
- 备份策略
|
||
- CI/CD
|
||
- 监控与告警
|
||
|
||
## 开源说明
|
||
|
||
### License 要不要改
|
||
|
||
当前主代码仍按 MIT License 分发,通常不必为了“开源”单独换许可证。
|
||
|
||
但你需要额外关注:
|
||
|
||
- 字体文件的再分发许可
|
||
- `wechat_ipad/ipad859go` 二进制来源与授权
|
||
- `resource/` 下业务资料是否适合公开
|
||
- 第三方前端静态资源的许可证保留
|
||
|
||
详情见 [THIRD_PARTY_LICENSES.md](/d:/learn/abot/THIRD_PARTY_LICENSES.md:1)。
|
||
|
||
### 不建议公开提交的内容
|
||
|
||
- `.env`
|
||
- `config.yaml`
|
||
- `wechat_ipad/config.toml` 中的真实 `wxid` / `device_id`
|
||
- 真实数据库密码、LLM API Key、Webhook Token
|
||
|
||
## 路线图
|
||
|
||
当前更优先的方向不是继续无上限堆新功能,而是继续补工程底座:
|
||
|
||
- Docker 化与部署规范
|
||
- 文档与回归清单
|
||
- 插件治理
|
||
- 可观测性与任务中心
|
||
- 开源边界与资产合规
|
||
|
||
已整理的工程 backlog 见 [docs/工程优化与Feature清单.md](/d:/learn/abot/docs/工程优化与Feature清单.md:1)。
|
||
|
||
## 贡献与使用说明
|
||
|
||
- 欢迎基于自己的场景二次开发
|
||
- 提交前请避免把本地私有配置、运行日志、登录态一并提交
|
||
- 涉及平台接口、内容抓取、自动推送等能力时,请自行评估目标平台规则与当地法律要求
|