|
| 1 | +# go-admin |
| 2 | + |
| 3 | + <img align="right" width="320" src="https://gitee.com/mydearzwj/image/raw/master/img/go-admin.svg"> |
| 4 | + |
| 5 | + |
| 6 | +[](https://github.com/go-admin-team/go-admin) |
| 7 | +[](https://github.com/go-admin-team/go-admin/releases) |
| 8 | +[](https://github.com/go-admin-team/go-admin) |
| 9 | + |
| 10 | +[English](https://github.com/go-admin-team/go-admin/blob/master/README.md) | 简体中文 |
| 11 | + |
| 12 | + |
| 13 | +基于Gin + Vue + Element UI的前后端分离权限管理系统,系统初始化极度简单,只需要配置文件中,修改数据库连接,系统支持多指令操作,迁移指令可以让初始化数据库信息变得更简单,服务指令可以很简单的启动api服务 |
| 14 | + |
| 15 | +[在线文档](https://doc.go-admin.dev) |
| 16 | + |
| 17 | +[github在线文档](https://wenjianzhang.github.io) |
| 18 | + |
| 19 | +[gitee在线文档](http://mydearzwj.gitee.io/go-admin-doc/) |
| 20 | + |
| 21 | +[前端项目](https://github.com/go-admin-team/go-admin-ui) |
| 22 | + |
| 23 | +[视频教程](https://space.bilibili.com/565616721/channel/detail?cid=125737) |
| 24 | + |
| 25 | +## ✨ 特性 |
| 26 | + |
| 27 | +- 遵循 RESTful API 设计规范 |
| 28 | + |
| 29 | +- 基于 GIN WEB API 框架,提供了丰富的中间件支持(用户认证、跨域、访问日志、追踪ID等) |
| 30 | + |
| 31 | +- 基于Casbin的 RBAC 访问控制模型 |
| 32 | + |
| 33 | +- JWT 认证 |
| 34 | + |
| 35 | +- 支持 Swagger 文档(基于swaggo) |
| 36 | + |
| 37 | +- 基于 GORM 的数据库存储,可扩展多种类型数据库 |
| 38 | + |
| 39 | +- 配置文件简单的模型映射,快速能够得到想要的配置 |
| 40 | + |
| 41 | +- 代码生成工具 |
| 42 | + |
| 43 | +- 表单构建工具 |
| 44 | + |
| 45 | +- 多指令模式 |
| 46 | + |
| 47 | +- TODO: 单元测试 |
| 48 | + |
| 49 | + |
| 50 | +## 🎁 内置 |
| 51 | + |
| 52 | +1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 |
| 53 | +2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 |
| 54 | +3. 岗位管理:配置系统用户所属担任职务。 |
| 55 | +4. 菜单管理:配置系统菜单,操作权限,按钮权限标识,接口权限等。 |
| 56 | +5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 |
| 57 | +6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 |
| 58 | +7. 参数管理:对系统动态配置常用参数。 |
| 59 | +8. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 |
| 60 | +9. 登录日志:系统登录日志记录查询包含登录异常。 |
| 61 | +1. 接口文档:根据业务代码自动生成相关的api接口文档。 |
| 62 | +1. 代码生成:根据数据表结构生成对应的增删改查相对应业务,全程可视化操作,让基本业务可以零代码实现。 |
| 63 | +1. 表单构建:自定义页面样式,拖拉拽实现页面布局。 |
| 64 | +1. 服务监控:查看一些服务器的基本信息。 |
| 65 | +1. 内容管理:demo功能,下设分类管理、内容管理。可以参考使用方便快速入门。 |
| 66 | + |
| 67 | +## 准备工作 |
| 68 | + |
| 69 | +你需要在本地安装 [go] [gin] [node](http://nodejs.org/) 和 [git](https://git-scm.com/) |
| 70 | + |
| 71 | +同时配套了系列教程包含视频和文档,如何从下载完成到熟练使用,强烈建议大家先看完这些教程再来实践本项目!!! |
| 72 | + |
| 73 | +### 轻松实现go-admin写出第一个应用 - 文档教程 |
| 74 | + |
| 75 | +[步骤一 - 基础内容介绍](http://doc.zhangwj.com/go-admin-site/guide/intro/tutorial01.html) |
| 76 | + |
| 77 | +[步骤二 - 实际应用 - 编写增删改查](http://doc.zhangwj.com/go-admin-site/guide/intro/tutorial02.html) |
| 78 | + |
| 79 | +### 手把手教你从入门到放弃 - 视频教程 |
| 80 | + |
| 81 | +[如何启动go-admin](https://www.bilibili.com/video/BV1z5411x7JG) |
| 82 | + |
| 83 | +[使用生成工具轻松实现业务](https://www.bilibili.com/video/BV1Dg4y1i79D) |
| 84 | + |
| 85 | +[v1.1.0版本代码生成工具-释放双手](https://www.bilibili.com/video/BV1N54y1i71P) [进阶] |
| 86 | + |
| 87 | +[多命令启动方式讲解以及IDE配置](https://www.bilibili.com/video/BV1Fg4y1q7ph) |
| 88 | + |
| 89 | +[go-admin菜单的配置说明](https://www.bilibili.com/video/BV1Wp4y1D715) [必看] |
| 90 | + |
| 91 | +[如何配置菜单信息以及接口信息](https://www.bilibili.com/video/BV1zv411B7nG) [必看] |
| 92 | + |
| 93 | +[go-admin权限配置使用说明](https://www.bilibili.com/video/BV1rt4y197d3) [必看] |
| 94 | + |
| 95 | +[go-admin数据权限使用说明](https://www.bilibili.com/video/BV1LK4y1s71e) [必看] |
| 96 | + |
| 97 | + |
| 98 | +**如有问题请先看上述使用文档和文章,若不能满足,欢迎 issue 和 pr ,视频教程和文档持续更新中** |
| 99 | + |
| 100 | +## 📦 本地开发 |
| 101 | + |
| 102 | +### 开发目录创建 |
| 103 | + |
| 104 | +```bash |
| 105 | + |
| 106 | +# 创建开发目录 |
| 107 | +mkdir goadmin |
| 108 | +cd goadmin |
| 109 | +``` |
| 110 | + |
| 111 | +### 获取代码 |
| 112 | + |
| 113 | +> 重点注意:两个项目必须放在同一文件夹下; |
| 114 | +
|
| 115 | +```bash |
| 116 | +# 获取后端代码 |
| 117 | +git clone https://github.com/go-admin-team/go-admin.git |
| 118 | + |
| 119 | +# 获取前端代码 |
| 120 | +git clone https://github.com/go-admin-team/go-admin-ui.git |
| 121 | + |
| 122 | +``` |
| 123 | + |
| 124 | + |
| 125 | +### 启动说明 |
| 126 | + |
| 127 | +#### 服务端启动说明 |
| 128 | + |
| 129 | +```bash |
| 130 | +# 进入 go-admin 后端项目 |
| 131 | +cd ./go-admin |
| 132 | + |
| 133 | +# 编译项目 |
| 134 | +go build |
| 135 | + |
| 136 | +# 修改配置 |
| 137 | +# 文件路径 go-admin/config/settings.yml |
| 138 | +vi ./config/setting.yml |
| 139 | + |
| 140 | +# 1. 配置文件中修改数据库信息 |
| 141 | +# 注意: settings.database 下对应的配置数据 |
| 142 | +# 2. 确认log路径 |
| 143 | +``` |
| 144 | + |
| 145 | +:::tip ⚠️注意 在windows环境如果没有安装中CGO,会出现这个问题; |
| 146 | + |
| 147 | +```bash |
| 148 | +E:\go-admin>go build |
| 149 | +# github.com/mattn/go-sqlite3 |
| 150 | +cgo: exec /missing-cc: exec: "/missing-cc": file does not exist |
| 151 | +``` |
| 152 | + |
| 153 | +or |
| 154 | + |
| 155 | +```bash |
| 156 | +D:\Code\go-admin>go build |
| 157 | +# github.com/mattn/go-sqlite3 |
| 158 | +cgo: exec gcc: exec: "gcc": executable file not found in %PATH% |
| 159 | +``` |
| 160 | + |
| 161 | +[解决cgo问题进入](https://doc.go-admin.dev/guide/other/faq.html#_5-cgo-exec-missing-cc-exec-missing-cc-file-does-not-exist) |
| 162 | + |
| 163 | +::: |
| 164 | + |
| 165 | +#### 初始化数据库,以及服务启动 |
| 166 | + |
| 167 | +``` bash |
| 168 | +# 首次配置需要初始化数据库资源信息 |
| 169 | +# macOS or linux 下使用 |
| 170 | +$ ./go-admin migrate -c=config/settings.dev.yml |
| 171 | + |
| 172 | +# ⚠️注意:windows 下使用 |
| 173 | +$ go-admin.exe migrate -c=config/settings.dev.yml |
| 174 | + |
| 175 | + |
| 176 | +# 启动项目,也可以用IDE进行调试 |
| 177 | +# macOS or linux 下使用 |
| 178 | +$ ./go-admin server -c config/settings.yml |
| 179 | + |
| 180 | + |
| 181 | +# ⚠️注意:windows 下使用 |
| 182 | +$ go-admin.exe server -c config/settings.yml |
| 183 | +``` |
| 184 | + |
| 185 | +#### 使用docker 编译启动 |
| 186 | + |
| 187 | +```shell |
| 188 | +# 编译镜像 |
| 189 | +docker build -t go-admin . |
| 190 | + |
| 191 | +# 启动容器,第一个go-admin是容器名字,第二个go-admin是镜像名称 |
| 192 | +# -v 映射配置文件 本地路径:容器路径 |
| 193 | +docker run --name go-admin -p 8000:8000 -v /config/settings.yml:/config/settings.yml -d go-admin-server |
| 194 | +``` |
| 195 | + |
| 196 | + |
| 197 | + |
| 198 | +#### 文档生成 |
| 199 | + |
| 200 | +```bash |
| 201 | +go generate |
| 202 | +``` |
| 203 | + |
| 204 | +#### 交叉编译 |
| 205 | +```bash |
| 206 | +# windows |
| 207 | +env GOOS=windows GOARCH=amd64 go build main.go |
| 208 | + |
| 209 | +# or |
| 210 | +# linux |
| 211 | +env GOOS=linux GOARCH=amd64 go build main.go |
| 212 | +``` |
| 213 | + |
| 214 | +### UI交互端启动说明 |
| 215 | + |
| 216 | +```bash |
| 217 | +# 安装依赖 |
| 218 | +npm install |
| 219 | + |
| 220 | +# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 |
| 221 | +npm install --registry=https://registry.npm.taobao.org |
| 222 | + |
| 223 | +# 启动服务 |
| 224 | +npm run dev |
| 225 | +``` |
| 226 | + |
| 227 | +## 🎬 在线体验 |
| 228 | +> admin / 123456 |
| 229 | +
|
| 230 | +演示地址:[http://www.go-admin.dev](http://www.go-admin.dev/#/login) |
| 231 | + |
| 232 | + |
| 233 | +## 📨 互动 |
| 234 | + |
| 235 | +<table> |
| 236 | + <tr> |
| 237 | + <td><img src="https://raw.githubusercontent.com/wenjianzhang/image/master/img/wx.png" width="180px"></td> |
| 238 | + <td><img src="https://raw.githubusercontent.com/wenjianzhang/image/master/img/qq.png" width="200px"></td> |
| 239 | + <td><img src="https://raw.githubusercontent.com/wenjianzhang/image/master/img/qq2.png" width="200px"></td> |
| 240 | + </tr> |
| 241 | + <tr> |
| 242 | + <td>微信</td> |
| 243 | + <td>此群已满</td> |
| 244 | + <td><a target="_blank" href="https://shang.qq.com/wpa/qunwpa?idkey=0f2bf59f5f2edec6a4550c364242c0641f870aa328e468c4ee4b7dbfb392627b"><img border="0" src="https://pub.idqqimg.com/wpa/images/group.png" alt="go-admin技术交流乙号" title="go-admin技术交流乙号"></a></td> |
| 245 | + </tr> |
| 246 | +</table> |
| 247 | + |
| 248 | +## 💎 主要成员 |
| 249 | + |
| 250 | +<a href="https://github.com/wenjianzhang"> <img src="https://avatars.githubusercontent.com/u/3890175?s=460&u=20eac63daef81588fbac611da676b99859319251&v=4" width="80px"></a> |
| 251 | +<a href="https://github.com/lwnmengjing"> <img src="https://avatars.githubusercontent.com/u/12806223?s=400&u=a89272dce50100b77b4c0d5c81c718bf78ebb580&v=4" width="80px"></a> |
| 252 | +<a href="https://github.com/chengxiao"> <img src="https://avatars.githubusercontent.com/u/1379545?s=460&u=557da5503d0ac4a8628df6b4075b17853d5edcd9&v=4" width="80px"></a> |
| 253 | +<a href="https://github.com/bing127"> <img src="https://avatars.githubusercontent.com/u/31166183?s=460&u=c085bff88df10bb7676c8c0351ba9dcd031d1fb3&v=4" width="80px"></a> |
| 254 | + |
| 255 | + |
| 256 | + |
| 257 | +## JetBrains 开源证书支持 |
| 258 | + |
| 259 | +`go-admin` 项目一直以来都是在 JetBrains 公司旗下的 GoLand 集成开发环境中进行开发,基于 **free JetBrains Open Source license(s)** 正版免费授权,在此表达我的谢意。 |
| 260 | + |
| 261 | +<a href="https://www.jetbrains.com/?from=kubeadm-ha" target="_blank"><img src="https://raw.githubusercontent.com/panjf2000/illustrations/master/jetbrains/jetbrains-variant-4.png" width="250" align="middle"/></a> |
| 262 | + |
| 263 | + |
| 264 | +## 🤝 特别感谢 |
| 265 | +1. [chengxiao](https://github.com/chengxiao) |
| 266 | +2. [gin](https://github.com/gin-gonic/gin) |
| 267 | +2. [casbin](https://github.com/casbin/casbin) |
| 268 | +2. [spf13/viper](https://github.com/spf13/viper) |
| 269 | +2. [gorm](https://github.com/jinzhu/gorm) |
| 270 | +2. [gin-swagger](https://github.com/swaggo/gin-swagger) |
| 271 | +2. [jwt-go](https://github.com/dgrijalva/jwt-go) |
| 272 | +2. [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) |
| 273 | +2. [ruoyi-vue](https://gitee.com/y_project/RuoYi-Vue) |
| 274 | +2. [form-generator](https://github.com/JakHuang/form-generator) |
| 275 | + |
| 276 | +## 🤟 打赏 |
| 277 | + |
| 278 | +> 如果你觉得这个项目帮助到了你,你可以帮作者买一杯果汁表示鼓励 :tropical_drink: |
| 279 | +
|
| 280 | +<img class="no-margin" src="https://raw.githubusercontent.com/wenjianzhang/image/master/img/pay.png" height="200px" > |
| 281 | + |
| 282 | +## 🤝 链接 |
| 283 | +[Go开发者成长线路图](http://www.golangroadmap.com/) |
| 284 | + |
| 285 | +## 🔑 License |
| 286 | + |
| 287 | +[MIT](https://github.com/go-admin-team/go-admin/blob/master/LICENSE.md) |
| 288 | + |
| 289 | +Copyright (c) 2020 wenjianzhang |
0 commit comments