go-admin基于Gin + Vue + Element UI的前后端分离权限管理系统
✨ 特性
-
遵循 RESTful API 设计规范
-
基于 GIN WEB API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪ID等)
-
基于Casbin的 RBAC 访问控制模型
-
JWT 认证
-
支持 Swagger 文档(基于swaggo)
-
基于 GORM 的数据库存储,可扩展多种类型数据库
-
配置文件简单的模型映射,快速能够得到想要的配置
-
TODO: 单元测试
🎁 内置
- 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
- 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
- 岗位管理:配置系统用户所属担任职务。
- 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
- 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
- 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
- 参数管理:对系统动态配置常用参数。
- 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
- 登录日志:系统登录日志记录查询包含登录异常。
- 系统接口:根据业务代码自动生成相关的api接口文档。
配置详情
- 配置文件说明
settings:
application:
# 项目启动环境
env: dev
# 当 env:demo 时,GET以外的请求操作提示
envmsg: "谢谢您的参与,但为了大家更好的体验,所以本次提交就算了吧!"
# 主机ip 或者域名,默认0.0.0.0
host: 0.0.0.0
# 是否需要初始化数据库结构以及基本数据;true:需要;false:不需要
isinit: false
# JWT加密字符串
jwtsecret: 123abc
# log存放路径
logpath: temp/logs/log.log
# 服务名称
name: go-admin
# 服务端口
port: 8000
readtimeout: 1
writertimeout: 2
database:
# 数据库名称
database: dbname
# 数据库类型
dbtype: mysql
# 数据库地址
host: 127.0.0.1
# 数据库密码
password: password
# 数据库端口
port: 3306
# 数据库用户名
username: root
redis:
# redis链接地址
addr: 0.0.0.0:6379
# db
db: 0
# 密码
password: password
# 读超时时长
readtimeout: 50
- 文件路径 go-admin/src/goadmin/config/settings.yml
📦 本地开发
首次启动说明
# 获取代码
git clone https://github.com/wenjianzhang/go-admin.git
# 进入工作路径
cd ./goadmin/src/goadmin
# 编译项目
go build
# 修改配置
vi ./config/setting.yml (更改isinit和数据库连接)
# 1. 配置文件中修改数据库信息
# 注意: settings.database 下对应的配置数据)
# 2. 确认数据库初始化参数
# 注意: settings.application.isinit 如果是首次启动,请把当前值设置成true,系统会自动初始化数据库结构以及基本的数据信息;
# 3. 确认log路径
# 启动项目,也可以用IDE进行调试
./goadmin
# 也可以在WIKI中查看说明
文档生成
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-03-15 新功能及优化
- 添加用户头像上传
- 添加用户密码修改
- 操作日志页面调整
- 优化验证码背景色
看到好多体验的朋友验证码错误,所以调整了对比度,方便大家体验!
🤝 特别感谢
License
Copyright (c) 2020 wenjianzhang
添加微信号: zwj891129 进入技术交流微信群 请备注,谢谢!