You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

177 lines
4.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 灵枢智能任务平台
## 部署方式选择
| 方式 | 适合场景 | 启动命令 |
|------|----------|----------|
| **本地模式**(推荐) | 个人电脑OpenClaw 运行在本机 | `./start_local.sh` |
| **全 Docker 模式** | 服务器部署OpenClaw 监听 `0.0.0.0` | `sudo ./start.sh` |
> **推荐使用本地模式**MySQL 用 Docker 跑Flask 直接在宿主机跑OpenClaw 连接最稳定,无网络隔离问题。
---
## 本地模式部署(推荐)
### 前置要求
| 软件 | 安装命令 |
|------|----------|
| Docker | `sudo apt install docker.io docker-compose-plugin` |
| Python 3.8+ | `sudo apt install python3 python3-pip` |
| OpenClaw | 已安装并在本机运行 |
### 第一步:确认 OpenClaw 已运行
```bash
# 确认进程存在
ps aux | grep openclaw-gateway
# 确认端口正常响应
curl http://127.0.0.1:18789
# 有响应即可(不报 Connection refused
```
### 第二步:确认 identity 文件存在
灵枢使用 **device 签名认证**Ed25519 私钥),不需要手动配置任何 token。
```bash
# 确认以下两个文件存在
ls ~/.openclaw/identity/device.json
ls ~/.openclaw/identity/device-auth.json
```
如果文件不存在,说明 OpenClaw 尚未完成初始化,先正常启动运行一次 OpenClaw。
### 第三步:启动
```bash
chmod +x start_local.sh
./start_local.sh
```
脚本会自动完成:
1. 检测 OpenClaw identity 目录并写入 `.env`
2. 启动 MySQL Docker 容器
3. 安装 Python 依赖
4. 启动 Flask 后端
首次启动会下载 MySQL 镜像(约 600MB需要几分钟。
启动成功后访问:**http://localhost:5000**
默认账号:`wangpai` / `admin123`
### 停止服务
```bash
# 停止 FlaskCtrl+C
# 停止 MySQL 容器
docker compose -f docker-compose.db-only.yml down
```
### 重置数据库
```bash
docker compose -f docker-compose.db-only.yml down -v
./start_local.sh
```
---
## 全 Docker 模式
> 此模式要求 OpenClaw 监听 `0.0.0.0:18789`(默认只监听 `127.0.0.1`,需要修改 OpenClaw 配置)。
### 前置要求
| 软件 | 版本要求 |
|------|----------|
| Docker | 20.10+`sudo apt install docker.io docker-compose-plugin` |
| OpenClaw | 已配置监听 `0.0.0.0:18789` |
### 修改 OpenClaw 监听地址
`~/.openclaw/openclaw.json` 中将 gateway 监听地址改为 `0.0.0.0`,然后重启 OpenClaw。
验证:
```bash
ss -tlnp | grep 18789
# 应看到 0.0.0.0:18789而不是 127.0.0.1:18789
```
### 启动
```bash
chmod +x start.sh
sudo ./start.sh
```
### 停止 / 重置
```bash
docker compose down # 停止
docker compose down -v # 停止并清空数据库
```
---
## 常见问题
**Q: `./start_local.sh` 报 `python3: command not found`**
```bash
sudo apt install python3 python3-pip
```
**Q: pip 安装依赖失败?**
```bash
pip3 install -r backend/requirements.txt
# 网络慢时加国内镜像:
pip3 install -r backend/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
```
**Q: 触发任务报"Connection refused"**
- 确认 OpenClaw 正在运行:`ps aux | grep openclaw`
- 确认端口正常:`curl http://127.0.0.1:18789`
**Q: 触发任务报"AUTH_DEVICE_TOKEN_MISMATCH"**
identity 文件与当前 OpenClaw 实例不匹配。重新生成 identity
```bash
rm -rf ~/.openclaw/identity/
# 重启 OpenClaw让其重新生成 identity 文件
pkill openclaw-gateway
openclaw # 重新启动,等待 identity 目录出现
ls ~/.openclaw/identity/ # 确认 device.json 和 device-auth.json 已生成
# 再重启灵枢
./start_local.sh
```
**Q: 端口 5000 被占用?**
```bash
# 在 start_local.sh 最后一行修改 --port=5000 为其他端口
```
**Q: 端口 3307 被占用?**
编辑 `docker-compose.db-only.yml`,把 `"3307:3306"` 改为其他端口,同时在 `.env` 中更新 `DB_PORT`
---
## 目录结构
```
lingshu/
├── backend/ # Flask 后端代码
├── docker-compose.yml # 全 Docker 模式
├── docker-compose.db-only.yml # 本地模式(仅 MySQL
├── Dockerfile
├── .env.example # 环境变量模板
├── start.sh # 全 Docker 模式启动脚本
├── start_local.sh # 本地模式启动脚本(推荐)
├── 灵枢数据库设计.sql
└── init_demo_data.sql
```