README

go-admin

the missing golang data admin panel builder tool.

Documentation | 中文介绍 | DEMO | 中文DEMO | Forum

Go Report Card Go Report Card golang telegram slack GoDoc license

Inspired by laravel-admin

Preface

GoAdmin is a toolkit to help you build a data visualization admin panel for your golang app.

Online demo: https://demo.go-admin.com

Quick follow up example: https://github.com/HongJaison/example

GoAdmin+vue example: https://github.com/HongJaison/goadmin-vue-example

interface

Features

  • 🚀 Fast: build a production admin panel app in ten minutes.
  • 🎨 Theming: beautiful ui themes supported(default adminlte, more themes are coming.)
  • 🔢 Plugins: many plugins to use(more useful and powerful plugins are coming.)
  • Rbac: out of box rbac auth system.
  • ⚙️ Frameworks: support most of the go web frameworks.

Translation

We need your help: https://github.com/HongJaison/docs/issues/1

Who is using

Comment the issue to tell us.

How to

Following three steps to run it.

Step 1: import sql

Step 2: create main.go

main.go

package main

import (
	"github.com/gin-gonic/gin"
	_ "github.com/HongJaison/go-admin3/adapter/gin"
	_ "github.com/HongJaison/go-admin3/modules/db/drivers/mysql"
	"github.com/HongJaison/go-admin3/engine"
	"github.com/HongJaison/go-admin3/plugins/admin"
	"github.com/HongJaison/go-admin3/modules/config"
	"github.com/HongJaison/themes3/adminlte"
	"github.com/HongJaison/go-admin3/template"
	"github.com/HongJaison/go-admin3/template/chartjs"
	"github.com/HongJaison/go-admin3/template/types"
	"github.com/HongJaison/go-admin3/examples/datamodel"
	"github.com/HongJaison/go-admin3/modules/language"
)

func main() {
	r := gin.Default()

	eng := engine.Default()

	// global config
	cfg := config.Config{
		Databases: config.DatabaseList{
			"default": {
				Host:         "127.0.0.1",
				Port:         "3306",
				User:         "root",
				Pwd:          "root",
				Name:         "goadmin",
				MaxIdleCon: 50,
				MaxOpenCon: 150,
				Driver:       "mysql",
			},
        	},
		UrlPrefix: "admin",
		// STORE is important. And the directory should has permission to write.
		Store: config.Store{
		    Path:   "./uploads", 
		    Prefix: "uploads",
		},
		Language: language.EN,
		// debug mode
		Debug: true,
		// log file absolute path
		InfoLogPath: "/var/logs/info.log",
		AccessLogPath: "/var/logs/access.log",
		ErrorLogPath: "/var/logs/error.log",
		ColorScheme: adminlte.ColorschemeSkinBlack,
	}

	// add component chartjs
	template.AddComp(chartjs.NewChart())

	_ = eng.AddConfig(cfg).
		AddGenerators(datamodel.Generators).
	        // add generator, first parameter is the url prefix of table when visit.
    	        // example:
    	        //
    	        // "user" => http://localhost:9033/admin/info/user
    	        //		
		AddGenerator("user", datamodel.GetUserTable).
		Use(r)
	
	// customize your pages
	eng.HTML("GET", "/admin", datamodel.GetContent)

	_ = r.Run(":9033")
}

More framework examples: https://github.com/HongJaison/go-admin3/tree/master/examples

Step 3: run

GO111MODULE=on go run main.go

visit: http://localhost:9033/admin

account: admin password: admin

A super simple example here

See the docs for more details.

Backers

Your support will help me do better! [Become a backer]

Contribution

here for contribution guide

here to join into the develop team

join telegram

Expand ▾ Collapse ▴

Directories

Path Synopsis
adapter
adapter/beego
adapter/buffalo
adapter/chi
adapter/echo
adapter/fasthttp
adapter/gf
adapter/gin
adapter/gorilla
adapter/iris
adm
context
engine
examples/beego
examples/buffalo
examples/chi
examples/datamodel
examples/echo
examples/fasthttp
examples/gf
examples/gin
examples/gorilla
examples/iris
modules/auth
modules/collection
modules/config
modules/constant
modules/db
modules/db/dialect
modules/db/drivers/mssql
modules/db/drivers/mysql
modules/db/drivers/postgres
modules/db/drivers/sqlite
modules/errors
modules/file
modules/language
modules/logger
modules/menu
modules/page
modules/service
modules/system
modules/ui
modules/utils
plugins
plugins/admin
plugins/admin/controller
plugins/admin/models
plugins/admin/modules
plugins/admin/modules/captcha
plugins/admin/modules/constant
plugins/admin/modules/form
plugins/admin/modules/guard
plugins/admin/modules/paginator
plugins/admin/modules/parameter
plugins/admin/modules/response
plugins/admin/modules/table
plugins/admin/modules/tools
plugins/example
plugins/example/go_plugin
template
template/chartjs
template/color
template/components
template/icon
template/installation Code generated by go-bindata.
template/login Code generated by go-bindata.
template/types
template/types/action
template/types/display
template/types/form
template/types/form/select
template/types/table
tests
tests/common
tests/frameworks/beego
tests/frameworks/buffalo
tests/frameworks/chi
tests/frameworks/echo
tests/frameworks/fasthttp
tests/frameworks/gf
tests/frameworks/gin
tests/frameworks/gorilla
tests/frameworks/iris
tests/tables
tests/web