MuseMVP 文档
部署

部署到 Vercel

导入仓库、接入生产服务,并通过 HTTPS 访问你的应用。

从 Git 部署 Node 应用(apps/web),接入生产 Postgres 和你已启用的服务。

开始前准备

准备本地可运行应用、自己的私有 Git 仓库、Vercel 账号和独立生产 Postgres,以及真实邮件和其他已启用凭据。可以先用生成域名,再设置自己的域名和最终回调。

1. 导入仓库

创建 Vercel 项目,导入完整 monorepo,设置 Framework Preset = Next.js、Root Directory = apps/web、Node.js = 22.x。

让构建能访问共享包和根锁文件。控制台提供访问 Root Directory 外文件选项时,为 workspace 依赖开启它。沿用应用配置,不使用官网静态导出配置。

2. 填写生产环境变量

以 apps/web/.env.example 为清单,在 Vercel Environment Variables 配置:

  • NEXT_PUBLIC_SITE_URL:当前环境的 HTTPS origin。
  • DATABASE_URL:生产 Postgres;按服务商额度调整 DATABASE_POOL_MAX。
  • BETTER_AUTH_SECRET、NEWSLETTER_TOKEN_SECRET:强度足够、稳定的生产签名密钥。
  • 真实 邮件,MAIL_PROVIDER=resend 或 cloudflare。
  • 已启用 OAuth、验证码、支付与 S3 上传的凭据/产品配置。

Preview 使用独立数据和凭据。保持 BETTER_AUTH_ENABLE_TEST_UTILS=false,不整份导入本地 seed 密码与 localhost/测试设置。

3. 执行数据库迁移

构建不会迁移数据。在独立受控发布 checkout,将 apps/web/.env.local 配为目标生产库,核实连接、备份,再运行:

pnpm db:status
pnpm db:migrate

脚本读取该文件,不是 Vercel 控制台变量。与日常开发 checkout 分开。已有自定义数据需要 增量升级,生产不运行开发 seed。

4. 部署并设置域名

部署后在项目设置添加域名,填写 Vercel 提供的 DNS 记录,等待 HTTPS 就绪。origin 变化时同步公开站点 URL、OAuth callback/信任 origin 和支付 Webhook URL,再重新部署。NEXT_PUBLIC_* 在构建时写入。

确认结果

  • HTTPS 首页与两种语言可访问。
  • 当前域名上真实登录/OTP、退出和管理员权限正常。
  • 联系邮件、启用的上传与沙盒 Webhook 完成流程。
  • 保存记录在目标数据库中持久存在。

真实流量或正式支付前,完成 上线检查清单。

常见问题

问题处理方式
找不到共享包导入完整 workspace,检查 root 外访问与根锁文件
缺少生产凭据检查部署环境范围,修改后重新部署
回调域名错误对齐构建 origin、服务商 callback 和信任 origin
数据表缺失检查迁移与部署是否指向同一数据库
API 超时检查 Vercel 计划,应用 maxDuration=300 仍受宿主限制

本页目录