介绍一个基于Gin + Vue + Element UI/Arco Design/Ant Design的前后端分离权限管理系统,该系统提供了丰富的中间件支持、RBAC访问控制模型、JWT认证、Swagger文档等功能。

特性

  • 遵循 RESTful API 设计规范
  • 基于 GIN WEB API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪ID等)
  • 基于Casbin的 RBAC 访问控制模型
  • JWT 认证
  • 支持 Swagger 文档(基于swaggo)
  • 基于 GORM 的数据库存储,可扩展多种类型数据库
  • 配置文件简单的模型映射,快速能够得到想要的配置
  • 代码生成工具
  • 表单构建工具
  • 多指令模式
  • 多租户的支持

内置功能

  • 多租户:系统默认支持多租户,按库分离,一个库一个租户。
  • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  • 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  • 岗位管理:配置系统用户所属担任职务。
  • 菜单管理:配置系统菜单,操作权限,按钮权限标识,接口权限等。
  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  • 参数管理:对系统动态配置常用参数。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 登录日志:系统登录日志记录查询包含登录异常。
  • 接口文档:根据业务代码自动生成相关的api接口文档。
  • 代码生成:根据数据表结构生成对应的增删改查相对应业务,全程可视化操作,让基本业务可以零代码实现。
  • 表单构建:自定义页面样式,拖拉拽实现页面布局。
  • 服务监控:查看一些服务器的基本信息。
  • 内容管理:demo功能,下设分类管理、内容管理。可以参考使用方便快速入门。
  • 定时任务:自动化任务,目前支持接口调用和函数调用。

准备工作

  • 需要在本地安装 Go、Gin、Node 和 Git。
  • 可以通过系列教程学习该项目使用方法。

本地开发

环境要求

  • Go 1.18
  • Node版本: v14.16.0
  • Npm版本: 6.14.11

开发目录创建

  1. 创建开发目录:mkdir goadmin && cd goadmin
  2. 获取后端代码:git clone https://github.com/go-admin-team/go-admin.git
  3. 获取前端代码:git clone https://github.com/go-admin-team/go-admin-ui.git

启动说明

服务端启动说明

  • 进入 go-admin 后端项目:cd ./go-admin
  • 更新整理依赖:go mod tidy
  • 编译项目:go build
  • 修改配置文件路径 go-admin/config/settings.yml,并修改其中的数据库信息。
  • 首次配置需要初始化数据库资源信息:macOS 或 Linux:./go-admin migrate -c config/settings.dev.ymlWindows: go-admin.exe migrate -c config/settings.dev.yml
  • 启动项目:macOS 或 Linux:./go-admin server -c config/settings.yml,Windows: go-admin.exe server -c config/settings.yml
  • 在启动项目时,使用 -a true 参数可以自动添加缺少的接口数据:./go-admin server -c config/settings.yml -a true
  • 如果需要使用 Docker 编译和启动:编译镜像:docker build -t go-admin .启动容器,其中 go-admin 是容器名字,go-admin-server 是镜像名称:
    docker run --name go-admin -p 8000:8000 -v /config/settings.yml:/config/settings.yml -d go-admin-server

UI交互端启动说明

  • 安装依赖:npm install。建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题:npm install
  • 启动服务:npm run dev。

在线体验

账号密码:

  • 账号:admin
  • 密码:123456