首次部署前,在 Cloudflare 创建以下资源,并将 ID 写入 wrangler.jsonc。
pnpm wrangler login
D1 数据库
pnpm wrangler d1 create tanstackship
将输出的 database_id 填入:
"d1_databases": [{
"binding": "DB",
"database_name": "tanstackship",
"database_id": "YOUR_ID",
"migrations_dir": "migrations"
}]
远程迁移(生产,每次 migrations/ 变更后):
pnpm db:migrate:remote
R2 对象存储
- Dashboard → R2 → Create bucket
- 记录 bucket 名称 →
wrangler.jsonc→r2_buckets - 可选:Settings → Public access 绑定域名 →
R2_PUBLIC_URL - Manage R2 API Tokens → 创建 Read/Write Token → 写入
R2_ACCESS_KEY_ID/R2_SECRET_ACCESS_KEY
须知
wrangler.jsonc的 R2 binding 供 Worker 内访问;S3 签名上传(管理端)仍需 API Token 环境变量。
KV 命名空间(短链)
pnpm wrangler kv namespace create LINKS
"kv_namespaces": [{ "binding": "LINKS", "id": "YOUR_KV_ID" }]
Queues(邮件与工作流)
pnpm wrangler queues create email-campaign-queue
pnpm wrangler queues create workflow-queue
名称须与 wrangler.jsonc 中 queues.producers / consumers 一致。
自定义域名
- Workers & Pages → 你的 Worker → Domains & Routes
- 添加
example.com、www.example.com - 更新环境变量:
BETTER_AUTH_URLSERVER_URLVITE_SITE_URL
- 短链子域(如
go.example.com)单独配置 DNS 与VITE_SHORT_LINK_BASE_URL
Cron
项目含月度 Cron(wrangler.jsonc → triggers.crons)。部署后可在 Dashboard 确认触发记录。