嗨,我是小华同学,专注解锁高效工作与前沿AI工具!每日精选开源技术、实战技巧,助你省时50%、领先他人一步。👉免费订阅,与10万+技术人共享升级秘籍!
go-admin 是一个基于 Gin + Vue 的前后端分离权限管理脚手架,内置多租户、用户/角色/菜单/部门等基础管理,Casbin RBAC 权限模型、JWT 鉴权、GORM 数据访问、Swagger 文档、表单构建器 与 可视化代码生成器 等能力,帮助你 3 分钟搭建自己的中后台。项目提供 Element UI(Vue2)/ Arco Design(Vue3)/ Ant Design 三套前端演示与默认账号,方便即开即用。
go-admin 直接把这些“八股”做成了开箱即用的能力:
-
后端基于 Gin,提供中间件(鉴权、跨域、访问日志、Trace ID 等); -
权限采用 Casbin 的 RBAC 模型; -
鉴权使用 JWT; -
数据访问基于 GORM,可扩展多种数据库; -
接口文档由 Swaggo/Swagger 生成; -
代码生成器 + 表单构建器 将常见业务的增删改查做成“所见即所得”的可视化流程。
痛点场景
-
重复造轮子:用户、角色、菜单、部门、字典、参数、日志、监控……几乎每个后台都要做一遍。go-admin 已做成“内置模块”,直接启用。 -
权限难统一:接口权限、按钮权限、数据权限经常割裂;go-admin 以 Casbin RBAC 为核心,统一模型、统一授权。 -
交付周期紧:业务 CRUD 和表单配置占了大量时间;借助 代码生成器 + 表单构建器,根据表结构和拖拽配置即可生成完整前后端代码与页面。 -
接入门槛:新同学上手难?项目自带 Swagger 文档、演示站与视频教程,极大缩短学习曲线。
核心功能
-
RESTful 规范接口:接口风格统一、可读性强。 -
Gin 中间件体系:用户鉴权、跨域、访问日志、Trace ID 等常用能力开箱即用。 -
Casbin RBAC 权限:角色-菜单-按钮-接口粒度的权限控制,支持按组织划分数据范围。 -
JWT 鉴权:轻量安全的登录态管理与服务端校验。 -
Swagger 文档:基于 swaggo 自动生成接口文档,便于调试联调。 -
GORM 数据访问:数据库抽象良好,支持多类型数据库的扩展。 -
代码生成器:读取数据表结构,一键生成增删改查业务,全过程可视化。 -
表单构建器:拖拽式定制页面样式与布局,快速拼装业务表单。 -
多命令启动: migrate
初始化数据库资源,server
启动服务,流程清晰。 -
内置管理模块:用户、部门、岗位、菜单、角色、字典、参数、操作日志、登录日志、服务监控、内容管理等常见模块。
技术架构
架构图
关键技术选型与优势
领域 | 选型 | 说明 |
---|---|---|
Web 框架 | Gin | 生态成熟、性能优、社区大,配合中间件体系上手快。 |
权限模型 | Casbin(RBAC) | 规则清晰、粒度细,可统一按钮/接口/数据权限。 |
鉴权 | JWT | 轻量、跨端通用,易与网关/前端协同。 |
ORM | GORM | 屏蔽多数据库差异,便于迁移与扩展。 |
文档 | Swaggo/Swagger | 自动生成接口文档,降低联调成本。 |
低门槛 | 代码生成器 + 表单构建器 | 从“数据表 → 业务 CRUD / 表单页面”一键打通。 |
界面效果
使用方法
1)准备目录并获取代码
# 新建目录
mkdir goadmin && cd goadmin# 获取后端
git clone https://github.com/go-admin-team/go-admin.git# 获取前端(与后端放在同一目录)
git clone https://github.com/go-admin-team/go-admin-ui.git
2)编译后端并修改配置
cd ./go-admin# 更新依赖
go mod tidy# 编译
go build# 修改配置(数据库、日志路径等)
vi ./config/settings.yml
3)初始化数据库并启动后端服务
# 初始化数据库资源(macOS/Linux)
./go-admin migrate -c config/settings.dev.yml# Windows
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
4)启动前端交互端
# 切回前端目录(与后端同级)
cd ../go-admin-ui# 安装依赖
npm install # 或 cnpm install# 启动前端
npm run dev
5)Docker 一键运行(可选)
# 在 go-admin 后端目录
docker build -t go-admin .# 启动容器(-v 映射配置文件)
docker run --name go-admin -p 8000:8000 \
-v /config/settings.yml:/config/settings.yml -d go-admin-server
(命令以 README 提供为准)
6)跨平台编译(可选)
# Windows 可执行文件
env GOOS=windows GOARCH=amd64 go build main.go# Linux 可执行文件
env GOOS=linux GOARCH=amd64 go build main.go
应用场景
-
企业内部中后台:客服工单、库存管理、渠道管理、OA/人事等。 -
多租户 SaaS 管理端:按租户/组织维度隔离数据与权限,快速搭建运营平台。 -
数据看板与运维平台:结合服务监控、操作日志与登录日志,统一运维观测入口。 -
内容管理(CMS/活动配置):利用字典/参数与表单构建器,快速拼装内容配置后台。 -
BFF/网关后的后台接口层:RESTful + Swagger 文档,配合测试与联调更顺畅。
同类对比
维度 | go-admin-team/go-admin | GoAdminGroup/go-admin | flipped-aurora/gin-vue-admin |
---|---|---|---|
Stars(参考) | 12.3k | ~8.7k | ~23.6k |
技术栈 | Gin + Vue(Element/Arco/Antd) | Go + 多框架适配(gin/beego/echo等),主题化 Admin 面板 | Gin + Vue3 + Vite(前端),丰富后台基建 |
权限模型 | Casbin RBAC(角色、按钮、接口、数据范围) | 内置 RBAC | JWT + Casbin 权限、动态路由/菜单 |
代码生成 | 根据表结构可视化一键生成 CRUD | 提供插件化与主题,强调 10 分钟面板 | 提供代码生成器、表单生成器 |
文档/演示 | 多演示站 + Swagger 文档 + 视频教程 | 在线 Demo + 主题库 | 在线 Demo,基础用例完善 |
生态/扩展 | 内置用户/部门/岗位/菜单/字典/参数/日志/监控/内容等模块 | 主题与插件生态,适配多 Web 框架 | 前端工程化完善,适配 Vue3/Vite |
适用场景 | 业务落地快、权限细、低代码生成 | 多框架接入、快速搭建管理面板 | 前后端分离快速开发、AI/企业级案例丰富 |
产品优势小结
-
上手速度:三步法(配置 → 迁移 → 启动),3 分钟起步,前端三套演示任选。 -
低代码提效:可视化代码生成与表单构建,覆盖 80% 常规后台场景。 -
权限一体化:Casbin RBAC + JWT + 数据范围,接口/按钮/菜单/数据权限统一口径。 -
工程化完善:Swagger 文档、操作/登录日志、服务监控模块内置,交付“可观测、可追溯”。
技术细节与最佳实践
-
配置即约定: config/settings.yml
统一管理数据库、日志等关键配置,修改后即可切换环境。 -
数据库初始化: migrate
命令一次性创建初始资源与菜单/权限基线,避免手动插入的不可控。 -
开发/调试:配合 Swagger 文档与前端演示站,形成“mock → 接口 → 页面”的闭环自测流程。 -
日志与监控:操作/登录日志、服务监控模块默认具备;建议与企业统一日志平台/监控系统打通。 -
跨平台交付:通过 env GOOS=... GOARCH=...
完成跨编译,便于在多环境部署。
总结
面对高度同质化的企业后台基建,go-admin 把“重复劳动”做成了标准件 + 低代码工具:
-
用 Casbin RBAC + JWT 保证权限模型的通用与可解释; -
用 GORM + Swagger 保证工程化交付的稳健与可协同; -
用 代码生成器 + 表单构建器 把“表结构 → 页面/接口”的路径变成“可视化的一键动作”。 配合三套在线演示与视频教程,新同学可以当天上手、当周交付原型。如果你要在 Go 生态内做一个“既能跑、又能扩”的中后台,go-admin 是非常务实的选择。
项目地址
https://github.com/go-admin-team/go-admin