配置云端沙箱
给本地版和自建版配上 Sandock,让需要 Python、框架或隔离环境的 AirApp 能跑起来。
「云端沙箱」是 AirApp 的一种运行引擎:每次运行临时开一台云端机器,由 Sandock 提供。需要 Python、原生依赖、Next.js 这类框架,或者不想在自己服务器上跑应用进程时,就用它。
如果你看到这条提示,说明这台 Busabase 还没有配置:
此 AirApp 要求使用云端沙箱,但本部署尚未配置 Sandock。
配置只需要一个 API key,自建版不受套餐限制。busabase.com 云端版不用配置,Plus 及以上套餐可以直接使用。
准备 API key
- 注册并登录 Sandock。
- 进入 Account Settings → API Keys,点 Create New Key。
- 复制生成的 key。它只显示这一次。
运行 Busabase 的服务器要能访问 https://sandock.ai。访问者的浏览器不需要。
配置 key
把 SANDOCK_API_KEY 交给 Busabase 服务进程,然后重启。按你的部署方式选一种。
开源版(busabase server)
SANDOCK_API_KEY=你的key busabase server开源版或一体机镜像(docker run)
在原来的启动命令里加上:
-e SANDOCK_API_KEY=你的keyCompose
在 .env 里加一行,再重新创建容器:
SANDOCK_API_KEY=你的keydocker compose up -dHelm
先把 key 存进 Secret,再在 values.yaml 里引用:
kubectl create secret generic sandock --from-literal=apiKey=你的keyapp:
extraEnv:
- name: SANDOCK_API_KEY
valueFrom:
secretKeyRef:
name: sandock
key: apiKeyHelm 部署请保持 app.replicaCount: 1。运行状态保存在启动它的那个进程里,多副本时预览会随机打不开。
桌面版目前没有配置入口。
可选配置
| 变量 | 默认值 | 作用 |
|---|---|---|
SANDOCK_BASE_URL | https://sandock.ai | 使用其他 Sandock 服务时填写。只写域名,不要带 /api/v1。 |
SANDOCK_SPACE_ID | 空 | 指定沙箱所在的 Sandock 空间。 |
SANDOCK_IMAGE | 空 | 指定运行镜像。 |
确认生效
- 重启后,在左侧把鼠标移到任意 AirApp 上,点 ···,选设置。
- 运行引擎下拉框里应该出现云端沙箱。
- 选中它并保存,然后运行应用。日志里会依次出现开沙箱、
npm install、启动命令。小应用大约 35 秒能看到预览。
Premium 需要有效的授权才能运行应用。
费用和回收
沙箱记在你的 Sandock 账号上。每次运行开一台 1 核、1GB 内存的机器。
| 情况 | 什么时候停 |
|---|---|
| 点停止 | 立刻 |
| 开着不管,没人看 | 空闲约 15 分钟后 |
| Busabase 服务在运行中被关掉 | 最长 4 小时后,由 Sandock 到期停止 |
预览只有启动它的人能看。云端沙箱是临时环境,不适合当网站对外提供服务。
排查问题
| 现象 | 原因和处理 |
|---|---|
| 下拉框里没有云端沙箱 | key 没传进服务进程,或者还没重启。SANDOCK_BASE_URL 带了路径时也会这样。 |
配上 key 后服务起不来,日志里有 Sandock AirApp previews require a shared Redis cache | 旧版镜像的启动检查。升级到最新镜像。 |
| 日志停在开沙箱这一步 | 先检查服务器能否访问 sandock.ai,以及 key 是否有效。 |
| 日志显示应用已启动,预览是空的 | 检查应用是否读取了 PORT 环境变量。 |