Home

Awesome

<h1 align="center">Gin Web</h1> <div align="center"> 由gin + gorm + jwt + casbin组合实现的RBAC权限管理脚手架Golang版, 搭建完成即可快速、高效投入业务开发 <p align="center"> <img src="https://img.shields.io/github/go-mod/go-version/piupuer/gin-web" alt="Go version"/> <img src="https://img.shields.io/badge/Gin-1.6.2-brightgreen" alt="Gin version"/> <img src="https://img.shields.io/badge/Gorm-1.9.12-brightgreen" alt="Gorm version"/> <img src="https://img.shields.io/github/license/piupuer/gin-web" alt="License"/> </p> </div>

特性

中间件

默认菜单

在线演示(前端静态文件已上传至阿里云OSS, 访问速度飞起)

传送门 <br/> 日志收集器Grafana传送门 (test/123456) <br/> Minio对象存储 (minio/minio123)

快速开始

git clone https://github.com/piupuer/gin-web
cd gin-web
# 强烈建议使用golang官方包管理工具go mod, 无需将代码拷贝到$GOPATH/src目录下
# 确保go环境变量都配置好, 运行main文件
go run main.go

启动成功之后, 可在浏览器中输入: http://127.0.0.1:10000/api/ping, 若不能访问请检查Go环境变量或数据库配置是否正确

文档(逐步完善中)

一、安装步骤

二、nginx配置反向代理去除端口(筹备中)

项目结构概览

├── api
│   └── v1 # v1版本接口目录(类似于Java中的controller), 如果有新版本可以继续添加v2/v3
├── conf # 配置文件目录(包含测试/预发布/生产环境配置参数及casbin模型配置)
├── docker-conf # docker相关配置文件
├── initialize # 数据初始化目录
├── logs # 日志文件默认目录(运行代码是生成)
├── middleware # 中间件目录
├── models # 存储层模型定义目录
├── pkg # 公共模块目录
│   ├── cache_service # redis缓存服务目录
│   ├── global # 全局变量目录
│   ├── redis # redis查询工具目录
│   ├── request # 请求相关结构体目录
│   ├── request # 响应相关结构体目录
│   ├── service # 数据DAO服务目录
│   ├── utils # 工具包目录
│   └── wechat # 微信接口目录
├── router # 路由目录
├── tests # 本地单元测试配置目录
├── upload # 上传文件默认目录
├── Dockerfile # docker镜像构建文件(生产环境)
├── Dockerfile.stage # docker镜像构建文件(预发布环境)
├── go.mod # go依赖列表
├── go.sum # go依赖下载历史
├── main.go # 程序主入口
├── README.md # 说明文档
├── TIPS.md # 个人踩坑记录
├── TODO.md # 已完成/待完成列表

前端

注意事项

TODO

特别感谢

前端: <br/> Element UI: A Vue.js 2.0 UI Toolkit for Web. <br/> vue-element-admin: a production-ready front-end solution for admin interfaces. <br/> vue-typescript-admin-template: a production-ready front-end solution for admin interfaces based on vue, typescript and UI Toolkit element-ui. <br/>

后端: <br/> Gin: a web framework written in Go (Golang). <br/> gin-jwt: a middleware for Gin framework. <br/> casbin: An authorization library that supports access control models like ACL, RBAC, ABAC in Golang. <br/> Gorm: The fantastic ORM library for Golang. <br/> zap: Blazing fast, structured, leveled logging in Go. <br/> lumberjack: lumberjack is a log rolling package for Go. <br/> viper: Go configuration with fangs. <br/> packr: The simple and easy way to embed static files into Go binaries. <br/> go-funk: A modern Go utility library which provides helpers (map, find, contains, filter, ...). <br/> limiter: Dead simple rate limit middleware for Go. <br/> validator: Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. <br/>

日志搜集: <br/> loki: Loki: like Prometheus, but for logs.

<br/>

下面几个类似本项目, 学习了大神的一些代码风格: <br/> gin-admin: RBAC scaffolding based on Gin + Gorm/Mongo + Casbin + Wire. <br/> gin-vue-admin: Gin-vue-admin is a full-stack (frontend and backend separation) framework designed for management system. <br/> go-admin: Gin + Vue + Element UI based scaffolding for front and back separation management system.

互动交流

与作者对话

该项目是利用业余时间进行开发的, 开发思路参考了很多优秀的前后端框架, 结合自己的理解和实际需求, 做了改进. 如果觉得项目有不懂的地方或需要改进的地方, 欢迎提issue或pr!

QQ群:943724601

<img src="https://github.com/piupuer/gin-web-images/blob/master/contact/qq_group.jpeg?raw=true" width="256" alt="QQ群" />

就不贴打赏二维码了, 不然显得项目很low, 如果您非要请我喝咖啡, 私信我, 哈哈哈~

MIT License

Copyright (c) 2020 piupuer