Awesome Open Source
Awesome Open Source


the missing golang data admin panel builder tool.

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

Go Report Card Go Report Card golang telegram slack GoDoc license

Inspired by laravel-admin


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

Online demo:

Quick follow up example:

GoAdmin+vue example:



  • 🚀 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.


We need your help:

Who is using

Comment the issue to tell us.

How to

Following three steps to run it.

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

$ mkdir new_project && cd new_project
$ go install
$ adm init

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

$ mkdir new_project && cd new_project
$ go install
$ adm init web

Step 1: import sql

Step 2: create main.go


package main

import (
	_ ""
	_ ""

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

	eng := engine.Default()

	// global config
	cfg := config.Config{
		Databases: config.DatabaseList{
			"default": {
				Host:         "",
				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

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

	_ = r.Run(":9033")

More framework 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.


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


here for contribution guide

here to join into the develop team

join telegram

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
go (14,687
golang (3,760
admin (306
gin (85
dataviz (83
adminlte (69
beego (29
datavisualization (20

Find Open Source By Browsing 7,000 Topics Across 59 Categories