部署指南

Cloudflare 资源

创建并绑定 D1、R2、KV、Queues 与自定义域名。

首次部署前,在 Cloudflare 创建以下资源,并将 ID 写入 wrangler.jsonc。

bash
pnpm wrangler login

D1 数据库

bash
pnpm wrangler d1 create tanstackship

将输出的 database_id 填入:

jsonc
"d1_databases": [{
  "binding": "DB",
  "database_name": "tanstackship",
  "database_id": "YOUR_ID",
  "migrations_dir": "migrations"
}]

远程迁移(生产,每次 migrations/ 变更后):

bash
pnpm db:migrate:remote

R2 对象存储

  1. Dashboard → R2 → Create bucket
  2. 记录 bucket 名称 → wrangler.jsonc → r2_buckets
  3. 可选:Settings → Public access 绑定域名 → R2_PUBLIC_URL
  4. Manage R2 API Tokens → 创建 Read/Write Token → 写入 R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEY

须知

wrangler.jsonc 的 R2 binding 供 Worker 内访问;S3 签名上传(管理端)仍需 API Token 环境变量。

KV 命名空间(短链)

bash
pnpm wrangler kv namespace create LINKS
jsonc
"kv_namespaces": [{ "binding": "LINKS", "id": "YOUR_KV_ID" }]

Queues(邮件与工作流)

bash
pnpm wrangler queues create email-campaign-queue
pnpm wrangler queues create workflow-queue

名称须与 wrangler.jsonc 中 queues.producers / consumers 一致。

自定义域名

  1. Workers & Pages → 你的 Worker → Domains & Routes
  2. 添加 example.com、www.example.com
  3. 更新环境变量:
    • BETTER_AUTH_URL
    • SERVER_URL
    • VITE_SITE_URL
  4. 短链子域(如 go.example.com)单独配置 DNS 与 VITE_SHORT_LINK_BASE_URL

Cron

项目含月度 Cron(wrangler.jsonc → triggers.crons)。部署后可在 Dashboard 确认触发记录。