6.8 KiB
6.8 KiB
Gewe Bot 配置管理系统 - 完整使用指南
快速开始
1. 文件模式(推荐开发环境)
# 编辑启动脚本
nano crates/gewe-bot-app/start-dev.sh
# 设置环境变量
export GEWE_BOT_TOKEN_MAIN="your_bot_token"
export GEMINI_API_KEY="your_gemini_key"
# 启动服务
chmod +x crates/gewe-bot-app/start-dev.sh
./crates/gewe-bot-app/start-dev.sh
访问:http://localhost:4399/
2. Postgres 模式(推荐生产环境)
# 准备 Postgres 数据库
createdb gewebot
# 设置环境变量
export POSTGRES_URL="postgresql://user:password@localhost:5432/gewebot"
export GEWE_BOT_TOKEN_MAIN="your_bot_token"
export GEMINI_API_KEY="your_gemini_key"
# 可选:启用 API 鉴权
export GEWE_API_TOKEN="admin_secret_token"
# 启动服务(首次会自动运行迁移)
cargo run -p gewe-bot-app -- config/bot-app.v2.toml
功能使用
Dashboard 概览
- 查看配置统计(Bots、Profiles、Tools、Rules 数量)
- 查看配置状态(版本、ETag、草稿状态)
- 查看备份历史,一键回滚
- 导出/导入配置文件
Bot 管理
- 点击"Bots"导航
- 点击"添加 Bot"
- 填写表单:
- ID(可选,默认使用 App ID)
- App ID(必填)
- Base URL(默认 https://www.geweapi.com)
- Token 环境变量名(如
GEWE_BOT_TOKEN_XXX) - Webhook Secret 环境变量名
- Tags(逗号分隔)
- 保存后自动刷新列表
AI Profile 管理
- 点击"AI"导航
- 点击"添加 Profile"
- 填写:
- ID(唯一标识)
- Provider(OpenAI/Gemini/Anthropic/DeepSeek)
- Model(如 gemini-2.5-flash)
- Base URL(可选,用于代理)
- API Key 环境变量名
- System Prompt 文件路径
- 勾选需要的工具
- 保存
规则配置
- 点击"规则"导航
- 规则模板标签:
- 定义匹配条件和动作
- 不绑定具体频道
- 规则实例标签:
- 选择模板
- 设置频道(private/group/both)
- 设置优先级(数字越小越优先)
- 可选:过滤发送者 wxid
- 可选:覆盖 AI Profile 或 require_mention
模拟器测试
- 点击"模拟器"导航
- 填写模拟参数:
- App ID
- 消息类型(text/image/voice 等)
- 频道(private/group)
- 消息内容
- 可选:发送者 wxid、是否 @机器人
- 点击"模拟匹配"
- 查看匹配结果(哪些规则被命中,最终执行什么动作)
全局设置
- 点击"设置"导航
- 配置:
- 服务器(监听地址、队列容量)
- 存储(图片目录、URL 前缀)
- 默认行为(回复模式、日志)
- AI 默认配置(默认 Profile、是否需要 @)
- 保存后重启服务生效
API 鉴权
Token 鉴权
# 设置环境变量
export GEWE_API_TOKEN="my_secret_token"
# 请求示例
curl -H "Authorization: Bearer my_secret_token" \
http://localhost:4399/api/config
Basic Auth
# 设置环境变量
export GEWE_API_USERNAME="admin"
export GEWE_API_PASSWORD="password"
# 请求示例
curl -u admin:password \
http://localhost:4399/api/config
说明
- 未设置环境变量时,鉴权自动禁用
- 鉴权仅对
/api/*生效 /api/healthz无需鉴权/pages/*和静态文件无需鉴权
导入/导出配置
导出
- Dashboard 页面点击"导出配置"按钮
- 浏览器自动下载
bot-app.v2.toml
或使用 API:
curl -O http://localhost:4399/api/config/export
导入
- Dashboard 页面点击"导入配置"按钮
- 选择本地
.toml文件 - 自动校验并保存
或使用 API:
curl -X POST http://localhost:4399/api/config/import \
-H "Content-Type: text/plain" \
--data-binary @config.toml
数据库迁移
文件 -> Postgres 迁移
# 1. 导出当前配置
curl -O http://localhost:4399/api/config/export
# 2. 设置 Postgres URL
export POSTGRES_URL="postgresql://..."
# 3. 重启服务(自动运行迁移)
cargo run -p gewe-bot-app -- config/bot-app.v2.toml
# 4. 导入配置
curl -X POST http://localhost:4399/api/config/import \
-H "Content-Type: text/plain" \
--data-binary @bot-app.v2.toml
# 5. 发布版本
curl -X POST http://localhost:4399/api/config/publish
Postgres -> 文件迁移
# 1. 导出配置
curl -O http://localhost:4399/api/config/export
# 2. 移除 POSTGRES_URL
unset POSTGRES_URL
# 3. 重启服务
cargo run -p gewe-bot-app -- bot-app.v2.toml
健康检查
curl http://localhost:4399/api/healthz
# 响应
{
"status": "ok",
"timestamp": "2024-12-04T12:00:00Z"
}
可用于:
- Kubernetes liveness/readiness probe
- 负载均衡器健康检查
- 监控系统集成
生产部署建议
1. 使用 Postgres 存储
- 更可靠的版本管理
- 支持多实例部署(共享数据库)
- 便于备份和恢复
2. 启用 API 鉴权
export GEWE_API_TOKEN="$(openssl rand -hex 32)"
3. 配置日志输出
export GEWE_LOG_JSON=1
export GEWE_LOG_FILE=/var/log/gewe-bot-app/app.log
export GEWE_LOG_ROLLING=daily
4. 反向代理(Nginx)
location /api {
proxy_pass http://localhost:4399;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://localhost:4399;
}
5. 使用 systemd 服务
[Unit]
Description=Gewe Bot Application
After=network.target postgresql.service
[Service]
Type=simple
User=gewebot
WorkingDirectory=/opt/gewe-bot
Environment="POSTGRES_URL=postgresql://..."
Environment="GEWE_API_TOKEN=..."
Environment="GEWE_LOG_JSON=1"
ExecStart=/opt/gewe-bot/gewe-bot-app config/bot-app.v2.toml
Restart=always
[Install]
WantedBy=multi-user.target
故障排查
服务无法启动
- 检查环境变量是否设置
- 检查端口 4399 是否被占用
- 检查配置文件路径
- 查看错误日志
Postgres 连接失败
- 检查
POSTGRES_URL格式 - 确认数据库已创建
- 确认用户权限
- 检查网络连接
前端页面空白
- 检查浏览器控制台错误
- 检查 Network 面板请求
- 确认服务正常运行
- 尝试清除浏览器缓存
鉴权失败
- 确认环境变量已设置
- 检查 Token 格式(Bearer xxx)
- 检查 Basic Auth 编码
- 查看服务日志
相关文档
- 项目指南:
docs/tasks/00-project-guide.md - 阶段 1 完成:
docs/tasks/01-backend-api-phase1.md - 阶段 2 计划:
docs/tasks/02-frontend-htmx-plan.md - 阶段 2 完成:
docs/tasks/03-phase2-completion.md - 全部完成:
docs/tasks/04-all-phases-completion.md - README:
crates/gewe-bot-app/README.md
技术支持
遇到问题?
- 查看日志输出
- 检查配置文件格式
- 使用
/api/config/lint校验配置 - 使用模拟器测试规则匹配
- 参考示例配置:
docs/config/bot-config-v2.example.toml