2026-04-07 19:32:58 +08:00
2026-04-07 13:19:50 +08:00
2026-04-07 13:19:50 +08:00
2026-04-07 19:32:58 +08:00

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 生产机器清单
  • 真实腾讯云发布链路入口

真实执行脚本:

它已经接入:

  • TAT RunCommand
  • TAT DescribeInvocationTasks
  • TAT DescribeAutomationAgentStatus
  • COS 预签名下载 URL
  • gateway 发布前后 CLB 权重摘流量 / 恢复
  • 远端 /opt/release/bin/deploy.sh 的本机失败回滚
  • 平台任务遇错中止

一键启动

先把 config/prod.yaml 里的:

  • tencentcloud.secret_id
  • tencentcloud.secret_key

改成真实值,然后执行:

cd /Users/zuozuo/Desktop/HY/chat-app-deploy-platform
docker compose up -d --build

访问:

数据目录

固定持久化到:

/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.service
  • chatapp-pay.service
  • chatapp-gateway.service

下一步建议

你现在最合理的下一步是:

  1. config/prod.yaml 的腾讯云凭证改成真实值
  2. docker compose up -d --build 跑起来
  3. 在“构建任务”页面为 user / pay / gateway 创建构建任务
  4. 构建成功后,在“部署记录”页面发起 deploy / rollback / restart
Description
No description provided
Readme 214 KiB
Languages
TypeScript 45%
Go 33.8%
Python 16.2%
Shell 4.2%
Dockerfile 0.4%
Other 0.4%