hyapp-deploly/deploy/README.md
2026-05-20 16:49:19 +08:00

53 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`