# ClawSwarm 部署指南

ClawSwarm 是一个开源群体智能协作编排系统,把多个具备不同专长的 AI Agent 引入同一个群聊进行协作。项目基于 Python 3.12+ FastAPI 后端 + Vue 3 前端,通过 Docker 或手动方式部署。

– 版本:v1.0.x
– 许可证:GPL-3.0
– 默认账号:admin / admin123456

## 1. 项目概览

| 项目 | 说明 |
|——|——|
| 技术栈 | Python 3.12+, FastAPI, SQLAlchemy, Uvicorn / Vue 3, Vite, TypeScript, Element Plus / OpenClaw Plugin (TypeScript) |
| 默认端口 | 18080 |
| 包管理器 | npm (前端), pip (后端) |
| 构建工具 | Vite (前端), tsup (插件) |

### 目录结构

“`
ClawSwarm/
├── scheduler-server/ # 后端 Python FastAPI 服务
│ ├── src/ # API 路由、模型、服务层
│ ├── run_dev.py # 本地开发启动脚本
│ ├── .env.dev # 本地开发环境配置
│ └── requirements.txt # Python 依赖
├── web-client/ # 前端 Vue 3 + Vite 应用
│ ├── src/ # Vue 组件、页面、路由
│ ├── vite.config.ts # Vite 配置(含 API 代理)
│ └── package.json # Node 依赖
├── channel/ # OpenClaw 插件
│ ├── src/ # TypeScript 源码
│ ├── skills/ # 技能提示词
│ └── openclaw.plugin.json
├── Dockerfile # 生产镜像构建
├── Dockerfile.base # 基础镜像构建
└── docker-compose.yml # Docker Compose 示例
“`

## 2. 环境要求

| 依赖 | 版本要求 |
|——|———|
| Python | >= 3.12 |
| Node.js | >= 22.x |
| Docker | 24+(容器部署) |
| 内存 | >= 1GB |
| 磁盘 | >= 5GB |

## 3. Docker 部署(推荐)

### 快速启动(使用已发布镜像)

“`bash
docker run -d –name=clawswarm –restart=always -p 18080:18080 -v ~/.claw-team:/opt/clawswarm 1panel/clawswarm:latest
“`

– 默认端口 18080,如需修改可映射其他主机端口
– 数据卷挂载到 /opt/clawswarm,包含 SQLite 数据库文件 app.db
– 基础镜像拉取自 ghcr.io/1panel-dev/clawswarm-base

### 自行构建镜像

构建基础镜像:
“`bash
docker build -t clawswarm-base -f Dockerfile.base .
“`

构建完整应用镜像:
“`bash
docker build –build-arg BASE_IMAGE=clawswarm-base:latest –build-arg DOCKER_IMAGE_TAG=v1.0.x –build-arg BUILD_AT=$(date +%Y-%m-%dT%H:%M) –build-arg GITHUB_COMMIT=$(git rev-parse –short HEAD) -t clawswarm .
“`

### Docker Compose

“`yaml
services:
clawswarm:
image: 1panel/clawswarm:latest
ports:
– “18080:18080”
volumes:
– clawswarm-data:/opt/clawswarm
restart: unless-stopped

volumes:
clawswarm-data:
“`

### 环境变量

| 变量 | 说明 | 默认值 |
|——|——|——–|
| APP_HOST | 监听地址 | 0.0.0.0 |
| APP_PORT | 服务端口 | 18080 |
| DATABASE_URL | 数据库连接 | sqlite:////opt/clawswarm/app.db |
| DATA_DIR | 数据目录 | /opt/clawswarm |
| WEB_DIST_DIR | 前端静态文件目录 | /opt/clawswarm-web |
| CHANNEL_ALLOW_INSECURE_TLS | 允许不安全 TLS(联调) | 0 |
| LOCAL_AGENT_MOCK_ENABLED | 启用本地模拟 Agent | 0 |
| DEFAULT_LOGIN_USERNAME | 默认管理员用户名 | admin |
| DEFAULT_LOGIN_PASSWORD | 默认管理员密码 | admin123456 |

## 4. 云服务器手动部署

### 安装 Python 3.12 + Node.js 22

“`bash
apt update
apt install -y python3 python3-pip python3-venv
curl -fsSL https://deb.nodesource.com/setup_22.x | bash –
apt install -y nodejs
“`

### 克隆、安装、构建

“`bash
git clone https://github.com/dajjwwx/ClawSwarm.git
cd ClawSwarm

cd scheduler-server && pip install -r requirements.txt && cd ..
cd web-client && npm install && npm run build && cd ..
“`

### 运行服务

“`bash
cd scheduler-server
export WEB_DIST_DIR=/path/to/web-client/dist
python -m uvicorn src.main:app –host 0.0.0.0 –port 18080
“`

## 5. 本地开发模式

### 后端启动

“`bash
cd scheduler-server && python run_dev.py
“`

– 默认运行在 http://127.0.0.1:8080
– 读取 .env.dev 配置文件
– SQLite 数据库自动创建在 ./data/app.db
– 默认开启 LOCAL_AGENT_MOCK_ENABLED=1(无需 OpenClaw 即可测试)

### 前端启动

“`bash
cd web-client
npm install
npm run dev
“`

– 默认运行在 http://localhost:5173
– Vite 自动代理 /api 和 /ws 到后端
– 在 web-client/.env 中设置 VITE_DEV_API_PROXY_TARGET=http://127.0.0.1:8080

## 6. OpenClaw 插件安装

### 自动安装

“`bash
openclaw plugins install @1panel-dev/clawswarm
openclaw plugins enable clawswarm
“`

### 手动安装(限流时备用)

“`bash
cd /tmp
PKG=$(npm pack @1panel-dev/clawswarm)
mkdir -p /tmp/clawswarm-pkg
cd /tmp/clawswarm-pkg
tar xzf /tmp/$PKG
cp -r /tmp/clawswarm-pkg/package /home/node/.openclaw/extensions/clawswarm
cd /home/node/.openclaw/extensions/clawswarm
npm install –omit=dev
“`

### 配置对接

1. 在 ClawSwarm Web 界面进入 OpenClaw 页面
2. 创建或编辑实例
3. 填写 OpenClaw URL 和 Gateway Token
4. 保存后,复制生成的 OpenClaw JSON 配置
5. 将此配置合并到 OpenClaw 的 ~/.openclaw/openclaw.json
6. 重启 Gateway:openclaw gateway restart

## 7. GitHub Actions CI/CD

### 基础镜像
Workflow build-and-push-base.yml,推送到 ghcr.io/1panel-dev/clawswarm-base,基于 python:3.12-slim。

### 应用镜像
Workflow build-and-push.yml,支持 linux/amd64 和 linux/arm64 多架构,分 testing 和 production 两个账号通道。

### Channel 插件发布
Workflow publish-channel.yml,从 beta 分支发布 beta 标签,从 channel 分支发布 latest 标签(需手动确认)。自动校验 package.json 和 openclaw.plugin.json 版本一致性。

## 8. 常见问题

**SQLite 数据库位置**:数据默认存储在挂载卷的 /opt/clawswarm/app.db,定期备份此文件。

**修改默认端口**:通过环境变量 APP_PORT 修改,如 APP_PORT=8080。

**忘记管理员密码**:删除 app.db 后重启服务会自动重建,恢复默认密码 admin123456。

**CORS 问题(本地开发)**:后端已配置允许 localhost:5173 和 127.0.0.1:5173 的跨域请求。

**OpenClaw 插件不显示**:确认 openclaw.plugin.json 中存在 channelConfigs.clawswarm 配置段。

> 更多信息请访问项目仓库:https://github.com/dajjwwx/ClawSwarm

Leave A Comment

Recommended Posts