部署
发布检查清单
在引入真实流量前验证环境、迁移、认证、计费和存储。
通用门禁
pnpm type-check
pnpm check:error
pnpm lint:ws
pnpm test:unit
pnpm apps:parity
pnpm build这些命令不证明真实外部服务可用。确认 .source/ 由 install/dev/build 生成,未手改;记录 SCENARIOS.md 是否更新或已有覆盖,并报告未运行的检查。
部署差异
| Node:Vercel/Docker | Workers |
|---|---|
apps/web,Node 22.x;Vercel Root Directory = apps/web | apps/web-cloudflare,OpenNext + Wrangler |
生产 Postgres 备份、pnpm db:status / pnpm db:migrate | pnpm db:migrate:d1:remote / pnpm db:migrate:d1:status --strict |
| S3 凭据、bucket CORS、公开读前缀 | DB / R2_BUCKET 绑定、pnpm cf:typegen |
| 真实 Resend 或 Cloudflare 邮件,禁用 console | Cloudflare Email Sending,真实凭据与发送域名 |
| Docker 从仓库根构建,公开变量用 build args | 公开变量在 Worker 构建环境设置,服务端密钥在 Worker 注入 |
手动与自动验收
- 两语言首页/docs/blog/legal、导航和 sitemap/robots;不存在被移除页面的悬空链接。
- 实际生产 origin、OAuth callback 与可信 origin;登录、OTP、退出、过期、onboarding、2FA。
- 未登录拒绝、普通用户不能进 admin、会话服务错误不是错误登录跳转;模拟登录有提示且可退出。
- 沙盒结账、签名 Webhook、续费/取消/退款、权益与客户门户;错误网关/产品不会显示成功。
- 本人头像与资产上传/下载/删除、跨用户 key 拒绝、存储未配置和空列表。
- 联系表单、newsletter 与签名退订;凭据/个人数据不出现在客户端或日志。
Node 运行 pnpm test:api 和相关 pnpm test:e2e;Workers 运行 pnpm cf:preview 检查真实绑定路径。当前 test:e2e:cf 不替代 Wrangler 验证,见 测试。
生产不要 seed 开发账号,不启用 Better Auth testUtils,不设置跳过环境校验掩盖缺失;旧库升级先在克隆演练增量迁移。保留回滚构建与数据库恢复方案。