go-admin 基于 Gin + Vue + Element UI 的前后端分离权限管理系统
go-admin
基于Gin + Vue + Element UI的前后端分离权限管理系统
初始化极度简单,只需要配置文件中,修改数据库连接,系统启动后会自动初始化数据库信息以及必须的基础数据
✨ 特性
遵循 RESTful API 设计规范
基于 GIN WEB API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪ID等)
基于Casbin的 RBAC 访问控制模型
JWT 认证
支持 Swagger 文档(基于swaggo)
基于 GORM 的数据库存储,可扩展多种类型数据库
配置文件简单的模型映射,快速能够得到想要的配置
代码生成工具
表单构建工具
多命令模式
TODO: 单元测试
🎁 内置
- 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
- 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
- 岗位管理:配置系统用户所属担任职务。
- 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
- 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
- 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
- 参数管理:对系统动态配置常用参数。
- 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
- 登录日志:系统登录日志记录查询包含登录异常。
- 系统接口:根据业务代码自动生成相关的api接口文档。
- 代码生成:根据数据表结构生成对应的增删改查相对应业务,全部可视化编程。
- 表单构建:自定义页面样式,拖拉拽实现页面布局。
- 服务监控:查看一些服务器的基本信息。
⚙ 配置详情
配置文件说明
settings: application: # 项目启动环境 mode: dev # dev开发环境 test测试环境 prod线上环境;当 mode:demo 时,GET以外的请求操作提示 demomsg: "谢谢您的参与,但为了大家更好的体验,所以本次提交就算了吧!" host: 0.0.0.0 # 主机ip 或者域名,默认0.0.0.0 # 服务名称 name: go-admin # 服务端口 port: 8000 readtimeout: 1 writertimeout: 2 log: # 日志文件存放路径 dir: temp/logs jwt: # JWT加密字符串 secret: go-admin # 过期时间单位:秒 timeout: 3600 database: # 数据库名称 name: dbname # 数据库类型 dbtype: mysql # 数据库地址 host: 127.0.0.1 # 数据库密码 password: password # 数据库端口 port: 3306 # 数据库用户名 username: root
文件路径 go-admin/config/settings.yml
📦 本地开发
首次启动说明
# 获取代码
git clone https://github.com/wenjianzhang/go-admin.git
# 进入工作路径
cd ./go-admin
# 编译项目
go build
# 修改配置
vi ./config/setting.yml
# 1. 配置文件中修改数据库信息
# 注意: settings.database 下对应的配置数据
# 2. 确认log路径
初始化数据库,以及服务启动
# 首次配置需要初始化数据库资源信息
./go-admin init -c config/settings.yml -m dev
# 启动项目,也可以用IDE进行调试
./go-admin server -c config/settings.yml -p 8000 -m dev
文档生成
swag init
如果没有swag命令 go get安装一下即可
go get -u github.com/swaggo/swag/cmd/swag
交叉编译
env GOOS=windows GOARCH=amd64 go build main.go
# or
env GOOS=linux GOARCH=amd64 go build main.go
🔗 在线体验
admin / 123456
📈 版本
2020-04-23 新功能及优化
- 添加单服务命令
- 添加单数据库数据化命令
- 调整项目结构
- 部分代码优化
- 添加根接口
- 其他已知bug的修复
2020-04-13 新功能及优化
- 数据库初始化方式改为gorm 迁移方式
- 删除原有创建、修改时间和is_del字段,改用gorm 原生逻辑删除功能
- 添加服务监控基础指标
- 框架结构调整
- 部分代码优化
- 其他已知bug的修复
2020-04-08 新功能及优化
- 添加sqlite3的支持
- 数据库字段格式统一
- 用户新增bug修复
- 修改数据初始化脚本
- 验证码改为数字验证
- 删除redis暂时无用组件
- 其他已知bug的修复
2020-04-01 新功能及优化
- 代码生成器
- 代码优化
- 已知bug修复
2020-03-15 新功能及优化
- 添加用户头像上传
- 添加用户密码修改
- 操作日志页面调整
- 优化验证码背景色
看到好多体验的朋友验证码错误,所以调整了对比度,方便大家体验!
📨 互动
![]() |
![]() |
![]() |
微信 | 此群已满 | ![]() |
🤟 打赏
如果你觉得这个项目帮助到了你,你可以帮作者买一杯果汁表示鼓励
❤️ 赞助者
zhuqiyun
🤝 特别感谢
chengxiao
gin
casbin
spf13/viper
gorm
gin-swagger
jwt-go
vue-element-admin
ruoyi-vue
License
Copyright (c) 2020 wenjianzhang
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
支持一波
:+1:
厉害
:+1:
在线演示好像凉了
牛逼
大佬能不提供表结构SQL数据L
很屌的,看过一些类似的,接口没有遵循RESTful规范,pass。这个很符合我心理的期望。
很不错,学习一波
nb。。。大佬这真不错。
go build就报这个啥情况 :flushed:
在线演示是要炸服务器吗,大家打开试试,疯狂的请求接口,疯狂的报错,哈哈
大佬现在还能打开在线演示吗