项目介绍
本项目基于Gin-Vue-Admin开源前后端框架开发(特别感谢!),在此基础上做了大量精简,力图实现管理Kubernetes、应用监控和发布回滚等功能。
技术栈
- 前端框架:Element-ui、Vue
- 后台框架:Gin
部署使用
1 | - node版本 > v8.6.0 |
启动Server端
修改配置文件
1 | #克隆项目 |
初始化数据库
Windows用户
在server目录下,打开终端执行1
./initdb.bat
Linux/Mac用户
1
2
3
4# 在server目录下,先构建gva终端工具
make gva
# 使用gva初始化数据, 如果不使用make initdb, 使用./gva initdb也可以
make initdb
使用 goland等编辑工具,打开server目录1
2
3
4
5
6# 进入server目录安装go依赖包
go list (go mod tidy)
# 编译
go build -o gin-vue-devops
# 启动服务
./gin-vue-devops
启动Web端
1 | # 进入web前端目录 |
Swagger自动化API文档
1 | #安装swagger |
执行上面的命令后,server目录下会出现docs文件夹,登录http://localhost:8888/swagger/index.html, 即可查看swagger文档
项目架构
技术选型
- 前端:用基于
vue
的Element-UI
构建基础页面。 - 后端:用
Gin
快速搭建基础restful风格API,Gin
是一个go语言编写的Web框架。 - 数据库:采用
MySql
(5.6.44)版本,使用gorm
实现对数据库的基本操作。 - 缓存:使用
Redis
实现记录当前活跃用户的jwt
令牌并实现多点登录限制。 - API文档:使用
Swagger
构建自动化文档。 - 配置文件:使用
viper
实现yaml
格式的配置文件。 - 日志:使用
zap
实现日志记录。
系统架构图
后端
前端
功能预览
目录结构
1 | ├─server (后端文件夹) |
主要功能
- 权限管理:基于
jwt
和casbin
实现的权限管理 - 角色管理:创建权限控制的主要对象,可以给角色分配不同api权限和菜单权限。
- 菜单管理:实现用户动态菜单配置,实现不同角色不同菜单。
- api管理:不同用户可调用的api接口的权限不同。
- 表单生成器:表单生成器借助 @form-generator。
- 代码生成器:后台基础逻辑以及简单curd的代码生成器。
- Kubernetes管理:包括NameSpace、Deployment、Pod容器等资源对象。
计划任务
- 完善Kubernetes资源对象管理
- 应用创建部署、回滚
- 其他