Skip to content

silent-rain/gin-admin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gin-Admin 后台管理系统

  • 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 全局实例
      • 只读实例
      • 读写实例
  • 日志 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

Redis 安装

Air 热重启工具安装

  • 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

访问服务

前端编译&运行

  • 安装依赖
# 进入前端项目
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

参考文档

SEO 优化

go-api 设计参考

日志

定时任务

About

Gin-Admin 后台管理系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published