Gin-Admin
后端是基于Gin 进行模块化设计的 API 框架,封装了常用的框架功能,使用简单,致力于快速的业务研发。- 前端是基于Vue框架模板进行设计的前端管理框架,封装了常用的权限管理、系统管理功能,致力于一套开箱即用的权限系统。
- 同时支持将web服务内置于go的编译包中,编译后可直接访问前后端。
server
├── assets
├── cmd
│ ├── conf.toml
│ ├── main.go
│ └── upload
├── docs
├── examples
├── go.mod
├── go.sum
├── internal
│ ├── controller
│ ├── dao
│ ├── dto
│ ├── model
│ ├── pkg
│ │ ├── conf
│ │ ├── constant
│ │ ├── core
│ │ ├── http
│ │ ├── jwt
│ │ ├── log
│ │ ├── metrics
│ │ ├── middleware
│ │ ├── repository
│ │ │ ├── mysql
│ │ │ ├── redis
│ │ │ └── cache
│ │ ├── response
│ │ └── tracer
│ ├── router
│ ├── service
│ └── vo
├── pkg
│ ├── color
│ ├── cron
│ ├── errcode
│ ├── excel
│ ├── email
│ ├── plugin
│ ├── shutdown
│ └── utils
└── tasks
web
├── .husky
├── mock
├── node_modules
├── public
├── src
│ ├── api
│ ├── assets
│ ├── components
│ ├── constant
│ ├── directives
│ ├── hooks
│ ├── icons
│ ├── lang
│ ├── layout
│ ├── lib
│ ├── plugins
│ ├── router
│ ├── store
│ ├── styles
│ ├── theme
│ ├── typings
│ ├── utils
│ ├── views
│ ├── App.vue
│ ├── main.ts
│ ├── permission.ts
│ └── settings.ts
├── .env.build-test
├── .env.serve-dev
├── .env.serve-prod
├── .env.serve-test
├── .eslintrc-auto-import.json
├── .eslintrc.js
├── .gitignore
├── .prettierrc.cjs
├── index.html
├── mock-prod-server.ts
├── optimize-include.ts
├── package.json
├── package-lock.json
├── tsconfig.base.json
├── tsconfig.json
├── vite.config.ts
├── vitest.config.ts
├── vitest.setup.ts
├── yarn-error.log
├── yarn.lock
└── README.md
- 热重启
- 内嵌文件
- 内嵌 web 服务
- vue3+vite+ts+elementUI 项目
- API接口状态码
- 自定义API接口返回结构
- 数据库 gorm
- mysql 全局实例
- 只读实例
- 读写实例
- mysql 全局实例
- 日志 zap
- 本地滚动日志 - 文本日志
- 数据库日志
- 结构化日志
- 日志入库
- 全链路跟踪日志 Trace
- Gin 框架集成 zap 日志库
- 中间件
- 跨域
- API 网络请求/响应日志
- JWT 令牌
- 单点登录
- API 鉴权
- API Token 鉴权
- Rate 接口限流
- API 文档
- ApiPost 接口工具
- 内置接口文档
- 定时任务调度
- 即时任务
- 定时任务
- 优雅关机
- HTTP 服务
- Mysql 数据库
- Cron 定时任务
- 内存缓存
- 插件
- 服务启动logo
- pprof 性能剖析工具
- Prometheus 指标记录
- Swagger 接口文档, apipost 工具代替
- 服务启动后打开浏览器
- 动态 SEO 优化
- 内存缓存
- 站点配置缓存
- Redis
- 用户登录缓存
- API 鉴权缓存
- 订阅
- cron 定时任务,在后台可界面配置
- websocket 实时通讯
- 权限管理
- 注册/登录/退出/验证码
- 用户中心
- 用户管理
- 角色管理
- 菜单管理
- API令牌管理
- API 鉴权管理
- HTTP接口管理
- 前端权限
- 动态路由
- 按钮权限
- 系统管理
- 网站配置管理
- 请求日志管理
- 系统日志管理
- WEB日志管理
- 登录管理
- 用户登录禁用
- 数据中心
- 全局配置管理
- 字典管理
- 系统监控
- 前端excel组建替换 xlsx -> exceljs
- 系统版本: deepin v20.8
- go 版本: v1.19.4
- node 版本: v16.19.0
- yarn 版本: v1.22.18
- Mysql 数据库版本: MariaDB v10.3.36
- Redis 数据库版本: v5.0.3
# 进入数据库文件目录
cd server/docs/sql
# 登录数据库
mysql -u root -p
# 创建数据库
CREATE DATABASE IF NOT EXISTS `gin_admin` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 初始化数据库表,同时进行数据初始化
mysql - u root - proot密码 gin_admin < gin_admin.sql
- install air
go install github.com/cosmtrek/air@latest
- init air
cd cmd
air init
- run
air
此后端内嵌web静态资源,打包后可直接访问。
- 热重启, 修改代码后自动编译运行
# 进入后端项目
cd server
# 执行air指令即可启动项目
air
- 手动调式运行
cd server/cmd
go run main.go
- 项目编译
cd server/cmd
# 编译
go build -o ./main .
- 运行
# 添加执行权限
chmod 755 main
# 运行
./main
- 接口连接测试
- 内嵌前端
- pprof 性能剖析工具
- Prometheus 监控指标
- 本地 API 接口文档
- 需要联网加载资源
- 安装依赖
# 进入前端项目
cd web
# 安装依赖
yarn install
- 调试运行
# 进入前端项目
cd web
# 进入调试运行
yarn run dev
# 访问前端
http://localhost:5005/
- 编译
- 编译文件目录将放置 server/assets/dist 目录中, 用于内嵌 WEB 服务, 前后端一体化, 快速部署;
- 内嵌的 WEB 服务可支持 SEO 动态优化;
- 也可忽略 server/assets/dist 目录中的文件,前后端单独部署;
# 进入前端项目
cd web
# 编译
yarn build
- https://github.com/flipped-aurora/gin-vue-admin
- https://github.com/go-admin-team/go-admin
- https://github.com/GoAdminGroup/go-admin
- https://github.com/xinliangnote/go-gin-api
- 定时任务,在后台可界面配置
- websocket
- web 编码
- https://github.com/fyonecon/ginlaravel