ginadmin

基于Gin开发的后台脚手架,集成了、数据库操作、日志管理、权限分配管理、多模板页面、自动分页器、数据库迁移和填充、Docker集成部署等功能、静态资源打包

MIT License

Stars
215
Committers
2

https://gphper.github.io/ginadmindoc/#/

GinAdmin

GingowebGinAdmin star

✅Docker

✅API JWT

✅redis

✅HTTP

🔲

🔲csrf

🔲

🔹

🔹

  1. git

    git clone https://github.com/gphper/ginadmin.git
    
  2. go mod download
    
  3. configs/config.yaml

mysql:
-  name: "default"
   username: "root"
   password: "123456"
   database: "db_ginadmin"
   host: "127.0.0.1"
   port: 3306
   max_open_conn: 50
   max_idle_conn: 20
redis:
   addr: "localhost:6379"
   db: 0
   password: ""
session:
   session_name: "gosession_id"
base:
   host: 0.0.0.0
   port: 20011
   log_media: "redis"
  1. go run .\cmd\ginadmin http://localhost:/admin/loginadmin 111111

  2. vscode launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "ginadmin",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceRoot}/cmd/ginadmin",
            "trace": true,
            "args":[
                "--root_path=${workspaceRoot}"
            ],
        }
}

🔹

  1. conf

    mysql:
    -  name: "default"
       username: "docker"
       password: "123456"
       database: "docker_mysql"
       host: "localmysql"
       port: 3306
       max_open_conn: 50
       max_idle_conn: 20
    redis:
       addr: "localredis:6379"
       db: 0
       password: "ginadmin"
    session:
       session_name: "gosession_id"
    base:
       host: 0.0.0.0
       port: 20010
       log_media: "redis"
    
  2. docker-compose up -d

  3. docker exec -it ginadmin-web bash

  4. go mod tidy

  5. go run ./cmd/ginadmin/ run http://localhost:20010/admin/login

  6. redis

    127.0.0.1
    6380
    ginadmin
    
  7. mysql

    localhost
    3310
    docker
    123456
    

🔹

|--api  // Api
|--build // 
|--cmd  // 
|--configs // 
|--deployments // docker-compose 
|--internal //
|--logs // 
|--pkg // 
|--web //

🔹

  1. pkg/paginater/paginater.go PageOperation
adminDb := models.Db.Table("admin_users").Select("nickname","username").Where("uid != ?", 1)
adminUserData := paginater.PageOperation(c, adminDb, 1, &adminUserList)
  1. html

    {{ .adminUserData.PageHtml }}
    

🔹

  1. internal/router/default.go

  2. loggers.LogInfo() github.com/gphper/ginadmin/pkg/loggers`

    loggers.LogInfo("admin", "this is a info message", map[string]string{
            "user_info": "this is a user info",
    })
    
  3. log_media fileredis

🔹

  1. models TableName() string GetModels

    func GetModels() []interface{} {
        return []interface{}{
            &AdminUsers{},
            &AdminGroup{},
        }
    }
    
  2. model BaseModle TableName FillData() AdminUsers

🔹

  • pkg/cron/cron.go

🔹

  1. configs/config.go struct
type AppConf struct {
    BaseConf `yaml:"base"`
}
type BaseConf struct {
    Port string `yaml:"port"`
}
  1. configs/config.yaml
base:
   port: 20011
  1. configs.App.BaseConf.Port
    

🔹

  • web/views/template /

🔹

  • internal/menu/menu.go

  • casbincasbincasbin

  • pkg/casbinauth/casbin.go

  • gin.context

info,_ := c.Get("userInfo")
  • template judgeContainPriv pkg/template/default.go

    "judgeContainPriv": func(username string, obj string, act string) bool {
            if username == "admin" {
                return true
            }
            ok, err := casbinauth.Check(username, obj, act)
            if !ok || err != nil {
                return false
            }
            return true
    },
    

🔹API

  • swagg apidocs
go install github.com/swaggo/swag/cmd/swag
swag init -g cmd/ginadmin/main.go

🔹

  • go build .\cmd\ginadmin
  • go build -tags=embed .\cmd\ginadmin

🔹

🔹

PS F:\ginadmin> go run .\cmd\ginadmin\ run -h
Run app

Usage:
  ginadmin run [flags]

Flags:
  -c, --config path string   config path
  -h, --help                 help for run
  -m, --mode string          dev or release (default "dev")
PS F:\ginadmin> go run .\cmd\ginadmin\ db migrate -h
DB Migrate

Usage:
  ginadmin db migrate [-t table] [flags]

Flags:
  -c, --config path string   config path
  -h, --help                 help for migrate
  -t, --table string         input a table name
PS F:\ginadmin> go run .\cmd\ginadmin\ db seed -h   
DB Seed

Usage:
  ginadmin db seed [-t table] [flags]

Flags:
  -c, --config path string   config path
  -h, --help                 help for seed
  -t, --table string         input a table name
Package Rankings
Top 5.47% on Proxy.golang.org
Related Projects