部署指南
将 NimBuild Starter 应用部署到生产环境。
前提条件
部署前确保你有:
- PostgreSQL 数据库
- Stripe 账号和 API Key
- Resend API Key 和已验证发送域名
- Firebase 项目和 service account 凭据
- AI 工具使用的火山引擎 API 凭据
- (可选)Cloudflare R2 或 S3 兼容存储
部署
1. 数据库迁移
首次部署后:
pnpm db:push2. 配置 Webhook
在 Stripe Dashboard 中设置 webhook URL:
https://your-domain.com/api/payments/stripe/webhook3. 设置定时任务
用于年付订阅积分发放,配置每小时调用:
curl -H "Authorization: Bearer YOUR_CRON_SECRET" \
https://your-domain.com/api/cron/subscription-grants用于处理过期积分 bucket,再配置第二个定时任务:
curl -H "Authorization: Bearer YOUR_CRON_SECRET" \
https://your-domain.com/api/cron/credit-expiry4. 创建管理员账户
ADMIN_EMAIL=admin@example.com pnpm admin:setup5. 验证环境
确保生产环境 .env 的以下值正确:
NEXT_PUBLIC_APP_URL— 实际域名NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN— Firebase Auth 域名FIREBASE_CLIENT_EMAIL和FIREBASE_PRIVATE_KEY— Firebase Admin service account 凭据RESEND_API_KEY— Resend API KeyRESEND_FROM_EMAIL— 交易邮件使用的已验证发件地址RESEND_REPLY_TO— 可选默认回复地址VOLCENGINE_API_KEY、VOLCENGINE_BASE_URL和VOLCENGINE_MODEL— AI 工具 provider 配置CRON_SECRET或CRON_JOBS_USERNAME+CRON_JOBS_PASSWORD— 定时任务鉴权
部署后检查清单
- 数据库已迁移
- Stripe 中已配置 Webhook URL
- 订阅积分发放和积分过期定时任务已设置
- 管理员账户已创建
- 生产邮件使用的 Resend 发送域名已验证
- Firebase authorized domains 已包含生产域名
- 火山引擎 AI provider 凭据已配置
- 如使用分析工具,其 Key 已配置