源码湾 源码湾

go-admin 后台管理系统:Go 单二进制,权限与代码生成开箱即用

源码湾
1小时前发布
资源信息 Go 源码包,编译即用。
版本
v2.8.0
授权
MIT
体积
1.0 MB
语言
Go
数据库
MySQL / SQLite
夸克网盘 无提取码 下载

今日下载 0 累计下载 0 还剩 7 个

后台管理系统是重复劳动的重灾区:用户、角色、菜单、日志,每个项目都要从头写一遍,权限判断写得一塌糊涂的也不在少数。Java 那套要装 JDK、导依赖、启动半分钟;纯前端模板又只有壳,后端接口和权限还是得自己补。

go-admin 把这块底子铺好了。后端是 Go + Gin + GORM,编译出来一个二进制跑全部;权限用 RBAC 加 Casbin 策略,登录鉴权走 JWT,操作日志、数据字典、任务调度、Swagger 接口文档都内置。v2.8.0,MIT 协议。我在 Windows 11 上从源码构建:编译 5 秒,迁移建出 24 张表,冷启动 748 毫秒可连,15 张界面截图共 162 次请求、0 个 4xx/5xx、0 个 JS 报错。

它是前后端分离的结构:后端只出接口,管理界面在配套的前端工程里。整套跑通不难,但有两个坑要先知道——包内自带的 SQLite 演示库必须带特定标签编译,version 子命令报的版本号也和发布标签对不上。下面把命令、数字和坑一起写清楚。

go-admin 是什么,和若依差在哪

一句话:它不是成品系统,是一套「把后台管理通用部分都写好」的基础平台,你在上面继续写业务。

  • 后端 Go + Gin + GORM,编译产物是单个二进制,部署不用装运行时
  • 权限是 RBAC 模型加 Casbin 策略引擎,用户、角色、菜单、部门四件套开箱即有
  • 前后端分离,界面是独立的 Vue 3 + Element Plus 工程
  • 内置代码生成器、操作日志、登录日志、数据字典、任务调度、Swagger 文档

和站里写过的若依对比着看更清楚。若依是 Java 全栈(Spring Boot + Vue),社区里工作流、报表这些二开积累厚,但部署要 JDK,包也大;go-admin 是 Go 后端,一个二进制、内存占用小,适合后端团队本来就是 Go 的场合。二者定位相同——都是让你别再把用户和权限重新写一遍。

我的测试环境

  • Windows 11(10.0.26200),Go 1.27.3,Node 22.22.2,pnpm 10.9.7
  • MySQL 8.0.29,新建库 goadmin_ymw(utf8mb4)
  • 源码包 844,299 字节,解压后 410 个文件、88 个目录
  • 项目要求 Go 1.27.1 或更高;同一份源码在 Linux 上的命令与 Windows 完全一致,下一节直接给

安装:Windows

先装好 Go 工具链(1.27.1 以上),解压源码包,构建:

tar -xzf go-admin-v2.8.0.tar.gz
cd go-admin-2.8.0
go build -o go-admin.exe .

本轮实测构建 exit 0、用时 5 秒,产物 go-admin.exe 72,260,096 字节。不需要 cgo、不需要 GCC,这条默认命令即可(MySQL / PostgreSQL 配置下)。

安装:Linux

命令与 Windows 一字不差:

tar xzf go-admin-v2.8.0.tar.gz
cd go-admin-2.8.0
go build -o go-admin .
./go-admin migrate -c config/settings.yml
./go-admin server -c config/settings.yml

Go 是跨平台编译,同一份源码两侧产物行为一致。唯一注意点:要用包内自带的 SQLite 演示库,必须加 -tags sqlite3 且本机装有 GCC(cgo),否则启动即报错——详见后面「两个真实的坑」。

配置数据库与初始化

数据库四选一:MySQL 5.7+、PostgreSQL、SQL Server、SQLite,配置都在 config/settings.yml 里,改 database 段的 driver 与 source 即可。

本轮用的是 MySQL:先建库(utf8mb4),再执行迁移:

go-admin.exe migrate -c config/settings.yml

实测 9.19 秒完成,输出 applied 15 migration(s),共建立 24 张表。包内还带了一份现成的 SQLite 演示库(go-admin-db.db)和对应的 settings.sqlite.yml,只想快速看效果可以先跑它。

启动与登录

go-admin.exe server -c config/settings.yml

默认监听 8000 端口,本轮冷启动到首个 200 响应用了 748 毫秒。验证接口:GET / 返回 200(578 字节的欢迎页),Swagger 文档在 /swagger/admin/index.html,验证码接口 /api/v1/captcha 返回 200。

后台账号是 admin / 123456。后端本身不渲染管理界面——配套前端工程(Vue 3 + Element Plus + Vite)装依赖后 pnpm build:prod 构建(本轮 18.62 秒,产出 dist 共 281 个文件),把 dist 用任意静态服务托管、并把 /api 反向代理到 8000,浏览器打开就能登录。一级菜单 5 个,用户管理、角色管理、菜单管理、部门管理、操作日志、登录日志、服务监控、Swagger 文档都在里面,另有一个示例模块演示商品管理。

实测数据

本轮全部数字来自当次运行,环境见「我的测试环境」:

  • 源码包:844,299 字节;解压 0.18 秒,410 文件 / 88 目录
  • 构建:exit 0,5 秒;go-admin.exe 72,260,096 字节
  • 迁移:9.19 秒,applied 15 migration(s),建表 24 张
  • 启动:748 毫秒到首个 200;GET / 返回 200,0.0074 秒
  • 登录:POST /api/v1/login 返回 200,token 长度 285(admin/123456,验证码字段填 0000)
  • 菜单:GET /api/v1/menu 返回 200,一级菜单 5 个
  • 前端构建:pnpm build:prod 18.62 秒,dist 281 文件 / 8,037,780 字节
  • 截图:桌面 12 张 + 手机 3 张,共 162 次请求,4xx/5xx 0 个,JS 报错 0 个

界面长什么样

go-admin 登录页

登录页是居中卡片式表单,输入 admin / 123456 即可进入后台。

go-admin 控制台首页

控制台首页顶部是一排统计卡片,下方是信息区块;左侧深色菜单栏列出所有功能入口。

go-admin 菜单管理

菜单管理是树形结构加编辑表格:左侧菜单树、右侧按需展开的新增与编辑区域,层级关系一目了然。

go-admin 服务监控

系统工具里的服务监控页,展示服务器运行状态信息。

go-admin Swagger 接口文档

内置的 Swagger 接口文档,登录、用户、菜单等接口分组列出,参数与响应结构都能直接展开看。

go-admin 手机端控制台

手机浏览器打开同样可用,页面自动收窄为单列布局,菜单收进顶部。

两个真实的坑

第一个,SQLite 演示库不是默认构建能跑的。 包内带了一份 go-admin-db.db 演示库,但直接 go build 出来的二进制里没有 sqlite3 驱动,初始化时会报:

database driver sqlite3 is not in this build

原因是 sqlite3 驱动依赖 CGO,必须 go build -tags sqlite3 -o go-admin . 并且本机装 GCC。嫌麻烦就直接用 MySQL,默认构建就支持。

第二个,version 子命令报的版本号对不上发布标签。 本轮下载的是 v2.8.0 标签归档,但 go-admin.exe version 输出的是 2.4.0——项目自身版本常量没有同步。判断版本以你下载的标签和包内变更记录为准,不影响运行。

另外提醒一句:后端 8000 端口只出接口和欢迎页,浏览器打开看不到管理界面是正常的,别当 bug 排查半天。

上线部署

  • Linux:systemd 服务托管后端二进制,前端 dist 交给 Nginx,/api 反代到 8000;不建议把 8000 直接对外开放
  • Windows:用 nssm 或任务计划程序把 go-admin.exe 常驻
  • 生产配置记得改 JWT 密钥与默认端口、换掉默认账号密码

这几类人适合,这几类不适合

适合:

  • 后端用 Go、想省掉用户/角色/菜单/日志这些通用模块的团队
  • 手上后台项目多,需要一套统一权限底座的
  • 想要代码生成器快速出 CRUD 页面的

不适合:

  • 想要一个开箱即用的成品系统直接上生产的——它是平台,业务要自己写
  • 本机没有 Go 工具链也不想装的人——本项目不提供预编译二进制
  • 业务深度依赖 Java 生态(工作流、报表插件)的——这种情况若依更顺手

常见问题

源码获取

建议先转存到自己网盘再下载。手机上打开链接点右下角「保存到网盘」,回头在夸克 App 的「我的网盘」里下载。

实测说明

本文截图全部来自本站实测环境(源码湾 yuanmawan.com),实测版本 go-admin v2.8.0,许可证 MIT。

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
OωO
取消