部署
部署
生成器会根据 --target 只保留一个平台的配置。先确认
nextdevtpl.generated.json 中的 target,完成生产迁移和环境变量配置,再执行
对应流程。
通用发布门禁
pnpm install --frozen-lockfile
pnpm lint
pnpm typecheck
pnpm test:run
pnpm build
生产 URL 至少同步到 NEXT_PUBLIC_APP_URL 和 BETTER_AUTH_URL。OAuth 回调、支付
webhook、Inngest、对象存储 CORS 等外部后台也要使用正式域名。
Server
要求 Node.js 24、pnpm 10、PostgreSQL 和 systemd。
- 填写
.env.production,把它留在服务器安全目录。 - 生成并审核首次迁移:
pnpm db:generate:init。 - 加载生产环境后执行
pnpm deploy:server:build。 - 上传
.release/,按实际用户和路径调整deploy/server/nextdevtpl.service。 - 通过 Nginx、Caddy 等反向代理提供 TLS,并转发原始协议和主机头。
详细文件说明见 deploy/server/README.md。
Docker Compose
Compose 包含 PostgreSQL、一次性迁移服务和应用服务,数据库使用 named volume。
docker compose --env-file .env.production up -d --build
至少修改 POSTGRES_PASSWORD、BETTER_AUTH_SECRET 和站点 URL。migrate 成功后
应用才启动;升级前先备份 named volume 或外部数据库。详见
deploy/docker/README.md。
Vercel
- 把项目导入 Vercel,使用 Node.js 24 和 pnpm。
- 在各环境填写生成后的
.env.example所需变量。 - 在本机或单实例发布任务运行
pnpm db:migrate。 - 发布应用,配置 OAuth、支付和 Inngest 回调。
- 用正式域名做健康检查。
不要把迁移放进 Vercel buildCommand,并发构建可能重复执行迁移。Vercel 目标
适合 Neon、S3 Compatible、Upstash 和 Inngest,实际组合以生成清单为准。
Cloudflare Workers
Cloudflare 目标使用 OpenNext。生成器会输出 open-next.config.ts、Worker 入口、
wrangler.jsonc 和 cf:* 脚本,并按选择加入 R2、AI、Email、Workflow 和 Rate
Limiting Binding。
- 创建并绑定实际资源,检查
wrangler.jsonc中的服务名和 bucket 配置。 - 用
wrangler secret put写入DATABASE_URL、认证密钥和供应商凭证。 - 生成 Worker 类型并构建:
pnpm cf:check
pnpm cf:types
pnpm cf:build
pnpm exec wrangler deploy --dry-run --minify
- 部署:
pnpm cf:deploy
Workers 首版数据库使用 Neon HTTP 或 Hyperdrive 连接 PostgreSQL。D1 不在 3.x 支持范围内。Worker 包使用 console logger,并移除 Pino 的 Node 文件写入依赖。
上线检查
四种目标都提供 /api/health:
pnpm deploy:check -- https://your-domain.example/api/health
返回 HTTP 200 且 status 为 healthy 后,再验证登录、数据库和所选支付、邮件、
存储、AI、任务、限流流程。健康接口不会返回密钥原值。