# Deploy Platform Deployment 当前项目可以作为独立前端服务部署,不依赖 `/Users/hy/Documents/hy/hyapp-server` 的部署目录。 目录职责: - `server.mjs`:同源运行 `dist` 静态文件和 `/deploy/api/*` 运维查询接口。 - `standalone/`:目标服务器 systemd + Docker 安装模板。 - `tencent-tat/`:发布机通过腾讯云 TAT 调度远端重启和镜像更新,包含当前平台自身发布脚本和 HyApp 微服务发布脚本。 最小部署链路: 1. 本地或 CI 执行 `npm run build` 生成 `dist`。 2. 执行 `npm run deploy:serve`,一个 Node 进程同时运行 `dist` 静态站点和 `deploy` API。 3. 发布机构建并推送 `deploy-platform` 镜像。 4. 目标机安装 `hyapp-deploy-platform.service` 和 `/etc/hyapp/deploy-platform/docker.env`。 5. 发布机执行 `deploy/tencent-tat/deploy_platform_tat_deploy.py deploy` 发布当前平台。 6. 平台服务端调用 `deploy/tencent-tat/hyapp_tat_deploy.py` 查询或发布 HyApp 后端服务。 本地一键运行: ```bash npm run deploy:run ``` 已有 `dist` 时直接运行: ```bash npm run deploy:serve ``` 默认监听 `13200`,可通过 `DEPLOY_API_PORT` 覆盖。 腾讯云凭据读取顺序: 1. 优先读取当前进程环境变量 `TENCENTCLOUD_SECRET_ID`、`TENCENTCLOUD_SECRET_KEY`、`TENCENTCLOUD_REGION`。 2. 未设置环境变量时,`deploy/server.mjs` 会读取 `TENCENT_CREDENTIALS_FILE` 指向的文件;未指定时默认读取仓库根目录 `.env`。 3. 区域未写入凭据时,HyApp 发布脚本使用 inventory 中的 `region`。 真实接口: - `GET /deploy/api/health`:只返回凭据是否存在,不返回密钥明文。 - `GET /deploy/api/hyapp/inventory`:读取 HyApp 生产 inventory。 - `GET /deploy/api/hyapp/plan?services=gateway-service,room-service`:生成发布计划,不执行远端动作。 - `GET /deploy/api/hyapp/discover?services=user-service&remote=1`:通过 Tencent TAT 读取真实实例、容器、端口和 CLB 权重。 - `POST /deploy/api/hyapp/deploy`:真实发布,必须带 `confirmed=true`;测试时使用 `dryRun=true`。 - `POST /deploy/api/hyapp/restart`:真实重启,必须带 `confirmed=true`;测试时使用 `dryRun=true`。 详细命令见: - `deploy/standalone/README.md` - `deploy/tencent-tat/README.md`