2022-06-02 23:12 发表于湖南

一、开源项目简介

GoAdmin是一个基于 golang 面向生产的数据可视化管理平台搭建框架,可以让你使用简短的代码在极短时间内搭建起一个管理后台。

一般开发一套管理后台需要至少一个后台工程师,一个前端工程师,花费至少一周时间才能搭建完成,搭建完成后我们需要分别去部署前端代码和后端代码。而利用 GoAdmin,只需要一名golang后端工程师。在先花一点点时间了解掌握GoAdmin后,即可开发好一个面向生产环境的管理后台。而且所有的框架代码(包括前端文件)都将编译成一个二进制文件,直接部署到正式服务器即可运行,测试分发和部署十分便捷。

在功能需求方面,GoAdmin目前内置支持对主流SQL数据库(
mysql/postgresql/sqlite/mssql)增删改查的管理插件,更多的功能插件如:服务器文件管理,数据监控系统等等会陆续开发并开放。

对于前端个性化需求,GoAdmin目前官方免费支持Adminlte、Sword两个主题,更多主题正在制作中以及对应更多的登录界面组件也在制作中,敬请期待。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

图片

四、功能概述特征
  • 高生产效率: 10分钟内做一个好看的管理后台

  • 主题: 默认为adminlte,更多好看的主题正在制作中,欢迎给我们留言

  • 插件化: 提供插件使用,真正实现一个插件解决不了问题,那就两个

  • 认证: 开箱即用的rbac认证系统

  • 框架支持: 支持大部分框架接入,让你更容易去上手和扩展

五、技术选型依赖
  • Datetimepicker

  • font-awesome

  • bootstrap-fileinput

  • jquery-pjax

  • Nestable

  • toastr

  • bootstrap-number-input

  • fontawesome-iconpicker

项目架构

GoAdmin的项目模块如下:

模块名

模块功能

模块位置

engine

engine是GoAdmin最核心的模块,此模块的功能是利用web框架适配器将插件的路由与控制器方法的映射关系注入到框架中

./engine/engine.go

adapter

adapter的功能是实现web框架的context与GoAdmin的context的相互转换

./adapter/adapter.go

context

context是一个请求的上下文,记录包括了请求的路由参数与方法信息,context会被传入到插件的方法中

./context/context.go

plugin

plugin有自己的路由与控制器方法,在接收由adapter转换过来的context后经控制器方法处理返回给adapter再输出到web框架中去

./plugins/plugins.go

template

template是前端代码对应的golang实体化,前端代码对应的组件部分,比如表单,行,列等实体化为golang的一个接口,因此可以通过调用接口方法获取到该组件的html代码,此功能提供给插件去调用

./template/template.go

auth

auth实现了对cookie的管理,将前端的cookie存储并转换为登录的用户,同时实现了对权限的拦截

./modules/auth/auth.go

config

config是系统的全局配置

./modules/config/config.go

db

db是一个sql连接库,连接了sql数据库提供查询等帮助方法,支持多个driver

./modules/db/connection.go

language

language实现了简单的语言映射,从而支持语言本地化

./modules/language/language.go

file

file实现了一个文件上传引擎

./modules/file/file.go

logger

logger是项目的日志模块

./modules/logger/logger.go

menu

menu是对项目菜单的管理

./modules/menu/menu.go

cli

cli命令行模块,包括生成文件和开发的一些基本命令

./adm/cli.go

GoAdmin通过各种适配器使得你在各个web框架中使用都十分的方便。目前支持的web框架有:

gin / beego / fasthttp / buffalo / echo / gorilla/mux / iris / chi / gf

您可以选择拿手的或者业务项目正在用的框架开始。

使用

提示:现在你也可以这样做。

$ mkdir new_project && cd new_project$ go install github.com/GoAdminGroup/go-admin/adm$ adm init -l cn

或者:(使用v1.2.16的adm)

$ mkdir new_project && cd new_project$ go install github.com/GoAdminGroup/go-admin/adm$ adm init web -l cn

通过以下三步运行:

第一步:导入 sql
  • mysql

  • mssql

  • postgresql

  • sqlite

第二步:创建 main.go

main.go

详见示例

更多框架的例子: /go-admin/tree/master/examples

第三步:运行
GO111MODULE=on go run main.go

访问:http://localhost:9033/admin

账号: admin 密码: admin

六、源码地址

访问一飞开源:/