app-deploy-platform
一个面向你当前场景的发布控制台:
- 不使用 CI 构建
- 由平台所在的构建机自动查找本地
user / pay / gatewayGit 仓库 - 找到后自动
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 生产机器清单
- 真实腾讯云发布链路入口
真实执行脚本:
它已经接入:
- TAT
RunCommand - TAT
DescribeInvocationTasks - TAT
DescribeAutomationAgentStatus - COS 预签名下载 URL
- gateway 发布前后 CLB 权重摘流量 / 恢复
- 远端
/opt/release/bin/deploy.sh的本机失败回滚 - 平台任务遇错中止
一键启动
先把 config/prod.yaml 里的:
tencentcloud.secret_idtencentcloud.secret_key
改成真实值,然后执行:
cd /Users/zuozuo/Desktop/HY/chat-app-deploy-platform
docker compose up -d --build
访问:
- 前端:http://localhost:18090
- 后端健康检查:http://localhost:18080/api/healthz
- Postgres:
127.0.0.1:55432 - Redis:
127.0.0.1:56379
数据目录
固定持久化到:
/opt/build_cache/app-deploy-platform/postgres
/opt/build_cache/app-deploy-platform/redis
/opt/build_cache/app-deploy-platform/rocketmq
配置文件
主配置文件在:
它统一包含:
- 平台端口
- 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/<release_id>/<service>/... - 自动写入版本库
2. 平台
平台负责:
- 展示版本
- 展示主机和服务健康状态
- 发起部署、回滚、重启
- 通过 RocketMQ 异步执行任务
- 调用腾讯云 TAT / CLB / COS
3. 服务器
服务器侧前提保持不变:
- 已安装 TAT Agent
- 已存在
/opt/release/bin/deploy.sh chatapp-user.servicechatapp-pay.servicechatapp-gateway.service
下一步建议
你现在最合理的下一步是:
- 把 config/prod.yaml 的腾讯云凭证改成真实值
- 用
docker compose up -d --build跑起来 - 在“构建任务”页面为
user / pay / gateway创建构建任务 - 构建成功后,在“部署记录”页面发起
deploy / rollback / restart
Description
Languages
TypeScript
45%
Go
33.8%
Python
16.2%
Shell
4.2%
Dockerfile
0.4%
Other
0.4%