This commit is contained in:
孟帅
2022-11-24 23:37:34 +08:00
parent 4ffe54b6ac
commit 29bda0dcdd
1487 changed files with 97869 additions and 96539 deletions

260
README.md
View File

@@ -1,83 +1,247 @@
# hotgo
# HotGO-V2
<div align="center">
<img width="140px" src="https://bufanyun.cn-bj.ufileos.com/hotgo/logo.sig.png">
<p>
<h1>HotGO V2.0</h1>
</p>
<p align="center">
<a href="https://goframe.org/pages/viewpage.action?pageId=1114119" target="_blank">
<img src="https://img.shields.io/badge/goframe-2.1-green" alt="goframe">
</a>
<a href="https://v3.vuejs.org/" target="_blank">
<img src="https://img.shields.io/badge/vue.js-vue3.x-green" alt="vue">
</a>
<a href="https://www.naiveui.com" target="_blank">
<img src="https://img.shields.io/badge/naiveui-%3E2.0.0-blue" alt="naiveui">
</a>
<a href="https://www.tslang.cn/" target="_blank">
<img src="https://img.shields.io/badge/typescript-%3E4.0.0-blue" alt="typescript">
</a>
<a href="https://vitejs.dev/" target="_blank">
<img src="https://img.shields.io/badge/vite-%3E2.0.0-yellow" alt="vite">
</a>
<a href="https://raw.githubusercontent.com/tusen-ai/naive-ui/main/LICENSE" target="_blank">
<img src="https://img.shields.io/badge/license-MIT-success" alt="license">
</a>
</p>
</div>
#### HotGo 是一个基于 vue 和 goframe2.0 开发的全栈前后端分离的开发基础平台和移动应用平台集成jwt鉴权动态路由动态菜单casbin鉴权消息队列定时任务等功能提供多种常用场景文件让您把更多时间专注在业务开发上。
## 技术选型
## 平台简介
* 基于全新Go Frame 2.0+Vue3+Naive UI开发的全栈前后端分离的管理系统
* 前端采用naive-ui-admin 、Vue、Naive UI。
* 后端:用 goframe2.0 快速搭建基础APIgoframe2.0 是一个go语言编写的Web框架。
* 前端:用基于 JeeSite Mobile Uni-App+aidex-sharp 构建基础页面。
* 数据库采用MySql(8.0)版本,使用 gorm 实现对数据库的基本操作
* 缓存使用Redis实现记录当前活跃用户的jwt令牌并实现多点登录限制。
* API文档使用Swagger构建自动化文档。
* 消息队列:同时兼容 kafka、redis、rocketmq一键配置切换到自己想用的MQ。
## 特征
* 高生产率:几分钟即可搭建一个后台管理系统
* 模块化:单应用多系统的模式,将一个完整的应用拆分为多个系统,后续扩展更加便捷,增加代码复用性
* 插件化: 可通过插件的方式扩展系统功能
* 认证机制采用jwt的用户状态认证及casbin的权限认证
* 路由模式得利于goframe2.0提供了规范化的路由注册方式,无需注解自动生成api文档
* 面向接口开发
## 系统截图
#### * web端
![image](https://user-images.githubusercontent.com/26652343/155689571-e6a0a5a3-011b-44cc-b84b-a1c82301b207.png)
## 内置功能
![image](https://user-images.githubusercontent.com/26652343/155689646-d3395261-6061-469f-8256-3cd0ff9f5d05.png)
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、岗位),树结构展现支持数据权限。
3. 岗位管理:配置系统用户所属担任职务。
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. 配置管理:对系统动态配置常用参数。
8. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
9. 登录日志:系统登录日志记录查询包含登录异常。
10. 调度日志:服务端运行所产生的警告、异常、崩溃日志的详细数据和堆栈信息。
11. 在线用户:当前系统中活跃用户状态监控。
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
13. 代码生成:前后端代码的生成。
14. 服务监控监视当前系统CPU、内存、磁盘、网络、堆栈等相关信息。
15. 附件管理:文件上传,多种上传方式适配。
16. 消息队列:同时兼容 kafka、redis、rocketmq一键配置切换到自己想用的MQ。
17. 通知公告采用websocket及时推送在线用户最新公告。
18. 地区编码:整合国内通用省市区编码,运用于项目于一身。
19. 常用工具:集成常用的工具包和命令行工具,可以快速开发自定义命令行,多种启动入口。
![image](https://user-images.githubusercontent.com/26652343/155689709-5ddac1d3-1c01-4fab-9d3a-9ece72ca5ba0.png)
#### * 移动端
![image](https://user-images.githubusercontent.com/26652343/155689481-2fc019eb-18e4-4a94-b417-50524e945089.png)
![image](https://user-images.githubusercontent.com/26652343/155689738-ac97f9c0-47ae-499b-b3fe-0cb4ce97f3bc.png)
> HotGo开源以来得到了大家的很多支持本项目初衷只为互相学习交流没有任何盈利性目的欢迎为HotGO贡献代码或提供建议
## 演示地址
- [https://hotgo.facms.cn/admin](https://hotgo.facms.cn/admin)
> 账号admin 密码123456
## 环境要求
- node版本 >= v14.0.0
- golang版本 >= v1.16
- node版本 >= v16.0.0
- golang版本 >= v1.18
- gf版本 >=2.1
- IDE推荐Goland
- mysql版本 >=8.0
- redis版本 >=5.0
- mysql版本 >=5.7
- redis版本 >=3.0
## 快速开始
一、拉取代码到你已经安装好以上环境的服务器中
一、拉取代码到你已经安装好以上环境的服务器中
```shell script
git clone https://github.com/bufanyun/hotgo.git
git clone https://github.com/bufanyun/hotgo.git && cd hotgo
```
二、配置你的站点信息
服务端:
- 创建mysql数据库将数据库文件导入你的mysql目录地址/hotgo-server/storage/hotgo.sql
- 将/hotgo-server/config/config.example.yaml 改为config.yaml并根据你实际环境情况进行配置
- 项目数据库文件 `resource/data/db.sql` 创建数据库并导入
- 修改配置 `manifest/config/config.yaml.bak` 复制改为`manifest/config/config.yaml`
web+uinapp端
- 配置服务端地址,包含在一下文件中:
* hotgo-uniapp/common/config.js
* /hotgo-uniapp/manifest.json
* hotgo-uniapp/common/config.js
其中hotgo配置
```yaml
hotgo:
debug: true # debug开关开启后接口出现错误时会输出堆栈信息默认为true
ipMethod: "cz88" # IP归属地解析方法可选cz88|whois默认为cz88
wsAddr: "ws://你的IP:8000/socket" # 客户端websocket连接地址如果项目在公网请填写公网IP:运行端口
isDemo: false # 是否為演示系統 false | true
ssl: # https
switch: false # 是否开启https访问需要配置sslCrtPath、sslKeyPath证书夹
crtPath: "resource/ssl/server.crt"
keyPath: "resource/ssl/server.key"
log: # 全局请求日志
switch: true # 日志开关默认为true
queue: true # 是否启用队列启用时需要配置队列信息默认为true
module: [ "admin", "api", "default" ] # 需要记录的模块
skipCode: [ ] # 不记录的状态码,如: ["0", "-1"]
admin:
superIds: [ 1,2 ] # 后台超管账号ID通过ID验证超管
superRoleKey: "super" # 超管角色唯一标识符,通过角色验证超管
defaultPage: 10 # 列表分页默认加载数量
defaultPageSize: 1 # 列表分页默认加载页码
```
后台前端:
- 配置服务端地址,包含在以下文件中:
* /hotgo/web/.env.development
* /hotgo/web/.env.production
* /hotgo/web/.env
其中必改配置
```
VITE_PROXY=[["/admin","http://你的IP:8000/admin"]]
```
三、 启动服务
服务端:
```shell script
cd hotgo-server
go mod tidy #更新包
go run main.go #启动服务
cd server
# 更新包
go mod tidy
# 查看命令行方法
go run main.go
# 启动所有服务
gf run main.go --args "all"
# 如果顺利至此到浏览器打开http://你的IP:8000/admin即可看到后台登录地址
# 登录账号admin, 密码123456
# 好奇为什么没有运行前端代码就能将后台运行起来这要得益于gf强大的pack功能
# 当然这只是为了降低运行门槛,如果想对前端进行开发请继续往下看
```
web端
```shell script
cd hotgo-web
npm install #安装依赖
npm run dev #启动web项目
cd web
# 首先确定你以安装node16.0以上版本并安装了包[npm、yarn],否则可能会出现一些未知报错
# 安装依赖
yarn install
# 启动web项目
npm run dev
# 如果顺利至此到浏览器打开http://你的IP:8001/admin
```
uinapp端
- 1、下载并安装集成开发环境 HBuilderX (推荐,也可以使用 VSCode 或 WebStorm
- 2、菜单文件 -> 导入 -> 从本地目录导入,选择 “jeesite4-uniapp” 文件夹。
- 3、菜单运行 -> 运行到内置浏览器(或运行到浏览器 -> Chrome 浏览器)。
- 4、等待 HBuliderX 控制台编译完成后,会自动弹出手机登录页面。
## 特别感谢(以下排名不分先后)
## 文档地址
> 文档正在书写中,请耐心等一等。
* goframe2.0 https://goframe.org
* JeeSite Mobile Uni-App https://gitee.com/thinkgem/jeesite4-uniapp
* aidex-sharp https://gitee.com/big-hedgehog/aidex-sharp
## 开源声明
* 目前项目还在持续更新中,仅供参考学习,如遇到问题请联系作者下方微信!
## 演示图
<table>
<tr>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/1.png"/></td>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/2.png"/></td>
</tr>
<tr>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/3.png"/></td>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/4.png"/></td>
</tr>
<tr>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/5.png"/></td>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/6.png"/></td>
</tr>
<tr>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/7.png"/></td>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/8.png"/></td>
</tr>
<tr>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/9.png"/></td>
<td><img src="https://bufanyun.cn-bj.ufileos.com/hotgo/example/10.png"/></td>
</tr>
</table>
## 感谢(排名不分先后)
> gf框架 [https://github.com/gogf/gf](https://github.com/gogf/gf)
>
> naive-ui [https://www.naiveui.com](https://www.naiveui.com)
>
> naive-ui-admin [https://github.com/jekip/naive-ui-admin](https://github.com/jekip/naive-ui-admin)
>
> websocket [https://github.com/gorilla/websocket](github.com/gorilla/websocket)
>
> casbin [https://github.com/casbin/casbin](https://github.com/casbin/casbin)
## 交流QQ群
交流群①190966648 <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=mJafkvme3VNyiQlCFIFNRtY8Xlr7pj9U&jump_from=webapi&authKey=jL10vIESr+vO8wpxwyd6DlChzkrbHpzN9uhAsIHgAinL/Vvd+nvuRyilf2UqUlCy"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="HotGo框架交流1群" title="HotGo框架交流1群"></a>
> <img src="https://bufanyun.cn-bj.ufileos.com/hotgo/hotgo1qun.png" width="400px"/>
> 感谢你使用HotGo,公司团队精力时间有限,因此我们不再提供免费的技术服务!
>
> 同时您也可以联系我们,雇佣我们团队为您干活,谢谢合作!
## 商用说明
> HotGo 是开源免费的,遵循 MIT 开源协议,意味着您无需支付任何费用,也无需授权,即可将它应用到您的产品中。
* 使用本项目必须保留所有版权信息。
* 本项目包含的第三方源码和二进制文件之版权信息另行标注。
* 版权所有Copyright © 2022-2024 by Ms (https://github.com/bufanyun/hotgo)
* All rights reserved。
## 免责声明:
* HotGo为开源学习项目一切商业行为与HotGo无关。
* 用户不得利用HotGo从事非法行为用户应当合法合规的使用发现用户在使用产品时有任何的非法行为HotGo有权配合有关机关进行调查或向政府部门举报HotGo不承担用户因非法行为造成的任何法律责任一切法律责任由用户自行承担如因用户使用造成第三方损害的用户应当依法予以赔偿。
* 所有与使用HotGo相关的资源直接风险均由用户承担。
#### 如果对您有帮助,您可以点右上角 💘Star💘支持
## [感谢JetBrains提供的免费GoLand](https://jb.gg/OpenSource)
[![avatar](https://camo.githubusercontent.com/323657c6e81419b8e151e9da4c71f409e3fcc65d630535170c59fe4807dbc905/68747470733a2f2f676f6672616d652e6f72672f646f776e6c6f61642f7468756d626e61696c732f313131343131392f6a6574627261696e732e706e67)](https://jb.gg/OpenSource)
![image](https://user-images.githubusercontent.com/26652343/155691271-1ded98d8-f0f1-4467-9079-26cec1195af5.png)