# my-auto-deploy **Repository Path**: gjy/my-auto-deploy ## Basic Information - **Project Name**: my-auto-deploy - **Description**: 自动化部署和ibc代码对比工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-27 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Auto Deploy - Java Spring Boot 自动部署平台 一个轻量级的 Java Spring Boot 自动部署系统,包含 Web 管理界面。 ## 功能特性 - **服务管理**: 添加、编辑、删除服务配置 - **自动部署**: GitLab Webhook 自动触发部署 - **Git 操作**: 自动拉取代码、切换分支 - **本地构建**: 支持 Maven 和 Gradle 构建 - **进程管理**: 启动、停止、重启 jar 服务 - **健康检查**: 部署后自动检查服务健康状态 - **文件管理**: 在线浏览、编辑、创建、删除文件 - **部署记录**: 查看部署历史和状态 - **Web 界面**: React + Ant Design 管理界面 ## 技术栈 **后端:** - Java 17 - Spring Boot 3.1.5 - Spring Security - Spring Data JPA - H2 Database - JGit **前端:** - React 18 - Ant Design 5 - Axios - React Router ## 快速开始 ### 1. 配置系统 编辑 `auto-deploy-web/src/main/resources/application.yml`: ```yaml deploy: workspace: D:/deploy/workspace # 代码目录 logs: D:/deploy/logs # 日志目录 backup: D:/deploy/backup # 备份目录 maven: home: D:/Dev/apache-maven-3.9.9 # Maven 路径 java: home: D:/Program/java/jdk-17 # JDK 路径 security: webhook-secret: your-secret-token # Webhook 密钥 ``` ### 2. 构建项目 ```bash # 进入项目目录 cd D:/Project/my-auto-deploy # 构建后端 mvn clean package -DskipTests # 构建前端 (需要 Node.js) build.bat ``` ### 3. 启动服务 ```bash java -jar auto-deploy-web/target/auto-deploy-web-1.0.0-SNAPSHOT.jar ``` ### 4. 访问界面 打开浏览器访问: http://localhost:9090 - 用户名: `admin` - 密码: `admin123` ## 项目结构 ``` my-auto-deploy/ ├── pom.xml # 父项目配置 ├── build.bat # 前端构建脚本 ├── frontend/ # React 前端项目 │ ├── package.json │ ├── public/ │ └── src/ │ ├── App.js # 主应用 │ ├── index.js # 入口文件 │ ├── index.css # 样式 │ ├── services/ │ │ └── api.js # API 服务 │ └── pages/ # 页面组件 │ ├── Login.js # 登录页 │ ├── Services.js # 服务列表 │ ├── ServiceDetail.js# 服务详情 │ ├── Files.js # 文件管理 │ ├── Logs.js # 部署记录 │ └── Settings.js # 系统设置 ├── auto-deploy-common/ # 公共模块 ├── auto-deploy-core/ # 核心模块 │ └── src/main/java/.../core/ │ ├── config/ # 配置属性 │ ├── entity/ # 实体类 │ ├── enums/ # 枚举定义 │ └── repository/ # 数据访问层 ├── auto-deploy-service/ # 业务服务模块 │ └── src/main/java/.../service/ │ ├── git/ # Git 操作 │ ├── build/ # 构建服务 │ ├── process/ # 进程管理 │ ├── webhook/ # Webhook 处理 │ ├── health/ # 健康检查 │ └── deploy/ # 部署编排 └── auto-deploy-web/ # Web 应用 └── src/main/ ├── java/.../web/ │ ├── controller/ # REST 控制器 │ └── config/ # 配置类 └── resources/ └── application.yml # 配置文件 ``` ## API 接口 ### 服务管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/services` | 获取所有服务 | | GET | `/api/services/{name}` | 获取单个服务 | | POST | `/api/services` | 创建服务 | | PUT | `/api/services/{name}` | 更新服务 | | DELETE | `/api/services/{name}` | 删除服务 | ### 部署操作 | 方法 | 路径 | 说明 | |------|------|------| | POST | `/api/deploy/{name}` | 触发部署 | | POST | `/api/deploy/{name}/restart` | 重启服务 | | POST | `/api/deploy/{name}/stop` | 停止服务 | | GET | `/api/deploy/{name}/records` | 获取部署记录 | ### 文件管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/files/list?path=xxx` | 列出目录 | | GET | `/api/files/read?path=xxx` | 读取文件 | | POST | `/api/files/save` | 保存文件 | | POST | `/api/files/mkdir?path=xxx` | 创建目录 | | POST | `/api/files/create?path=xxx` | 创建文件 | | DELETE | `/api/files/delete?path=xxx` | 删除文件 | ### Webhook | 方法 | 路径 | 说明 | |------|------|------| | POST | `/api/webhook/gitlab` | GitLab Webhook | ## GitLab Webhook 配置 1. 在 GitLab 项目中进入 Settings → Webhooks 2. 填写 URL: `http://your-server:9090/api/webhook/gitlab` 3. 填写 Secret Token: 你配置的 `webhook-secret` 4. 选择 Trigger: Push events 5. 取消勾选 SSL verification (如果没有 HTTPS) ## 运行目录 ``` D:/deploy/ ├── workspace/ # Git 代码 │ └── {namespace}/{service}/ ├── logs/ # 日志 │ ├── deploy/ # 部署服务日志 │ └── services/ # 业务服务日志 ├── backup/ # JAR 备份 │ └── jars/{service}/ └── data/ # H2 数据库 ``` ## 服务配置字段 | 字段 | 类型 | 说明 | |------|------|------| | name | String | 服务名称(唯一标识) | | gitUrl | String | Git 仓库地址 | | branch | String | 分支名称 | | buildTool | MAVEN/GRADLE | 构建工具 | | port | Integer | 服务端口 | | profile | String | Spring Profile | | heapSize | String | JVM 堆大小 | | autoDeploy | Boolean | 是否自动部署 | | webhookSecret | String | Webhook 密钥 | ## 开发 ```bash # 后端开发 cd auto-deploy-web mvn spring-boot:run # 前端开发 cd frontend npm start ``` ## License MIT