部署到 Cloudflare
使用 Cloudflare Workers、Queues、R2 与 Postgres 部署 Open Connector。
Cloudflare 是当前维护的生产部署目标。自托管是在自己的 Cloudflare 账户中运行这套拓扑, 并管理自己的数据库、密钥和 OAuth 应用。API 的 Hono 应用直接运行在 Cloudflare Worker 中。领域包仍与具体部署平台分离。
部署组件
| 应用 | 运行时 | 职责 |
|---|---|---|
apps/server | Worker + Hyperdrive | API、OAuth、MCP 与工具调用 |
apps/app | Worker Static Assets | 控制台 SPA |
apps/web | Worker + Static Assets | 营销站 |
apps/fumadocs | Worker + Static Assets | 文档站 |
apps/trigger-worker | Queue Consumer + Cron Worker | 供应商事件、投递与持久恢复 |
apps/worker | Cron Worker | 每小时的计费对账 |
Postgres 保存平台状态,托管生产环境使用 Neon;Worker 通过 Hyperdrive 连接数据库。 R2 通过 S3 兼容适配器存储 Blob。
1. 配置自己的账户
准备 Node.js 22+、pnpm、Docker 和仓库依赖,然后确认 Wrangler 账户:
pnpm install
pnpm --filter server exec wrangler login
pnpm --filter server exec wrangler whoami逐一检查各应用的 wrangler.jsonc,将仓库中的生产账户 ID、域名替换为自己的值。
创建所引用的 Queue、死信队列、Hyperdrive 配置与 R2 Bucket,并替换名称、ID 和跨 Worker
绑定名称。配置引用的日志与 tracing 导出目标,或按自己的可观测性方案移除这些目标引用。
仓库目前不提供一键创建全部基础设施的工具。
API origin、CORS、OAuth 回调和前端 .env.production 必须一致。
VITE_* 会编译进公开站点资源。构建 Web 和 Docs 前,先发布 catalog 并更新 Server 的公开目录 API。
两个站点都通过 SDK 获取目录数据和枚举详情页;托管 OAuth 是否可用由 Server 返回。
2. 配置运行时密钥
各应用在 Wrangler 配置的 secrets.required 中声明必填密钥,完整配置以环境变量校验 schema
为准。例如,以下命令会提示输入密钥,不需要把值写进源码:
pnpm --filter server exec wrangler secret put DATABASE_URL --env production
pnpm --filter server exec wrangler secret put BETTER_AUTH_SECRET --env production
pnpm --filter server exec wrangler secret put CONNECTOR_ENCRYPTION_KEY --env production
pnpm --filter server exec wrangler secret put SERVER_DEPLOYMENT_CONTROL_TOKEN --env production还需配置其余必填的 OTLP、Queue 和 R2 凭证,以及部署需要的 OAuth、计费密钥。
密钥按 Worker 隔离;Server 的密钥不会自动配置到 Trigger 或计费 Worker。
SERVER_DEPLOYMENT_CONTROL_TOKEN 至少 32 个字符;如启用 Server 自动部署,
Server Worker 与 Cloudflare Workers Builds 必须保存同一个随机值。
请安全备份加密密钥。没有重新加密已有凭证就替换 CONNECTOR_ENCRYPTION_KEY,会让现有连接无法读取。
3. 准备数据库与目录
通过受保护的环境变量提供生产 DATABASE_URL 后执行:
pnpm db:migrate
pnpm tools:publish-catalog确认目标是生产数据库,避免本地 .env 误选开发库。Server 启动不会自动发布 Runtime Catalog。
使用计费功能时,在初始化或修改套餐后,通过目标数据库与 Stripe 凭证执行
pnpm --filter worker provision;这是运维命令,不是第二套定时运行时。
4. 校验并发布
从干净的源码检出执行:
pnpm deploy:cloudflare:dry-run
pnpm deploy:cloudflareServer 通过 exports 声明 Durable Object,并使用 wrangler deploy 直接部署。
部署前先按仓库部署指南
准备数据库和目录。
根命令会严格检查配置并发布全部六个应用。Server 检查绑定并部署新版本, 再执行应用准备、readiness 检查和公开 release SHA 验证。普通本地发布不会自动迁移 数据库 schema,有 schema 变更时先完成迁移。
要让 Server 从 main 自动部署,在 Cloudflare Workers Builds 中连接 apps/server,
留空构建命令,并将部署命令设为 pnpm -F @open-connector/server deploy:cloudflare。
在 Builds 中配置部署控制 token。该构建不会部署其他五个 Worker,也不会运行数据库
schema 迁移或发布 Runtime Catalog。GitHub Release 工作流只负责创建版本标签,
发布 SDK 与 CLI 产物,不再部署 Cloudflare Worker。
5. 验证与恢复
检查 API 根路径返回 200 OK,且 x-open-connector-release 与发布源码一致。
运行营销站和文档站 smoke 检查,验证控制台、一次经认证的工具调用、供应商入口以及 Queue/Cron
处理,并查看日志、trace 和指标。
Cloudflare 会保留以前的不可变 Worker 版本以便手动回滚。部署后的检查失败时,新版 Server 可能仍在接收流量;必要时手动恢复旧版本。回滚代码前确认数据库兼容性; 部署不会撤销迁移或供应商侧操作。
当前维护流程不包含 AWS/OpenTofu 配置或另一套生产调度器。 旧安装留下的云资源需要单独盘点后再退役。