Skip to content

项目介绍

Gin-Vue-Admin 是一个全栈管理框架,专为快速开发Web应用程序而设计,具有完整的前后端分离架构。基于Go (Gin) 和Vue.js构建,提供了一个全面的开发平台,具备自动化代码生成、AI辅助开发和企业级安全特性。

快速链接

项目定位

Gin-Vue-Admin 作为企业级管理系统的基础框架,专注于为开发者提供:

  • 快速开发: AutoCode生成系统,可在1分钟内生成完整的CRUD功能
  • 企业安全: JWT认证 + Casbin RBAC授权的双重安全保障
  • 高度灵活: 动态路由、菜单管理和API配置
  • 完整文档: Swagger API文档自动生成
  • 云原生: 多云文件存储支持(本地、七牛、阿里、腾讯、华为、AWS S3、Cloudflare R2、MinIO)
  • 多数据库: 支持MySQL、PostgreSQL、SQLite和MSSQL

该系统主要面向构建管理后台、内容管理系统和需要用户管理及权限控制的业务应用的开发者。

技术栈

环境要求

  • Node.js: ≥ 20.19 或 ≥ 22.12
  • Go: ≥ 1.24
  • MySQL: ≥ 5.7 (引擎必须为 InnoDB,推荐 8.0)
  • Git: 版本控制工具

推荐使用 Docker 创建 MySQL 数据库以确保环境一致性

前端技术栈

技术版本描述
Vue.js^3.5.31渐进式JavaScript框架
Element Plus^2.13.6Vue 3 UI组件库
Pinia^2状态管理(替代Vuex)
Vue Router^4SPA路由与动态路由
Vite^8构建工具和开发服务器
UnoCSS66原子化CSS引擎(基于presetWind3)
reka-ui^2.10.0无样式基础组件库(g- 前缀全局注册)

后端技术栈

技术版本描述
Go≥ 1.24编程语言
Ginv1.10.0高性能Web框架
GORMv1.31.1ORM库,支持自动迁移
Casbinv3.10.0访问控制库(RBAC)

数据库支持

数据库版本要求说明
MySQL≥ 5.7主数据库,InnoDB引擎
PostgreSQL≥ 9.6关系型数据库替代方案
SQLiteLatest嵌入式数据库选项
MS SQL ServerLatest微软数据库支持
OracleLatest企业级数据库支持

缓存与存储

  • GVA_CACHE: 统一缓存抽象,根据配置自动选择 Memory/Redis 实现,JWT黑名单、验证码、限流计数均已迁入
  • 多云对象存储: 支持本地、七牛云、阿里云、腾讯云、华为云、AWS S3、Cloudflare R2、MinIO 共 8 种存储方式

开发工具

  • Swagger: API文档自动生成
  • Viper: 配置管理
  • Zap: 结构化日志记录
  • fsnotify: 文件系统通知

AI集成

  • API 一键生成 CLI: 将 API 一键生成为 CLI 命令行工具
  • MCP 工具与场景编排: MCP Tool/API 管理与场景编排,供 AI 代理调用
  • AI 辅助代码生成: AI 辅助生成业务代码,支持 AI 页面流式输出

核心功能

安全认证系统

  • JWT认证: 无状态的用户身份验证
  • Casbin RBAC: 基于角色的访问控制
  • 多点登录控制: 支持单点登录限制
  • API权限管理: 细粒度的接口访问控制

安全中心

  • 登录保护: 登录失败锁定、登录/IP 限流
  • 密码策略: 密码复杂度校验、密码过期与强制改密
  • API Token: 开放接口令牌管理
  • 登录日志: 登录行为记录与审计

用户权限管理

  • 用户管理: 系统管理员分配用户角色和权限
  • 角色管理: 创建权限控制对象,支持API、菜单、按钮权限分配
  • 菜单管理: 动态菜单配置,实现不同角色不同菜单
  • 按钮权限: 页面级别的操作权限控制

组织与数据权限

  • 部门管理: 组织架构与部门维护
  • 岗位管理: 岗位信息维护
  • 数据权限: 基于角色的数据范围控制,支持 5 档数据范围

快速开发工具

  • AutoCode生成器: 1分钟生成完整CRUD功能的代码生成器
  • 表单生成器: 基于 Variant Form 的可视化表单设计
  • API自动文档: Swagger自动生成API文档
  • RESTful示例: 标准的RESTful API设计参考

文件存储系统

  • 多云存储: 支持本地、七牛云、阿里云、腾讯云、华为云、AWS S3、Cloudflare R2、MinIO 共 8 种存储
  • 分片上传: 大文件分片上传功能
  • 断点续传: 文件上传中断后可继续上传
  • 文件管理: 完整的文件上传下载管理

媒体库

  • 媒体管理: 独立的媒体资源库,统一管理上传文件
  • 大文件上传: 支持大文件分片上传、断点续传与秒传

系统管理

  • 配置管理: 前台可视化配置文件修改
  • 日志管理: 系统操作日志记录和查询
  • 监控面板: 系统运行状态监控
  • 数据字典: 系统数据字典管理

定时任务

  • 数据库持久化: 任务配置持久化到数据库,服务重启后自动恢复
  • 双执行器: 支持 method 与 http 两种任务执行方式

用户界面

  • 富文本编辑器: 内置MarkDown编辑器
  • 条件搜索: 高级搜索功能示例
  • 数据导入导出: Excel数据处理功能
  • 响应式设计: 适配多种设备屏幕

主题系统

  • 主题自定义: 主题色、语义色、圆角、卡片模式、菜单风格、标签栏模式、布局模式自定义
  • 官方预设: GVA-科技蓝、GVA 经典蓝、Azir-清新蓝、暗夜深色,支持预设导入导出
  • 后台布局: 5 种布局模式(经典 normal、顶部导航 head、混合 combination、侧栏常驻 sidebar、通栏侧边 vertical),移动端 Drawer 适配
  • 基础组件库: 基于 reka-ui 的 g- 前缀全局基础组件

插件生态

  • 插件中心
    NEW
    : 基于GVA设计的Go插件中心
  • 微信集成: 微信支付、登录等功能插件
  • K8s操作: Kubernetes相关操作插件
  • 第三方登录: 多种第三方登录方式支持

如何贡献

在以任何形式的参与前,请先阅读开发指南。如有任何的意见或建议,欢迎您通过创建 IssuePR的方式告知我们。也可以选择gva 官方讨论组

WARNING

强烈推荐阅读 《提问的智慧》《如何向开源社区提问题》 ,更好的问题更容易获得帮助。

系统架构

整体架构设计

Gin-Vue-Admin 采用现代化的前后端分离架构,通过清晰的分层设计确保系统的可维护性和扩展性:

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   前端层 (Vue)   │    │   后端层 (Go)    │    │    数据层 (DB)   │
├─────────────────┤    ├─────────────────┤    ├─────────────────┤
│ • Vue 3 + Vite  │    │ • Gin Framework │    │ • MySQL/PG/...  │
│ • Element Plus  │◄──►│ • JWT + Casbin  │◄──►│ • Redis Cache   │
│ • Pinia Store   │    │ • GORM ORM      │    │ • File Storage  │
│ • Vue Router    │    │ • Swagger Docs  │    │ • Cloud Storage │
└─────────────────┘    └─────────────────┘    └─────────────────┘

系统架构图

系统架构图

核心架构组件

前端架构 (Vue.js + Vite)

  • 应用启动: main.js - 应用程序引导
  • 路由系统: Vue Router - 动态路由管理
  • 状态管理: Pinia Stores - 全局状态管理
  • 布局系统: Header, Aside, Tabs - 页面布局组件
  • 权限控制: 菜单权限、API权限、按钮权限
  • 组件库: Upload, Select, Export - 通用业务组件

后端架构 (Go + Gin)

  • 服务启动: main.go - 服务器引导程序
  • 配置系统: core.Viper - 配置管理系统
  • 认证中间件: middleware.JWT - JWT身份验证
  • 授权中间件: middleware.Casbin - 权限控制处理
  • API处理器: api.v1 - REST API处理程序
  • 业务服务: service.* - 业务逻辑服务
  • 代码生成: service.AutoCode - 自动代码生成引擎

数据架构

  • 主数据库: global.GVA_DB - 主要数据存储
  • 缓存系统: global.GVA_CACHE - 统一缓存抽象(Memory/Redis 自动选择,global.GVA_REDIS 为 Redis 客户端)
  • 文件存储: 本地/云端对象存储服务
  • 权限存储: system.CasbinRule - 策略存储

认证授权流程

mermaid
sequenceDiagram
    participant U as 用户
    participant F as 前端
    participant A as API网关
    participant S as 业务服务
    participant D as 数据库
    
    U->>F: 登录请求
    F->>A: POST /base/login
    A->>S: 验证用户凭据
    S->>D: 查询用户信息
    D-->>S: 返回用户数据
    S->>A: 生成JWT Token
    A-->>F: 返回Token
    F->>F: 存储Token
    
    U->>F: 访问受保护资源
    F->>A: 请求 + JWT Header
    A->>A: JWT验证
    A->>S: Casbin权限检查
    S-->>A: 权限结果
    A-->>F: 返回数据/拒绝访问

详细设计图

提供者: baobeisuper

详细设计图

初始化流程

系统启动时的初始化顺序确保了各组件的正确加载:

  1. 配置初始化: core.Viper - 加载配置文件
  2. 日志初始化: core.Zap - 设置日志系统
  3. 数据库连接: initialize.Gorm - 建立数据库连接
  4. 数据表注册: initialize.RegisterTables - 注册数据模型
  5. Redis连接: initialize.Redis - 建立缓存连接
  6. 路由初始化: initialize.Routers - 设置API路由
  7. 服务启动: core.RunServer - 跨平台启动HTTP服务