SuperAPI AI 工具集

deploy-open-harness

部署与运维

查看项目

更新于 10-15 11:59

技能介绍

用途

deploy-open-harness 是一个部署引导技能,目标是帮助用户部署自己的一份 Open Harness。它基于当前代码库给出指导,而不是沿用旧版 Harness 时代的设置假设。技能明确要求:如果代码与文档不一致,以代码为准并说明这一点;不要依赖 scripts/setup.sh。

主要能力

技能会先让用户确定部署范围,再据此收集凭据、指导部署并完成首次运行验证。

部署范围

  1. 最小部署:一个可运行、可托管的实例,用户可以用 Vercel 登录并使用产品,不需要 GitHub 仓库访问权限。
  2. 完整部署:在最小部署基础上,增加 GitHub 账号关联、GitHub App 安装、私有仓库访问、推送和创建 PR。

如果用户不确定,技能建议先做最小部署,再叠加 GitHub 能力。

凭据清单

应用运行必需:

  • POSTGRES_URL
  • JWE_SECRET

可用的托管部署必需:

  • ENCRYPTION_KEY
  • NEXT_PUBLIC_VERCEL_APP_CLIENT_ID
  • VERCEL_APP_CLIENT_SECRET

GitHub 仓库流程必需:

  • NEXT_PUBLIC_GITHUB_CLIENT_ID
  • GITHUB_CLIENT_SECRET
  • GITHUB_APP_ID
  • GITHUB_APP_PRIVATE_KEY
  • NEXT_PUBLIC_GITHUB_APP_SLUG
  • GITHUB_WEBHOOK_SECRET

可选:

  • REDIS_URL 或 KV_URL
  • VERCEL_PROJECT_PRODUCTION_URL
  • NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL
  • VERCEL_SANDBOX_BASE_SNAPSHOT_ID
  • ELEVENLABS_API_KEY

各凭据的说明方式

  • PostgreSQL:创建 Postgres 数据库,把连接字符串复制到 POSTGRES_URL。
  • JWE secret:用于会话加密。推荐生成命令:openssl rand -base64 32 | tr '+/' '-_' | tr -d '=\n'
  • Encryption key:提供商令牌会加密存储,值必须是 64 位十六进制字符串。推荐生成命令:openssl rand -hex 32
  • Vercel OAuth 应用:创建 Vercel OAuth 应用并设置回调 URL:https://YOUR_DOMAIN/api/auth/vercel/callback;本地开发为 http://localhost:3000/api/auth/vercel/callback。凭据存为 NEXT_PUBLIC_VERCEL_APP_CLIENT_ID 和 VERCEL_APP_CLIENT_SECRET。
  • GitHub App:不需要单独的 GitHub OAuth 应用,Open Harness 使用 GitHub App 的用户授权流程。创建 GitHub App 并设置:Homepage URL 为 https://YOUR_DOMAIN;Callback URL 为 https://YOUR_DOMAIN/api/github/app/callback;Setup URL 为 https://YOUR_DOMAIN/api/github/app/callback;本地开发为 homepage http://localhost:3000,callback/setup http://localhost:3000/api/github/app/callback。还需启用“Request user authorization (OAuth) during installation”,使用 GitHub App 的 Client ID 和 Client Secret 作为 NEXT_PUBLIC_GITHUB_CLIENT_ID 和 GITHUB_CLIENT_SECRET,若希望组织安装顺利可把应用设为公开,生成 webhook secret,下载或生成私钥。凭据存为 NEXT_PUBLIC_GITHUB_CLIENT_ID、GITHUB_CLIENT_SECRET、GITHUB_APP_ID、GITHUB_APP_PRIVATE_KEY、NEXT_PUBLIC_GITHUB_APP_SLUG、GITHUB_WEBHOOK_SECRET。GITHUB_APP_PRIVATE_KEY 可以存为带转义换行的 PEM 内容,或 base64 编码的 PEM。
  • Redis / KV:可选。它能改善可恢复流、停止信号和缓存,但首次部署不需要。

使用方式

技能会引导用户按以下顺序操作:

  1. Fork 仓库。
  2. 在 Vercel 中从仓库根目录导入。
  3. 添加基线环境变量:POSTGRES_URL、JWE_SECRET、ENCRYPTION_KEY。
  4. 先部署一次以获得稳定的生产 URL。
  5. 用该生产 URL 创建 Vercel OAuth 应用。
  6. 添加 NEXT_PUBLIC_VERCEL_APP_CLIENT_ID 和 VERCEL_APP_CLIENT_SECRET。
  7. 重新部署。
  8. 如需完整 GitHub 流程,用生产 URL 创建 GitHub App,添加 GitHub 环境变量,再次重新部署。
  9. 可选添加 Redis/KV 和生产 URL 变量。

如果用户已有自定义域名,可以从一开始就使用该域名,而不必用默认的 vercel.app 生产 URL。

首次运行验证

最小部署:打开生产站点,用 Vercel 登录,确认成功进入应用,创建会话并确认基本 UI 加载。

完整部署还需验证:GitHub 账号关联可用;GitHub App 安装完成;安装或仓库出现在 UI 中;可以启动由仓库支持的会话;沙箱启动且智能体可以在仓库中工作。

如果失败,技能要求定位缺失的凭据或回调不匹配,而不是给出泛泛建议。

适用场景

适合需要自行部署 Open Harness 的用户,尤其是希望先完成最小可用部署、再逐步叠加 GitHub 仓库流程的场景。也适合需要明确每个环境变量来源和归属位置的部署指导。

限制与安全规则

  • 绝不要求用户把密钥粘贴到聊天中。
  • 只告诉用户每个值应放在哪里,密钥值保留在 Vercel 项目环境变量或本地环境文件中。
  • 把最小部署的阻塞项与完整 GitHub 流程的阻塞项分开。
  • 对可选内容要明确说明。
  • 技能要求先阅读仓库中的 README.md、apps/web/.env.example、apps/web/lib/db/client.ts、apps/web/lib/jwe/encrypt.ts、apps/web/lib/crypto.ts、apps/web/app/api/auth/signin/vercel/route.ts、apps/web/app/api/auth/vercel/callback/route.ts、apps/web/app/api/github/app/install/route.ts、apps/web/app/api/github/app/callback/route.ts、apps/web/lib/github/app-auth.ts、apps/web/lib/redis.ts、apps/web/lib/sandbox/config.ts 等文件,以当前代码为准。

回复格式

技能建议按以下结构回复:目标范围(最小或完整);凭据清单(现在必需与以后可选分组);如何获取每个缺失凭据(简短具体);部署步骤(只列用户下一步应做的动作);验证(部署后点击或测试什么);后续升级(Redis、GitHub、语音、自定义域名、快照覆盖,仅在相关时提及)。要求简洁,推动用户解决下一个阻塞项。