Goravel Kit 是一个基于 Goravel 框架的全栈脚手架项目,集成了企业级应用开发的常用功能模块,帮助开发者快速搭建 Web 前后端项目。
- 🚀 开箱即用 - 预置完整的前后端架构,快速启动项目开发
- 👥 用户管理体系 - 完整的用户注册、登录、权限控制系统
- 🔐 RBAC 权限控制 - 基于角色的访问控制,精细化的权限管理
- 📊 后台管理功能 - 包含用户、权限、菜单、角色等管理模块
- ⚡ WebSocket内置 - 内置 WebSocket 长连接,支持实时通信
- 🔄 代码生成器 - 自动化 CRUD 代码生成,提高开发效率
- 📄 PDF 生成器 - 集成 PDF 文档生成功能
- 框架: Goravel - Go 语言的 Web 框架
- 主要功能: RESTful API、JWT 认证、CRUD代码生成器,内置swag 文档生成,同时前端对接了openapi,一键生成前端接口,具体参考goravel-crud
- websocket: 内置websocket长连接,支持实时通信,可用于实时通信场景,如收银机语音播报
- 附件管理: 附件管理,支持上传、下载、删除,默认使用本地储存,可自行扩展
- 框架: Vue 3 - 渐进式 JavaScript 框架
- UI 组件: Ant Design Vue - 企业级 UI 设计语言
- 状态管理: Pinia/Vuex
- 包管理: pnpm
- 构建工具: Vite
- Go 1.18+
- Node.js 14+
- MySQL 5.7+
- Redis
- 步骤一:检查当前环境
echo "GOPATH: $(go env GOPATH)"echo "GOBIN: $(go env GOBIN)"echo "PATH: $PATH" - 步骤二:查看当前 PATH
echo $PATH - 步骤三:检查是否包含 Go 的 bin 目录
which go - 步骤四:添加 Go bin 目录到 PATH(如果不在)
echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.zshrc source ~/.zshrc - 步骤五:安装工具
go install github.com/hulutech-web/goravel-kit-cli@latest - 步骤六:检查安装结果
ls -la $(go env GOPATH)/bin/ | grep goravel-kit-cli - 步骤六:验证
which goravel-kit-cli goravel-kit-cli --version - 其他:重装步骤
rm -f $(go env GOPATH)/bin/goravel-kit-cligo install github.com/hulutech-web/goravel-kit-cli@latest
- 进入前端目录
cd frontend- 安装依赖
pnpm install- 启动开发服务器
pnpm devgoravel-kit/
├── app/ # 后端应用代码
│ ├── models/ # 数据模型
│ ├── http/ # 控制器和路由
│ ├── services/ # 业务逻辑层
│ └── providers/ # 服务提供者
├── config/ # 配置文件
├── database/ # 数据库迁移和种子
├── resources/ # 资源文件
├── routes/ # 路由定义
├── storage/ # 存储目录
└── frontend/ # 前端项目
├── src/
│ ├── api/ # API接口
│ ├── components/ # 公共组件
│ ├── router/ # 路由配置
│ ├── stores/ # 状态管理
│ └── views/ # 页面组件
└── package.json
- 用户增删改查
- 用户状态管理
- 个人信息修改
- 基于角色的访问控制(RBAC)
- 权限分配与管理
- 菜单权限控制
- 动态菜单配置
- 菜单权限绑定
- 多级菜单支持
- 角色创建与编辑
- 角色权限分配
- 角色用户管理
- 自动化生成CRUD代码
- 支持模板定制
- 一键生成前后端代码
- 系统消息通知
- 实时通信
- 语音播报等
使用代码生成器创建新模块:
goravel-kit-cli new myapp系统将克隆完整源码,并初始化goravel env,jwt等文件,数据库默认使用mysql驱动,默认启动redis缓存,请注意配置。
GET|HEAD / .............................................................................................................................................................................................................................................................................. goravel/routes.Web.func1
POST api/admin/auth/login ............................................................................................................................................................................................................................... goravel/app/http/controllers.(*AuthController).Login
RESOURCE api/admin/file ........................................................................................................................................................................................................................................... goravel/app/http/controllers.(*FileController)
GET|HEAD api/admin/file/list ................................................................................................................................................................................................................................. goravel/app/http/controllers.(*FileController).List
GET|HEAD api/admin/file/option ............................................................................................................................................................................................................................. goravel/app/http/controllers.(*FileController).Option
RESOURCE api/admin/file_cate .................................................................................................................................................................................................................................. goravel/app/http/controllers.(*FileCateController)
GET|HEAD api/admin/file_cate/list ........................................................................................................................................................................................................................ goravel/app/http/controllers.(*FileCateController).List
GET|HEAD api/admin/file_cate/option .................................................................................................................................................................................................................... goravel/app/http/controllers.(*FileCateController).Option
POST api/admin/file_cate/{id}/files ................................................................................................................................................................................................................. goravel/app/http/controllers.(*FileCateController).Files
POST api/admin/file_del_batch ........................................................................................................................................................................................................................ goravel/app/http/controllers.(*FileController).DelBatch
RESOURCE api/admin/menu ........................................................................................................................................................................................................................................... goravel/app/http/controllers.(*MenuController)
GET|HEAD api/admin/menu/list ................................................................................................................................................................................................................................. goravel/app/http/controllers.(*MenuController).List
GET|HEAD api/admin/menu/option ............................................................................................................................................................................................................................. goravel/app/http/controllers.(*MenuController).Option
GET|HEAD api/admin/menu/route ................................................................................................................................................................................................................................ goravel/app/http/controllers.(*AuthController).Menu
RESOURCE api/admin/permission ............................................................................................................................................................................................................................... goravel/app/http/controllers.(*PermissionController)
GET|HEAD api/admin/permission/list ..................................................................................................................................................................................................................... goravel/app/http/controllers.(*PermissionController).List
GET|HEAD api/admin/permission/option ................................................................................................................................................................................................................. goravel/app/http/controllers.(*PermissionController).Option
RESOURCE api/admin/role ........................................................................................................................................................................................................................................... goravel/app/http/controllers.(*RoleController)
GET|HEAD api/admin/role/list ................................................................................................................................................................................................................................. goravel/app/http/controllers.(*RoleController).List
GET|HEAD api/admin/role/option ............................................................................................................................................................................................................................. goravel/app/http/controllers.(*RoleController).Option
GET|HEAD api/admin/role/{id}/permissions .............................................................................................................................................................................................................. goravel/app/http/controllers.(*RoleController).Permissions
POST api/admin/role/{id}/sync_permissions ..................................................................................................................................................................................................... goravel/app/http/controllers.(*RoleController).SyncPermissions
GET|HEAD api/admin/user ..................................................................................................................................................................................................................................... goravel/app/http/controllers.(*UserController).Index
GET|HEAD api/admin/user/option ............................................................................................................................................................................................................................. goravel/app/http/controllers.(*UserController).Option
GET|HEAD api/admin/user/own ................................................................................................................................................................................................................................... goravel/app/http/controllers.(*UserController).Own
POST api/ws/bind_to_group ......................................................................................................................................................................................................... goravel/packages/goravel-socket/api/bind2group.(*Bind2GroupController).Run
POST api/ws/close_client ........................................................................................................................................................................................................ goravel/packages/goravel-socket/api/closeclient.(*CloseClientController).Run
POST api/ws/get_all_groups ...................................................................................................................................................................................................... goravel/packages/goravel-socket/api/getallgroup.(*GetAllGroupController).Run
POST api/ws/get_online_list ..................................................................................................................................................................................................... goravel/packages/goravel-socket/api/getonlinelist.(*GetOnlineController).Run
POST api/ws/register .................................................................................................................................................................................................................. goravel/packages/goravel-socket/api/register.(*RegisterController).Run
POST api/ws/send_to_client ...................................................................................................................................................................................................... goravel/packages/goravel-socket/api/send2client.(*Send2ClientController).Run
POST api/ws/send_to_clients ................................................................................................................................................................................................... goravel/packages/goravel-socket/api/send2clients.(*Send2ClientsController).Run
POST api/ws/send_to_group ......................................................................................................................................................................................................... goravel/packages/goravel-socket/api/send2group.(*Send2GroupController).Run
STATIC assets ..................................................................................................................................................................................................................................................................................................
GET|HEAD crud ........................................................................................................................................................................................................................................................................... goravel/routes.Web.func2
POST crud/controller_make .............................................................................................................................................................................................................. goravel/packages/goravel_crud/controller.(*CRUDController).Controller
POST crud/migrate ......................................................................................................................................................................................................................... goravel/packages/goravel_crud/controller.(*CRUDController).Migrate
POST crud/migration_make ................................................................................................................................................................................................................ goravel/packages/goravel_crud/controller.(*CRUDController).Migration
POST crud/model_make ........................................................................................................................................................................................................................ goravel/packages/goravel_crud/controller.(*CRUDController).Model
POST crud/request_make .................................................................................................................................................................................................................... goravel/packages/goravel_crud/controller.(*CRUDController).Request
POST crud/router_make ...................................................................................................................................................................................................................... goravel/packages/goravel_crud/controller.(*CRUDController).Router
POST crud/table_column ................................................................................................................................................................................................................ goravel/packages/goravel_crud/controller.(*CRUDController).TableColumn
GET|HEAD crud/tables ........................................................................................................................................................................................................................... goravel/packages/goravel_crud/controller.(*CRUDController).Tables
STATIC dist ....................................................................................................................................................................................................................................................................................................
GET|HEAD panel ................................................................................................................................................................................................................................................... goravel/packages/goravel_crud/routes.CRUD.func1
GET|HEAD pdf_design ............................................................................................................................................................................................................................................ goravel/packages/goravel_pdf_gen/routes.Pdf.func1
GET|HEAD pdf_prefix/generate/{id} ......................................................................................................................................................................................................... goravel/packages/goravel_pdf_gen/controllers.(*PDFController).Generate
GET|HEAD pdf_prefix/getDefaultTemplate .......................................................................................................................................................................................... goravel/packages/goravel_pdf_gen/controllers.(*PDFController).GetDefaultTemplate
GET|HEAD pdf_prefix/getIndexTemplate .............................................................................................................................................................................................. goravel/packages/goravel_pdf_gen/controllers.(*PDFController).GetIndexTemplate
POST pdf_prefix/saveHTML/{id} ......................................................................................................................................................................................................... goravel/packages/goravel_pdf_gen/controllers.(*PDFController).SaveHTML
POST pdf_prefix/saveTemplate/{id} ................................................................................................................................................................................................. goravel/packages/goravel_pdf_gen/controllers.(*PDFController).SaveTemplate
GET|HEAD swagger/*any ........................................................................................................................................................................................................................ goravel/packages/goravel_crud/controller.(*SwaggerController).Index
STATIC uploads .................................................................................................................................................................................................................................................................................................
GET|HEAD ws ............................................................................................................................................................................................................................................ goravel/packages/goravel-socket/servers.(*Controller).Run 欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启一个 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- 邮箱:yuanhaozhuzhu@hotmail.com
- Issues: GitHub Issues
⭐ 如果这个项目对你有帮助,请给它一个星标!