Skip to content

A golang framework helps gopher to build a data visualization and admin panel in ten minutes

License

Notifications You must be signed in to change notification settings

backyio/go-admin

 
 

Repository files navigation

go-admin

the missing golang data admin panel builder tool.

Inspired by laravel-admin

Preface

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

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.

Following three steps to run it.

Note: now you can quickly start by doing like this.

$ go install github.com/backyio/go-admin/adm@latest
$ mkdir new_project && cd new_project
$ adm init

Or (use adm whose version higher or equal than v1.2.16)

$ mkdir new_project && cd new_project
$ go install github.com/backyio/go-admin/adm@latest
$ adm init web

Step 2: create main.go

main.go

package main

import (
	"github.com/gin-gonic/gin"
	_ "github.com/backyio/go-admin/adapter/gin"
	_ "github.com/backyio/go-admin/modules/db/drivers/mysql"
	"github.com/backyio/go-admin/engine"
	"github.com/backyio/go-admin/plugins/admin"
	"github.com/backyio/go-admin/modules/config"
	"github.com/backyio/go-admin/themes/adminlte"
	"github.com/backyio/go-admin/template"
	"github.com/backyio/go-admin/template/chartjs"
	"github.com/backyio/go-admin/template/types"
	"github.com/backyio/go-admin/examples/datamodel"
	"github.com/backyio/go-admin/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",
				MaxIdleConns: 50,
				MaxOpenConns: 150,
				ConnMaxLifetime: time.Hour,
				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/backyio/go-admin/tree/master/examples

Step 3: run

GO111MODULE=on go run main.go

About

A golang framework helps gopher to build a data visualization and admin panel in ten minutes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 75.9%
  • CSS 14.1%
  • JavaScript 9.6%
  • Makefile 0.4%