|
|
# 灵枢智能任务平台
|
|
|
|
|
|
## 部署方式选择
|
|
|
|
|
|
| 方式 | 适合场景 | 启动命令 |
|
|
|
|------|----------|----------|
|
|
|
| **本地模式**(推荐) | 个人电脑,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
|
|
|
# 停止 Flask:Ctrl+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
|
|
|
```
|