baa-conductor

git clone 

baa-conductor / ops / cloudflare
im_wower  ·  2026-03-22

README.md

 1# Cloudflare Worker / D1 操作约定
 2
 3本目录只负责 `apps/control-api-worker` 的最小部署骨架,不包含真实 Cloudflare 账号信息。
 4
 5## 绑定与入口
 6
 7- Worker 配置文件:`apps/control-api-worker/wrangler.jsonc`
 8- Worker 名称:`baa-conductor-control-api`
 9- 入口文件:`dist/index.js`
10- 自定义域:`control-api.makefile.so`
11- D1 binding:`CONTROL_DB`
12- D1 数据库名模板:`baa-conductor-control-prod`
13
14当前 Worker 代码和部署配置统一使用以下运行时变量:
15
16- 普通变量:`CONTROL_API_VERSION`、`CONTROL_API_AUTH_REQUIRED`
17- Secret:`BAA_SHARED_TOKEN`、`CONTROL_API_BROWSER_ADMIN_TOKEN`、`CONTROL_API_CONTROLLER_TOKEN`、`CONTROL_API_OPS_ADMIN_TOKEN`、`CONTROL_API_READONLY_TOKEN`、`CONTROL_API_WORKER_TOKEN`
18
19## 首次部署前
20
211.`apps/control-api-worker/wrangler.jsonc` 中的 `database_id` / `preview_database_id` 替换成真实 D1 UUID。
222.`control-api-worker.secrets.example.env` 为模板,准备不入库的 secret 清单。
233. 确保本机已配置 `CLOUDFLARE_API_TOKEN`,或者已通过 `wrangler login` 完成鉴权。
24
25## 推荐命令
26
27应用远端 D1 migrations:
28
29```bash
30./ops/cloudflare/apply-control-api-d1-migrations.sh
31```
32
33构建并部署 Worker:
34
35```bash
36./ops/cloudflare/deploy-control-api-worker.sh
37```
38
39查看线上日志:
40
41```bash
42cd apps/control-api-worker
43npx --yes wrangler@4 tail --config wrangler.jsonc
44```
45
46## Secret 下发
47
48建议按 `control-api-worker.secrets.example.env` 的键名逐个执行:
49
50```bash
51cd apps/control-api-worker
52printf '%s' 'replace-me' | npx --yes wrangler@4 secret put BAA_SHARED_TOKEN --config wrangler.jsonc
53```
54
55其余 `CONTROL_API_*_TOKEN` secret 同理。`CONTROL_API_AUTH_REQUIRED` 已在 `wrangler.jsonc` 里固定为 `"true"`,因此生产环境缺失 secret 时会直接拒绝请求,而不是静默降级为匿名访问。