# mkfree-deploy **Repository Path**: oyhk/mkfree-deploy ## Basic Information - **Project Name**: mkfree-deploy - **Description**: Mkfree Deploy 自动化部署系统,为什么重复造轮子,不是有Jenkins吗?jenkins功能更加强大了,为什么不使用?开发这玩意纯粹是玩玩,顺便学习一下前端。 mkfree-deploy 一个web部署系统工具,配置简单、功能完善、界面流畅、开箱即用!支持git版本管理,支持各种web代码发布,PHP,Python,JAVA等代码的发布、回滚,可以通过web来一键完成。 - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/oyhk/mkfree-deploy - **GVP Project**: No ## Statistics - **Stars**: 123 - **Forks**: 48 - **Created**: 2017-01-24 - **Last Updated**: 2026-03-11 ## Categories & Tags **Categories**: manage-monitor **Tags**: None ## README # Mkfree Deploy 自动化运维系统 ### 简述 - Mkfree Deploy 自动化部署系统,为什么重复造轮子,不是有Jenkins吗?Jenkins功能更加强大了,为什么不使用?开发这玩意纯粹是玩玩,顺便学习一下前端。 - Mkfree Deploy 一个web部署系统工具,配置简单、功能完善、界面流畅、开箱即用!支持Git版本管理,支持各种web代码发布,PHP,Python,Java等代码的发布、回滚,可以通过web来一键完成。 - 其实还有很多功能没有完善。 - 之前的版本是使用 Typescript 开发,现在用 Java + React 重写整个项目。 - 轻量级部署工具 - 有任何疑问添加QQ:381895649 ### 技术栈(2.0 版本) - **后端**:Java 25、Spring Boot 4.0.2、Spring Data JPA、MySQL、Hibernate - **前端**:React 18、Umi 4、Ant Design 6、TypeScript - **构建工具**:Maven、pnpm --- ## 快速开始(2.0 版本) ### 生产环境一键部署 ```bash # 1. 克隆项目 git clone cd mkfree-deploy # 2. 运行部署脚本 ./deploy.sh prod ``` ### 其他命令 ```bash # 只构建(不启动) ./deploy.sh build # 开发环境启动 ./deploy.sh dev # 查找系统中所有可用的 JDK ./deploy.sh find-jdk # 显示帮助信息 ./deploy.sh help ``` 脚本会自动完成: - ✅ 检查环境依赖(Java、Maven、Node.js、pnpm 等) - ✅ 自动配置 JDK(支持自定义 JAVA_HOME) - ✅ 创建必要的目录 - ✅ 构建前端 - ✅ 打包后端 - ✅ 启动应用 **多 JDK 版本支持:** 如果服务器上有多个 JDK 版本,部署脚本会提示你输入 JAVA_HOME 路径。你也可以使用命令查找系统中的所有 JDK: ```bash ./deploy.sh find-jdk ``` ### 访问应用 部署成功后,访问:http://localhost:5001 默认账号: - 用户名:`admin` - 密码:`admin123` **⚠️ 请登录后立即修改默认密码!** --- ## 环境要求 ### 必需 - **JDK 25** (推荐) 或 JDK 21+ - **Maven 3.6+** - **Node.js 16+** - **MySQL 5.7+** 或 **MySQL 8.0+** ### 可选(用于部署功能) - **Git** - 代码拉取 - **rsync** - 文件同步 - **sshpass** - SSH 密码认证 --- ## 配置说明 ### 数据库配置 编辑 `backend/src/main/resources/application-prod.properties`: ```properties spring.datasource.url=jdbc:mysql://your-host:3306/mkfree_deploy spring.datasource.username=your-username spring.datasource.password=your-password ``` ### 环境切换 - 开发环境:`spring.profiles.active=dev` - 生产环境:`spring.profiles.active=prod` 配置文件位置:`backend/src/main/resources/application.properties` --- ## 手动部署 ### 开发环境 ```bash # 使用统一脚本启动开发环境 ./deploy.sh dev # 或手动启动 cd backend source setup-jdk.sh mvn spring-boot:run ``` ### 生产环境 ```bash # 使用统一脚本部署 ./deploy.sh prod # 或手动构建和启动 ./deploy.sh build cd backend ./start-prod.sh ``` --- ## 常用命令 ```bash # 查看应用日志 tail -f /var/log/mkfree-deploy/console.log tail -f /var/log/mkfree-deploy/application.log # 停止应用 kill $(cat /tmp/mkfree-deploy.pid) # 重启应用 cd backend && ./start-prod.sh ``` --- ## 目录结构 ``` mkfree-deploy/ ├── backend/ # 后端代码 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ # Java 源码 │ │ │ └── resources/ # 配置文件和静态资源 │ ├── pom.xml # Maven 配置 │ ├── setup-jdk.sh # JDK 环境配置 │ ├── restart.sh # 开发环境重启脚本 │ └── start-prod.sh # 生产环境启动脚本 ├── frontend/ # 前端代码 │ ├── src/ # React 源码 │ ├── package.json # 依赖配置 │ └── .umirc.ts # Umi 配置 ├── deploy.sh # 统一部署脚本(支持 prod/build/dev/find-jdk) ├── DEPLOYMENT.md # 详细部署文档 └── CLAUDE.md # 开发指南 ``` --- ## 功能特性 - 📊 **仪表盘** - 实时统计和监控 - 🚀 **项目管理** - 多项目、多环境配置 - 🖥️ **服务器管理** - 服务器信息和状态管理 - 🌍 **环境配置** - 灵活的环境配置 - 📦 **自动部署** - Git 拉取、构建、同步一键完成 - 📝 **部署日志** - 实时查看部署过程 - 📈 **部署历史** - 完整的部署记录 - ⚙️ **系统配置** - 动态配置管理 --- ## 文档 - [部署文档](DEPLOYMENT.md) - 详细的部署指南和检查清单 - [开发文档](CLAUDE.md) - 代码规范和开发指南 --- ## 故障排查 ### 应用启动失败 ```bash # 查看启动日志 tail -50 /var/log/mkfree-deploy/console.log # 常见问题: # 1. 端口被占用 - 检查 5001 端口是否被占用 # 2. 数据库连接失败 - 检查数据库配置和网络连接 # 3. Java 版本不匹配 - 确保使用 JDK 21+ ``` ### 部署功能异常 ```bash # 检查依赖 which git which rsync which sshpass # 查看部署日志 # 在应用中查看实时部署日志 ``` --- ## 安全建议 1. ✅ 修改默认管理员密码 2. ✅ 配置防火墙规则 3. ✅ 使用 HTTPS(配置 Nginx 反向代理) 4. ✅ 定期备份数据库 5. ✅ 限制 SSH 访问权限 --- ## 版本历史 - **2.0** - 使用 Java + Spring Boot + React 重写 - **1.x** - TypeScript + Nestjs + React 版本 ---