最完整的GoAdminGroup/go-admin入门指南:从安装到部署仅需30分钟
你还在为构建Golang后台管理系统而烦恼吗?本文将带你快速掌握GoAdminGroup/go-admin框架的使用,从安装到部署仅需30分钟,让你轻松搭建专业的后台管理系统。读完本文,你将学会如何初始化项目、配置数据库、创建数据模型、自定义页面以及部署应用。
项目简介
GoAdminGroup/go-admin是一个用于快速构建后台管理系统的Golang开发框架。它提供了简洁的API、自动化CRUD操作和易于扩展的插件体系,适合在Golang应用开发中使用。
官方文档:README.md 项目教程:README_CN.md
GoAdmin具有以下特点:
- 快速:十分钟内构建生产级别的管理面板应用
- 主题:支持美观的UI主题(默认adminlte,更多主题即将推出)
- 插件:丰富的插件系统(更多强大的插件正在开发中)
- RBAC:开箱即用的RBAC权限系统
- 框架支持:兼容大多数Go Web框架
安装步骤
环境准备
在开始之前,请确保你的环境中已经安装了Go(建议1.16+版本)。
快速安装
通过以下三个简单步骤即可快速启动GoAdmin项目:
$ mkdir new_project && cd new_project
$ go install github.com/GoAdminGroup/adm@latest
$ adm init web
这条命令会创建一个新的项目目录,并使用GoAdmin的命令行工具初始化一个基础的Web项目结构。
项目配置
配置文件
GoAdmin支持通过配置文件或代码方式进行配置。配置文件可以是JSON或YAML格式,位于modules/config/目录下。
配置文件示例:modules/config/config.yaml
数据库配置
在配置文件中,你需要设置数据库连接信息。以下是一个MySQL数据库的配置示例:
cfg := config.Config{
Env: config.EnvLocal,
Databases: config.DatabaseList{
"default": {
Host: "127.0.0.1",
Port: "3306",
User: "root",
Pwd: "root",
Name: "godmin",
MaxIdleConns: 50,
MaxOpenConns: 150,
ConnMaxLifetime: time.Hour,
Driver: config.DriverMysql,
},
},
// 其他配置...
}
你也可以使用SQLite数据库,只需要修改驱动和文件路径:
//Driver: config.DriverSqlite,
//File: "../datamodel/admin.db",
数据库迁移文件:data/migrations/
快速上手示例
以Gin框架为例
以下是一个使用Gin框架集成GoAdmin的完整示例:
package main
import (
"io/ioutil"
"log"
"os"
"os/signal"
"time"
_ "github.com/GoAdminGroup/go-admin/adapter/gin"
_ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql"
_ "github.com/GoAdminGroup/themes/sword"
"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/language"
"github.com/GoAdminGroup/go-admin/plugins/example"
"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() {
gin.SetMode(gin.ReleaseMode)
gin.DefaultWriter = ioutil.Discard
r := gin.New()
e := engine.Default()
cfg := config.Config{
// 配置信息...
}
template.AddComp(chartjs.NewChart())
examplePlugin := example.NewExample()
if err := e.AddConfig(&cfg).
AddGenerators(datamodel.Generators).
AddGenerator("user", datamodel.GetUserTable).
AddDisplayFilterXssJsFilter().
AddPlugins(examplePlugin).
Use(r); err != nil {
panic(err)
}
r.Static("/uploads", "./uploads")
e.HTML("GET", "/admin", datamodel.GetContent)
go func() {
_ = r.Run(":9033")
}()
quit := make(chan os.Signal, 1)
signal.Notify(quit, os.Interrupt)
<-quit
log.Print("closing database connection")
e.MysqlConnection().Close()
}
完整示例代码:examples/gin/main.go
数据模型定义
GoAdmin使用数据模型来定义数据库表结构和管理界面。以下是一个用户表的数据模型示例:
func GetUserTable(ctx *context.Context) table.Table {
userTable := table.NewDefaultTable(table.DefaultConfig())
info := userTable.GetInfo().SetFilterFormLayout(form.LayoutThreeCol)
info.AddField("ID", "id", db.Int).FieldSortable()
info.AddField("用户名", "username", db.Varchar).FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike})
info.AddField("邮箱", "email", db.Varchar).FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike})
info.AddField("创建时间", "created_at", db.Datetime).FieldSortable()
info.SetTable("users").SetTitle("用户").SetDescription("用户管理")
form := userTable.GetForm()
form.AddField("用户名", "username", db.Varchar).SetRequired(true)
form.AddField("密码", "password", db.Varchar).SetRequired(true).FieldType(form.Password)
form.AddField("邮箱", "email", db.Varchar).SetRequired(true).FieldType(form.Email)
form.SetTable("users").SetTitle("用户").SetDescription("用户管理")
return userTable
}
数据模型示例:examples/datamodel/user.go
功能模块介绍
认证模块
GoAdmin提供了完整的认证系统,位于modules/auth/目录下。它支持基于会话的认证和RBAC权限控制。
认证模块源码:modules/auth/
插件系统
GoAdmin具有强大的插件系统,可以扩展管理系统的功能。插件示例位于plugins/目录下。
示例插件:plugins/example/
模板组件
GoAdmin提供了丰富的模板组件,用于构建管理界面。这些组件位于template/components/目录下。
组件源码:template/components/
图表支持
GoAdmin集成了Chart.js用于数据可视化。图表相关代码位于template/chartjs/目录下。
图表组件:template/chartjs/
部署指南
Docker部署
项目提供了Dockerfile和docker-compose.yml文件,可以快速构建和部署应用。
Docker配置:Dockerfile Docker Compose配置:docker-compose.yml
使用Docker Compose部署:
$ docker-compose up -d
手动部署
- 编译项目:
$ go build -o go-admin main.go
- 运行应用:
$ ./go-admin
- 访问管理界面:
打开浏览器访问 http://localhost:9033/admin,使用默认账号admin/admin登录。
总结
通过本文的介绍,你已经了解了GoAdminGroup/go-admin的基本安装、配置和使用方法。GoAdmin提供了丰富的功能和灵活的扩展机制,可以帮助你快速构建专业的后台管理系统。
如果你想深入了解更多功能,可以参考以下资源:
- 官方文档:README.md
- 开发指南:CONTRIBUTING.md
- 测试用例:tests/
希望这篇指南能帮助你快速上手GoAdmin,如果你有任何问题或建议,欢迎参与项目的开发和讨论!
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00