hyapp-deploly/deploy/README.md
2026-05-27 17:52:40 +08:00

65 lines
3.8 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/*` 运维查询接口。
- `mysql/initdb/`:从 hyapp-server 迁出的共享 MySQL 初始化 SQLhyapp-server 本地 compose 只引用这里,不再保留根部署目录。
- `rocketmq/`:从 hyapp-server 迁出的本地 RocketMQ broker 配置。
- `standalone/`:当前平台和 HyApp 后端服务的目标服务器 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 连接 deploy 机器 `43.164.75.199`,再由 deploy 机器 SSH 到业务机器读取真实实例、systemd、Docker、镜像、资源、端口和 CLB 权重。
- `GET /deploy/api/hyapp/discover?services=user-service&remote=1&includeConfig=1`:读取详情 YAML密钥字段脱敏。
- `GET /deploy/api/hyapp/resources?remote=1`数据资源状态。链路TAT -> deploy业务服务器配置 SSH 失败后 TAT 兜底。
- `POST /deploy/api/hyapp/deploy`:真实发布,必须带 `confirmed=true`;测试时使用 `dryRun=true`
- `POST /deploy/api/hyapp/restart`:真实重启,必须带 `confirmed=true`;测试时使用 `dryRun=true`
- `GET /deploy/api/hyapp/testbox/status`:读取测试机 test 分支、timer 和 Compose/systemd 服务状态。
- `POST /deploy/api/hyapp/testbox/service`:测试机服务 `update/start/stop/restart`,必须带 `confirmed=true`
- `POST /deploy/api/hyapp/testbox/timer`:测试机自动更新 timer `start/stop/restart`,必须带 `confirmed=true`
- `POST /deploy/api/hyapp/testbox/config`:写入测试机单服务配置,自动备份旧文件,可选保存后重启。
- `GET /deploy/api/hyapp/testbox/migrations`:只列出测试机仓库 `server/admin/migrations/*.sql`
- `POST /deploy/api/hyapp/testbox/migrations/apply`:只执行测试机仓库中的 migration 文件,必须带 `confirmed=true`
详细命令见:
- `deploy/standalone/README.md`
- `deploy/tencent_tat/README.md`
HyApp 后端仓库不再负责生产部署编排。新增或调整生产部署脚本、inventory、systemd、Docker env、托管资源边界和公共 initdb/rocketmq 配置时,都在本仓库维护。