# app-deploy-platform 一个面向你当前场景的发布控制台: - 不使用 CI 构建 - 由平台所在的构建机自动查找本地 `user / pay / gateway` Git 仓库 - 找到后自动 `git fetch / checkout / pull` 并产出制品 - 平台自动把构建产物上传到 COS 并登记版本 - 平台统一发起部署、回滚、重启 - 平台配置和腾讯云凭证统一放在 `config/prod.yaml` ## 技术栈 - 后端:Go + Gin + GORM - 前端:React + Material UI + Vite - 数据库:Postgres - 缓存:Redis - 后台任务:RocketMQ - 部署:Docker Compose ## 当前能力 已实现: - 构建任务创建 - 本地源码仓库自动发现 - 自动拉取 Gitea 代码、构建、打包、上传 COS - 主机管理 - 服务实例管理 - 版本自动登记 - 部署任务创建 - 回滚任务创建 - 重启任务创建 - `/health` `/ready` 状态巡检 - RocketMQ 任务队列 - 启动时自动预置你的 chatapp 生产机器清单 - 真实腾讯云发布链路入口 真实执行脚本: - [tencent_operator.py](/Users/zuozuo/Desktop/HY/chat-app-deploy-platform/ops-scripts/tencent_operator.py) - [build_operator.py](/Users/zuozuo/Desktop/HY/chat-app-deploy-platform/ops-scripts/build_operator.py) 它已经接入: - TAT `RunCommand` - TAT `DescribeInvocationTasks` - TAT `DescribeAutomationAgentStatus` - COS 预签名下载 URL - gateway 发布前后 CLB 权重摘流量 / 恢复 - 远端 `/opt/release/bin/deploy.sh` 的本机失败回滚 - 平台任务遇错中止 ## 一键启动 先把 [config/prod.yaml](/Users/zuozuo/Desktop/HY/chat-app-deploy-platform/config/prod.yaml) 里的: - `tencentcloud.secret_id` - `tencentcloud.secret_key` 改成真实值,然后执行: ```bash cd /Users/zuozuo/Desktop/HY/chat-app-deploy-platform docker compose up -d --build ``` 访问: - 前端:[http://localhost:18090](http://localhost:18090) - 后端健康检查:[http://localhost:18080/api/healthz](http://localhost:18080/api/healthz) - Postgres:`127.0.0.1:55432` - Redis:`127.0.0.1:56379` ## 数据目录 固定持久化到: ```text /opt/build_cache/app-deploy-platform/postgres /opt/build_cache/app-deploy-platform/redis /opt/build_cache/app-deploy-platform/rocketmq ``` ## 配置文件 主配置文件在: - [config/prod.yaml](/Users/zuozuo/Desktop/HY/chat-app-deploy-platform/config/prod.yaml) 它统一包含: - 平台端口 - Postgres / Redis / RocketMQ 连接 - 腾讯云 `SecretId / SecretKey` - 构建工作区和本地仓库扫描目录 - COS bucket - TAT 配置 - CLB 配置 - `user / pay / gateway` 实例清单 ## 推荐落地方式 ### 1. 构建机 平台容器需要运行在构建机上,并具备: - 本地源码目录 `../chat-app` - 构建缓存目录 `/opt/build_cache/app-deploy-platform/builds` - 用于拉取 Gitea 仓库的 SSH Key,默认挂载 `${HOME}/.ssh -> /root/.ssh` 构建入口在“构建任务”页面。每次点击构建后,平台会: - 优先在 `/workspace/source/chat-app` 下查找匹配仓库 - 自动 `git fetch / checkout / pull` - 执行 `go test ./...` - 执行 Go build 并打成 `user.tgz / pay.tgz / gateway.tgz` - 生成 `.sha256` - 上传到 `releases/prod///...` - 自动写入版本库 ### 2. 平台 平台负责: - 展示版本 - 展示主机和服务健康状态 - 发起部署、回滚、重启 - 通过 RocketMQ 异步执行任务 - 调用腾讯云 TAT / CLB / COS ### 3. 服务器 服务器侧前提保持不变: - 已安装 TAT Agent - 已存在 `/opt/release/bin/deploy.sh` - `chatapp-user.service` - `chatapp-pay.service` - `chatapp-gateway.service` ## 下一步建议 你现在最合理的下一步是: 1. 把 [config/prod.yaml](/Users/zuozuo/Desktop/HY/chat-app-deploy-platform/config/prod.yaml) 的腾讯云凭证改成真实值 2. 用 `docker compose up -d --build` 跑起来 3. 在“构建任务”页面为 `user / pay / gateway` 创建构建任务 4. 构建成功后,在“部署记录”页面发起 `deploy / rollback / restart`