# 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-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: devops, 轻量 ## README # DevOps自动化部署平台 专为中小项目设计的轻量级DevOps工具,一键可运行。基于 SpringBoot + Vue3 的自动化部署平台,支持 Linux 服务器管理、GitLab 源码拉取、Maven 编译、项目启停控制等功能。 > 在线演示:http://123.60.94.158:18080/ ## 项目架构 ``` 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格式) - 日志清空 ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - Node.js 16+ - npm 8+ ### 后端启动 ```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 | 测试连接 | | DELETE | /api/server/batch | 批量删除 | ### Git配置 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/git | 获取Git配置列表 | | POST | /api/git | 创建Git配置 | | PUT | /api/git/{id} | 更新Git配置 | | DELETE | /api/git/{id} | 删除Git配置 | | POST | /api/git/{id}/pull | 拉取代码 | | GET | /api/git/{id}/branches | 获取分支列表 | ### Maven配置 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/maven | 获取Maven配置列表 | | POST | /api/maven | 创建Maven配置 | | PUT | /api/maven/{id} | 更新Maven配置 | | DELETE | /api/maven/{id} | 删除Maven配置 | | GET | /api/maven/templates | 获取命令模板 | | POST | /api/maven/{id}/compile | 执行编译 | ### 项目管理 | 方法 | 路径 | 说明 | |------|------|------| | 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. **防火墙**:确保服务器防火墙允许相应端口的访问 ## 后续优化方向 - 用户权限管理 - 部署流水线编排 - 实时监控与告警 - 容器化支持(Docker/Kubernetes) - 多环境管理(开发/测试/生产) - 版本回滚功能 ## 许可证 MIT License