Files
FastGPT/projects/sandbox_server/READMD.md
Archer 44d64ce40e Sandbox server (#6383)
* feat: sandbox_server

* docker build

* action
2026-02-04 20:49:26 +08:00

2.0 KiB

FastGPT Sandbox Server

借助 Sealos 的部署能力,进行快速的沙盒管理以及使用。

功能

  • 容器生命周期管理: 创建、暂停、启动、删除容器
  • 沙盒操作: 在沙盒中执行命令、健康检查
  • OpenAPI 文档: 自动生成 API 文档
  • SDK: 提供类型安全的 SDK 调用

快速开始

安装依赖

bun install

配置环境变量

复制 .env.template.env.local 并填写配置:

cp .env.template .env.local

启动开发服务器

bun run dev

运行测试

bun run test

API 文档

启动服务后访问:

  • OpenAPI JSON: http://localhost:3000/openapi
  • Scalar UI: http://localhost:3000/openapi/ui

API 端点

容器生命周期 (/v1/containers)

方法 路径 描述
POST /v1/containers 创建容器
GET /v1/containers/:name 获取容器信息
POST /v1/containers/:name/pause 暂停容器
POST /v1/containers/:name/start 启动容器
DELETE /v1/containers/:name 删除容器

沙盒操作 (/v1/sandbox)

方法 路径 描述
POST /v1/sandbox/:name/exec 执行命令
GET /v1/sandbox/:name/health 健康检查

SDK 使用

import { createSDK } from 'sandbox-server/sdk';

const sdk = createSDK('http://localhost:3000', 'your-token');

// 容器操作
await sdk.container.create({
  name: 'my-sandbox',
  image: 'node:18-alpine',
  resource: { cpu: 1, memory: 1024 }
});

const info = await sdk.container.get('my-sandbox');
await sdk.container.pause('my-sandbox');
await sdk.container.start('my-sandbox');
await sdk.container.delete('my-sandbox');

// 沙盒操作
const healthy = await sdk.sandbox.health('my-sandbox');
const result = await sdk.sandbox.exec('my-sandbox', { command: 'ls -la' });

Docker 构建

docker build -t sandbox-server .
docker run -p 3000:3000 --env-file .env.local sandbox-server