Open Connector
自托管

部署到 Cloudflare

使用 Cloudflare Workers、Queues、R2 与 Postgres 部署 Open Connector。

Cloudflare 是当前维护的生产部署目标。自托管是在自己的 Cloudflare 账户中运行这套拓扑, 并管理自己的数据库、密钥和 OAuth 应用。API 的 Hono 应用直接运行在 Cloudflare Worker 中。领域包仍与具体部署平台分离。

部署组件

应用运行时职责
apps/serverWorker + HyperdriveAPI、OAuth、MCP 与工具调用
apps/appWorker Static Assets控制台 SPA
apps/webWorker + Static Assets营销站
apps/fumadocsWorker + Static Assets文档站
apps/trigger-workerQueue Consumer + Cron Worker供应商事件、投递与持久恢复
apps/workerCron 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:cloudflare

Server 通过 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 配置或另一套生产调度器。 旧安装留下的云资源需要单独盘点后再退役。

On this page