Skip to content

部署与上线

上线流程围绕「后端服务 → 后台管理前端 → 移动端包体 → 文档与发布页」展开。以下步骤可根据实际环境(测试、预发、生产)调整。

后端服务

  1. 打包构建

    bash
    pnpm install
    pnpm build

    构建会将 Nest 编译输出至 dist/,并使用 @vercel/ncc 生成单文件产物 ncc-dist/index.js,便于部署。

  2. 环境变量

    • 保持 .env 与服务器环境一致,尤其是数据库、Redis、JWT 密钥。
    • 生产环境建议关闭 synchronize,仅通过迁移或 SQL 升级。
  3. 部署方式

    • Docker:基于 Node 18/20 镜像执行 node dist/main.js
    • PM2/Systemd:将仓库拉取到服务器后运行 pm2 start ecosystem.config.js(如需自建配置)。
  4. 迁移与初始化

    • 首次部署执行 pnpm migration:run 或手动导入 init.sql
    • Redis 无需额外迁移,确保开启持久化即可。
  5. 可观测性

    • 访问日志由 LoggerMiddleware 输出,可接入 Filebeat/Datadog。
    • 建议配置健康检查 /auth/refresh/token/api/mobile/v1/home/type_List

后台管理前端

  1. 构建

    bash
    pnpm install
    pnpm build

    产物默认输出到 dist/,可直接托管到 Nginx/OSS/CDN。

  2. 环境变量

    • 构建前通过 .env.production 指定后端网关,如 VITE_API_BASE=https://api.movie.example.
    • 若使用多环境,统一维护 .env.staging.env.production
  3. 静态托管

    • Nginx 示例:
      nginx
      server {
        listen 80;
        server_name admin.movie.example;
        root /var/www/movieapp-admin/dist;
        try_files $uri $uri/ /index.html;
      }
  4. 登录验证

    • 发布后需确认 auth/captcha 可渲染、auth/login 正常返回 token。
    • 首次上线请手动创建管理员账号或导入初始化数据。

移动端 App

  1. 版本号:按需求提升 app/build.gradle.kts 中的 versionCodeversionName
  2. 构建渠道包
    • Debug 包:Android Studio 直接 Build > Build Bundle(s)/APK(s) > Build APK(s)
    • Release 包:配置签名信息后执行 ./gradlew assembleRelease
  3. 配置对齐:确认 API Base URL 与后端一致,若启用走 CDN 或代理,需要在网络层统一维护。
  4. 校验数据:上线前至少访问首页、筛选、搜索、播放接口,确保对应 API 文档未遗漏字段。

文档与发布页

  1. 构建文档

    bash
    pnpm run docs:build

    生成的静态资源位于 docs/.vitepress/dist

  2. 同步发布页

    • release/ 目录存放对外页面,可独立部署或通过 Nginx 子路径托管。
    • 在发布流程中更新最新版本信息、变更摘要和下载链接。
  3. 对外发布

    • 若统一部署,可将 dist/release/ 一并放入静态站点,分别映射到 /docs/release
    • 对接 CI/CD 时,建议在流水线中加入文档构建步骤,避免遗忘。

回顾与验收

  • 发布完成后,更新 release/ 页面中的版本表格或里程碑。
  • 记录与接口相关的变动:若 API 调整,需同步通知移动端与后台前端团队。
  • 建议在迭代结束召开一次文档回顾会,确保信息与代码保持一致。