用途:在 Daytona 上快速创建可长期运行的 OpenWork Cloud/Den 服务端演示环境,写入 Acme Robotics 演示数据,验证登录,并返回可直接分享的演示信息。
主要能力:从仓库根目录运行 .devcontainer/test-server-on-daytona.sh 启动仅服务端沙箱,支持用 --name 指定稳定沙箱名(重名时可用日期后缀);沙箱健康后通过 daytona exec 执行 seed-demo-org.ts --reset 写入演示组织数据;提供保活方案,每 30 分钟 ping Den API 健康检查;通过 Den Web 与 Den API 两条路径校验健康与登录。
必要用法:启动命令为 bash .devcontainer/test-server-on-daytona.sh "$BRANCH" --name "$SANDBOX",脚本会打印 DEN_WEB_URL 与 DEN_API_URL。种子命令需在 /workspace 下构建 @openwork/email,并在 ee/apps/den-api 中以 OPENWORK_DEV_MODE=1 及相应数据库、加密、认证环境变量执行 pnpm exec tsx scripts/seed-demo-org.ts --reset。演示凭据为 alex@acme.test / OpenWorkDemo123!。校验使用 curl 访问 $DEN_API_URL/health、$DEN_WEB_URL/api/den/health,以及两处 /api/auth/sign-in/email 登录接口,预期返回 redirect: false、token 与用户 Alex Chen。
适用场景:需要向他人交付可登录的 OpenWork Cloud/Den 云演示、需要预置组织与成员数据的演示准备。
限制:沙箱默认启用 Daytona 自动停止,若 CLI 不支持创建后修改,需本地保活循环;若登录返回 403 邮箱验证错误,说明 Den API 未以 OPENWORK_DEV_MODE=1 运行或环境变更后未重启;若 Den Web 健康通过但经其代理登录失败而直连 API 成功,应分别报告并单独排查代理,不能仅凭直连 API 成功就宣称浏览器路径通过。旧文档中仅服务端模式运行 Electron 辅助脚本的路径,除非当前检出支持,否则不要使用。