Skip to content

Latest commit

 

History

History
352 lines (243 loc) · 17.7 KB

README.Zh-cn.md

File metadata and controls

352 lines (243 loc) · 17.7 KB

go-admin

Build Status Release License

English | 简体中文

基于Gin + Vue + Element UI OR Arco Design OR Ant Design的前后端分离权限管理系统,系统初始化极度简单,只需要配置文件中,修改数据库连接,系统支持多指令操作,迁移指令可以让初始化数据库信息变得更简单,服务指令可以很简单的启动api服务

在线文档

前端项目

视频教程

🎬 在线体验

Element UI vue体验:https://vue2.go-admin.dev

⚠️⚠️⚠️ 账号 / 密码: admin / 123456

Arco Design vue3 demo:https://vue3.go-admin.dev

⚠️⚠️⚠️ 账号 / 密码: admin / 123456

antd体验:https://antd.go-admin.pro

⚠️⚠️⚠️ 账号 / 密码: admin / 123456

✨ 特性

  • 遵循 RESTful API 设计规范

  • 基于 GIN WEB API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪ID等)

  • 基于Casbin的 RBAC 访问控制模型

  • JWT 认证

  • 支持 Swagger 文档(基于swaggo)

  • 基于 GORM 的数据库存储,可扩展多种类型数据库

  • 配置文件简单的模型映射,快速能够得到想要的配置

  • 代码生成工具

  • 表单构建工具

  • 多指令模式

  • 多租户的支持

  • TODO: 单元测试

🎁 内置

  1. 多租户:系统默认支持多租户,按库分离,一个库一个租户。
  2. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  3. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  4. 岗位管理:配置系统用户所属担任职务。
  5. 菜单管理:配置系统菜单,操作权限,按钮权限标识,接口权限等。
  6. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  7. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  8. 参数管理:对系统动态配置常用参数。
  9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  10. 登录日志:系统登录日志记录查询包含登录异常。
  11. 接口文档:根据业务代码自动生成相关的api接口文档。
  12. 代码生成:根据数据表结构生成对应的增删改查相对应业务,全程可视化操作,让基本业务可以零代码实现。
  13. 表单构建:自定义页面样式,拖拉拽实现页面布局。
  14. 服务监控:查看一些服务器的基本信息。
  15. 内容管理:demo功能,下设分类管理、内容管理。可以参考使用方便快速入门。
  16. 定时任务:自动化任务,目前支持接口调用和函数调用。

准备工作

你需要在本地安装 [go] [gin] nodegit

同时配套了系列教程包含视频和文档,如何从下载完成到熟练使用,强烈建议大家先看完这些教程再来实践本项目!!!

轻松实现go-admin写出第一个应用 - 文档教程

步骤一 - 基础内容介绍

步骤二 - 实际应用 - 编写增删改查

手把手教你从入门到放弃 - 视频教程

如何启动go-admin

使用生成工具轻松实现业务

v1.1.0版本代码生成工具-释放双手 [进阶]

多命令启动方式讲解以及IDE配置

go-admin菜单的配置说明 [必看]

如何配置菜单信息以及接口信息 [必看]

go-admin权限配置使用说明 [必看]

go-admin数据权限使用说明 [必看]

如有问题请先看上述使用文档和文章,若不能满足,欢迎 issue 和 pr ,视频教程和文档持续更新中

📦 本地开发

环境要求

go 1.18

node版本: v14.16.0

npm版本: 6.14.11

开发目录创建

# 创建开发目录
mkdir goadmin
cd goadmin

获取代码

重点注意:两个项目必须放在同一文件夹下;

# 获取后端代码
git clone https://github.com/go-admin-team/go-admin.git

# 获取前端代码
git clone https://github.com/go-admin-team/go-admin-ui.git

启动说明

服务端启动说明

# 进入 go-admin 后端项目
cd ./go-admin

# 更新整理依赖
go mod tidy

# 编译项目
go build

# 修改配置 
# 文件路径  go-admin/config/settings.yml
vi ./config/settings.yml

# 1. 配置文件中修改数据库信息 
# 注意: settings.database 下对应的配置数据
# 2. 确认log路径

⚠️注意 在windows环境如果没有安装中CGO,会出现这个问题;

E:\go-admin>go build
# github.com/mattn/go-sqlite3
cgo: exec /missing-cc: exec: "/missing-cc": file does not exist

or

D:\Code\go-admin>go build
# github.com/mattn/go-sqlite3
cgo: exec gcc: exec: "gcc": executable file not found in %PATH%

解决cgo问题进入

初始化数据库,以及服务启动

# 首次配置需要初始化数据库资源信息
# macOS or linux 下使用
$ ./go-admin migrate -c config/settings.dev.yml

# ⚠️注意:windows 下使用
$ go-admin.exe migrate -c config/settings.dev.yml


# 启动项目,也可以用IDE进行调试
# macOS or linux 下使用
$ ./go-admin server -c config/settings.yml


# ⚠️注意:windows 下使用
$ go-admin.exe server -c config/settings.yml

sys_api 表的数据如何添加

在项目启动时,使用-a true 系统会自动添加缺少的接口数据

./go-admin server -c config/settings.yml -a true

使用docker 编译启动

# 编译镜像
docker build -t go-admin .

# 启动容器,第一个go-admin是容器名字,第二个go-admin是镜像名称
# -v 映射配置文件 本地路径:容器路径
docker run --name go-admin -p 8000:8000 -v /config/settings.yml:/config/settings.yml -d go-admin-server

文档生成

go generate

交叉编译

# windows
env GOOS=windows GOARCH=amd64 go build main.go

# or
# linux
env GOOS=linux GOARCH=amd64 go build main.go

UI交互端启动说明

# 安装依赖
npm install

# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npmmirror.com

# 启动服务
npm run dev

📨 互动

wenjianzhang
微信 公众号🔥🔥🔥 go-admin技术交流乙号 哔哩哔哩🔥🔥🔥

💎 贡献者

JetBrains 开源证书支持

go-admin 项目一直以来都是在 JetBrains 公司旗下的 GoLand 集成开发环境中进行开发,基于 free JetBrains Open Source license(s) 正版免费授权,在此表达我的谢意。

🤝 特别感谢

  1. ant-design
  2. ant-design-pro
  3. arco-design
  4. arco-design-pro
  5. gin
  6. casbin
  7. spf13/viper
  8. gorm
  9. gin-swagger
  10. jwt-go
  11. vue-element-admin
  12. ruoyi-vue
  13. form-generator

🤟 打赏

如果你觉得这个项目帮助到了你,你可以帮作者买一杯果汁表示鼓励 🍹

🤝 链接

Go开发者成长线路图

🔑 License

MIT

Copyright (c) 2024 wenjianzhang