# light-devops **Repository Path**: ly8848/light-devops ## Basic Information - **Project Name**: light-devops - **Description**: 专为中小项目设计的轻量级的devops,一键可运行。基于 SpringBoot + Vue3 的 DevOps 自动化部署平台,支持 Linux 服务器管理、GitLab 源码拉取、Maven 编译、项目启停控制等功能。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-28 - **Last Updated**: 2026-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: devops, 轻量 ## README # DevOps自动化部署平台 专为中小项目设计的轻量级的devops,一键可运行。基于 SpringBoot + Vue3 的 DevOps 自动化部署平台,支持 Linux 服务器管理、GitLab 源码拉取、Maven 编译、项目启停控制等功能。 作者: sunlight001 ## 项目架构 ``` devops-platform/ ├── backend/ # SpringBoot 后端 │ ├── src/main/java/com/devops/platform/ │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器 │ │ ├── service/ # 业务逻辑 │ │ ├── repository/ # 数据访问 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ ├── vo/ # 视图对象 │ │ ├── utils/ # 工具类 │ │ └── exception/ # 异常处理 │ └── pom.xml ├── frontend/ # Vue3 前端 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── views/ # 页面视图 │ │ ├── router/ # 路由配置 │ │ └── utils/ # 工具函数 │ └── package.json └── README.md ``` ## 技术栈 ### 后端 - **SpringBoot 3.2.0** - 核心框架 - **Spring Data JPA** - 数据持久化 - **H2 Database** - 开发数据库(可切换MySQL) - **JGit** - Git操作 - **JSch** - SSH连接 - **Hutool** - 工具库 - **Lombok** - 代码简化 ### 前端 - **Vue 3.4** - 前端框架 - **TypeScript** - 类型支持 - **Element Plus** - UI组件库 - **Vue Router** - 路由管理 - **Pinia** - 状态管理 - **Axios** - HTTP请求 - **Vite** - 构建工具 ## 核心功能 ### 1. Linux服务器配置管理 - 服务器信息的增删改查 - SSH连接配置(IP、端口、用户名、密码AES加密存储) - 连通性测试 - 批量删除 ### 2. GitLab源码拉取 - Git仓库配置管理 - 支持HTTP/HTTPS协议 - 分支/标签选择 - 代码拉取(克隆/更新) - 拉取前清空旧代码选项 ### 3. Maven编译 - 自定义编译命令 - 常用命令模板(clean package、clean install等) - Maven环境检测 - 实时编译日志 ### 4. 项目端口管理 - 项目配置管理 - 端口占用检测 - 进程管理(查看PID、杀死进程) - 项目启动/停止/重启 - 启动状态检测 ### 5. 操作日志 - 全流程日志记录 - 按类型/项目/时间筛选 - 日志导出(CSV格式) - 日志清空 ## 快速开始 ### 后端启动 ```bash cd backend mvn clean install mvn spring-boot:run ``` 后端服务将启动在 http://localhost:8080 ### 前端启动 ```bash cd frontend npm install npm run dev ``` 前端服务将启动在 http://localhost:3000 ### 访问应用 打开浏览器访问 http://localhost:3000 ## API接口 ### 服务器管理 - `GET /api/server` - 获取服务器列表 - `POST /api/server` - 创建服务器配置 - `PUT /api/server/{id}` - 更新服务器配置 - `DELETE /api/server/{id}` - 删除服务器配置 - `POST /api/server/{id}/test` - 测试连接 ### Git配置 - `GET /api/git` - 获取Git配置列表 - `POST /api/git` - 创建Git配置 - `PUT /api/git/{id}` - 更新Git配置 - `DELETE /api/git/{id}` - 删除Git配置 - `POST /api/git/{id}/pull` - 拉取代码 ### Maven配置 - `GET /api/maven` - 获取Maven配置列表 - `POST /api/maven` - 创建Maven配置 - `PUT /api/maven/{id}` - 更新Maven配置 - `DELETE /api/maven/{id}` - 删除Maven配置 - `POST /api/maven/{id}/compile` - 执行编译 - `GET /api/maven/templates` - 获取命令模板 ### 项目管理 - `GET /api/project` - 获取项目列表 - `POST /api/project` - 创建项目配置 - `PUT /api/project/{id}` - 更新项目配置 - `DELETE /api/project/{id}` - 删除项目配置 - `GET /api/project/{id}/port-check` - 检测端口占用 - `POST /api/project/{id}/kill` - 杀死进程 - `POST /api/project/{id}/start` - 启动项目 - `POST /api/project/{id}/stop` - 停止项目 - `POST /api/project/{id}/restart` - 重启项目 ### 日志管理 - `GET /api/log` - 获取日志列表 - `GET /api/log/search` - 搜索日志 - `DELETE /api/log/clear` - 清空日志 - `GET /api/log/export` - 导出日志 ## 配置说明 ### 后端配置 (application.yml) ```yaml server: port: 8080 spring: datasource: url: jdbc:h2:file:./data/devops-platform driver-class-name: org.h2.Driver username: sa password: encryption: aes: key: your-aes-key-here ``` ### 前端配置 (vite.config.ts) 开发环境代理配置: ```typescript server: { proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true } } } ``` ## 注意事项 1. **安全性**:密码使用AES加密存储,生产环境请修改加密密钥 2. **服务器权限**:确保配置的用户具有足够的SSH权限执行相关操作 3. **Maven环境**:目标服务器需要预先安装Maven环境 4. **端口范围**:确保配置的端口在有效范围内(1-65535) 5. **防火墙**:确保服务器防火墙允许相应端口的访问 ## 后续优化方向 1. 用户权限管理 2. 部署流水线编排 3. 实时监控与告警 4. 容器化支持(Docker/Kubernetes) 5. 多环境管理(开发/测试/生产) 6. 版本回滚功能 ## 许可证 MIT License