docs/self-hosting/environment-variables/cloud-sandbox.zh-CN.mdx
云端沙箱用于内置的代码执行、Shell 命令、文件操作和文件导出工具。默认情况下,LobeHub 使用 Market 沙箱;自托管部署可以把同一套工具能力切换到兼容 Onlyboxes 的沙箱提供方。
SANDBOX_PROVIDERmarketonlyboxes支持的取值:
market:使用现有 Market 沙箱。onlyboxes:使用兼容 Onlyboxes 的自托管沙箱 Console。MARKET_BASE_URLhttps://market.lobehub.comhttps://market.example.comMARKET_TRUSTED_CLIENT_IDlobechat-comMARKET_TRUSTED_CLIENT_SECRETyour-market-trusted-client-secretONLYBOXES_BASE_URLSANDBOX_PROVIDER=onlyboxes 时必填/api/v1。https://onlyboxes.example.comONLYBOXES_JIT_SIGNING_KEYSANDBOX_PROVIDER=onlyboxes 时必填CONSOLE_JIT_SIGNING_KEY 一致。onlyboxes-jit-signing-secretONLYBOXES_JIT_ISSUERAPP_URLhttps://lobehub.example.comONLYBOXES_JIT_TTL_SEC1800900ONLYBOXES_LEASE_TTL_SEC9003600默认情况下,LobeHub 使用官方 Market 沙箱,不需要额外配置:
# SANDBOX_PROVIDER=market
如果你需要显式使用 Market,或者连接自托管 / 专用 Market 服务,可以配置:
SANDBOX_PROVIDER=market
MARKET_BASE_URL=https://market.example.com
如果该 Market 服务要求 LobeHub 服务端代表当前用户调用沙箱、凭据或技能能力,还需要配置 Trusted Client:
MARKET_TRUSTED_CLIENT_ID=lobechat-com
MARKET_TRUSTED_CLIENT_SECRET=your-market-trusted-client-secret
MARKET_TRUSTED_CLIENT_ID 需要在 Market 服务端的可信客户端白名单中,MARKET_TRUSTED_CLIENT_SECRET 需要与 Market 服务端共享密钥一致。未配置 Trusted Client 时,Market 侧需要认证的能力会继续使用现有的用户授权流程。
配置的 Onlyboxes worker 需要暴露 terminalExec 和 terminalResource。LobeHub 使用 terminalExec 作为 Shell 命令、代码执行和文件操作的兼容层,并使用 terminalResource 通过预签名上传 URL 导出文件。
为了和 Market 沙箱保持能力对等,终端运行镜像应包含:
python3,用于文件操作封装和 Python 执行node,用于 JavaScript 执行npx 以及可用的 tsx,用于 TypeScript 执行base64、find、grep 等常见 Shell 工具使用 Onlyboxes 时的最小配置:
SANDBOX_PROVIDER=onlyboxes
ONLYBOXES_BASE_URL=https://onlyboxes.example.com
ONLYBOXES_JIT_SIGNING_KEY=onlyboxes-jit-signing-secret
Onlyboxes Console 侧需要配置同一个密钥:
CONSOLE_JIT_SIGNING_KEY=onlyboxes-jit-signing-secret
<Callout type={'info'}> 文件导出仍会把沙箱内产物写入 LobeHub 配置的 S3 存储。如果用户需要下载沙箱生成的文件,请同时配置 S3 相关环境变量。 </Callout>