跳转到内容

Cloudflare Workers 部署

该形态下:ProxyAdmin 各为一个 Worker共享同一 D1(绑定名 DB)。这是 OctaFuse 的默认生产路径——个人与小流量通常可在 Workers / D1 免费额度内完成部署与日常使用。

Terminal window
git clone https://github.com/OctaFuse/octafuse-gateway.git
cd octafuse-gateway
npm install
npx wrangler login
npm run bootstrap:cloudflare

脚本会:创建或复用 D1 → 远程迁移 → 部署 Proxy / Admin → 写入 ADMIN_PASSWORD Secret → 打印下游 GATEWAY_* 提示。

后续发版:

Terminal window
npm run deploy:cloudflare -- <instance> --migrate # 有新 D1 SQL 时带 --migrate
npm run deploy:cloudflare -- <instance> # 仅重新部署

本机先试用、不上云:见 快速开始 · 本机启动

层级说明
packages/*/wrangler.base.jsonc已提交模板(无生产 database_id
packages/proxy/wrangler.jsonc生成产物(gitignore),由 gen:wrangler 写入
cloudflare-worker/example.envdev 演示 canonical 配置(可提交)
cloudflare-worker/<instance>.env生产/私有(gitignore);或仅用 Dashboard Build variables

gen-wrangler 只读 环境变量process.env),不关心来自 Dashboard 还是 dotenv -e 文件。

路径何时用
本地开发本机改代码、本地 D1(见 快速开始
dev 演示公共测试 test-api.octafuse.devexample.env + CLI)
Workers BuildsConnect to Git 自动发版(D1 迁移仍需手动)

执行过 deploy:*db:migrate:remote 后,本机生成的 wrangler.jsonc 可能带有远程 D1_DATABASE_ID。回到本地开发前,请在没有导出 D1_DATABASE_ID 的 shell 中执行 npm run gen:wrangler,再重启 dev:proxy / dev:admin

Root directory 留空(monorepo 根)。npm cipostinstall 会跑 gen:wrangler

WorkerBuild commandDeploy command
Proxynpm ci && npm run gen:wranglernpm run deploy -w @octafuse/proxy
Adminnpm ci && npm run gen:wrangler && npm run build:cf -w @octafuse/admincd packages/admin && npx opennextjs-cloudflare deploy
  • ADMIN_PASSWORD:bootstrap 会写入;也可 npx wrangler secret put ADMIN_PASSWORD --name <ADMIN_WORKER_NAME>
  • 下游门户:GATEWAY_URL(Proxy)、GATEWAY_MASTER_URL(Admin)、GATEWAY_MASTER_KEY(D1 system_config.MASTER_KEY)。种子为 sk-dev-admin-key 时须在 Admin Config 轮换
  • 默认 / 边缘 / 免自备服务器 → 本页(Cloudflare)。
  • 数据驻留、内网、BYO Postgres/MySQLDocker 部署