关注公众号 “转角遇到GitHub” ,每天推荐给你优秀开源项目
大家好,我是欧盆索思(opensource),每天为你带来优秀的开源项目!
之前推荐过基于 Go 语言的后台系统,今天再推荐一个,我认为这个系统比之前的更好,或者说更普适。
简介
项目名称:GoAdmin,项目地址:https://github.com/GoAdminGroup/go-admin,Star 数 3.7k+。
该项目是受有名的 laravel-admin[1] 启发而创建的,可以帮助你的 Go 应用快速实现数据可视化,搭建一个数据管理平台。
特性
- ? 高生产效率: 10 分钟内做一个好看的管理后台
- ? 主题: 默认为 adminlte,更多好看的主题正在制作中
- ? 插件化: 提供插件使用,真正实现一个插件解决不了问题,那就两个
- ✅ 认证: 开箱即用的 rbac 认证系统
- ⚙️ 框架支持: 支持大部分框架接入,让你更容易去上手和扩展
其中的框架支持,我个人认为是挺好的功能。之前推荐过一个 gin-vue-admin,固定了只是 gin 框架。而这个项目支持 Go 语言目前主流的框架,包括:
- gin
- echo
- iris
- gf
- buffalo
- chi
- beego
- fasthttp
- gorilla
所以,不管你使用哪个常用框架,它都支持,而且你也可以方便的让它支持你的框架。
该项目提供了一个在线 demo,地址:https://demo.go-admin.cn,首页如下:
使用
三步法。
第一步:导入 sql,支持如下数据库:
- mysql[2]
- mssql[3]
- postgresql[4]
- sqlite[5]
第二步:创建 main.go,根据你使用的框架做响应的修改,这里假设用的是 Gin
package main
import (
_ "github.com/GoAdminGroup/go-admin/adapter/gin"
"github.com/GoAdminGroup/go-admin/engine"
"github.com/GoAdminGroup/go-admin/examples/datamodel"
"github.com/GoAdminGroup/go-admin/modules/config"
_ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql"
"github.com/GoAdminGroup/go-admin/modules/language"
"github.com/GoAdminGroup/go-admin/template"
"github.com/GoAdminGroup/go-admin/template/chartjs"
"github.com/GoAdminGroup/themes/adminlte"
"github.com/gin-gonic/gin"
)
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 必须设置且保证有写权限,否则增加不了新的管理员用户
Store: config.Store{
Path: "./uploads",
Prefix: "uploads",
},
Language: language.CN,
// 开发模式
Debug: true,
// 日志文件位置,需为绝对路径
InfoLogPath: "/var/logs/info.log",
AccessLogPath: "/var/logs/access.log",
ErrorLogPath: "/var/logs/error.log",
ColorScheme: adminlte.ColorschemeSkinBlack,
}
// 增加 chartjs 组件
template.AddComp(chartjs.NewChart())
_ = eng.AddConfig(cfg).
AddGenerators(datamodel.Generators).
// 增加 generator, 第一个参数是对应的访问路由前缀
// 例子:
//
// "user" => http://localhost:9033/admin/info/user
//
AddGenerator("user", datamodel.GetUserTable).
Use(r)
// 自定义首页
eng.HTML("GET", "/admin", datamodel.GetContent)
_ = r.Run(":9033")
}
第三步:运行
启用 go module:
GO111MODULE=on go run main.go
访问 http://localhost:9033/admin,默认账号和密码都是 admin。更多文档参考:http://doc.go-admin.cn/zh/。
参考资料
[1]laravel-admin: https://github.com/z-song/laravel-admin
[2]mysql: https://raw.githubusercontent.com/GoAdminGroup/go-admin/master/data/admin.sql
[3]mssql: https://raw.githubusercontent.com/GoAdminGroup/go-admin/master/data/admin.mssql
[4]postgresql: https://raw.githubusercontent.com/GoAdminGroup/go-admin/master/data/admin.pgsql
[5]sqlite: https://raw.githubusercontent.com/GoAdminGroup/go-admin/master/data/admin.db
文末「阅读原文」可直达项目首页。
今天的项目大家觉得怎么样吗?如果你喜欢,请在文章底部留言、点赞或关注转发,你的支持就是我持续更新的最大动力!
推荐阅读
Go 项目推荐之自动化全站后台管理系统脚手架 Gin-Vue-Admin
转角遇到GitHub - 送给爱开源的你
Git · GitHub · GitLab · Gitee