# MoSkeleton **Repository Path**: mantianfly-five/mo-skeleton ## Basic Information - **Project Name**: MoSkeleton - **Description**: go web开箱即用后台管理系统, 前端基于ruoyi-ui, 改造后端主要基于gorm,gin,go-redis等技术,实现了RBAC,数据权限等后台系统的基础功能 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 3 - **Created**: 2024-07-18 - **Last Updated**: 2026-05-28 ## Categories & Tags **Categories**: backend **Tags**: None ## README # Mo Go框架 本系统采用前后端分离的架构模式,前端基于Vue3+Vite2+ElementPlus,后端基于Go语言,框架基于Gin+Gorm+Gorm,开发数据库为mysql。 理论上可以支持:mysql ,postgresql,sqlserver,sqlite等数据库。(除了mysql,其他数据库未经测试) 本系统可适用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等 ## [前端代码地址](https://gitee.com/mantianfly-five/mo-skeleton-ui) 前端基于诺依开源的代码,并针对本系统进行了安全增强和适配。 ## 1. 总体架构 ## 2. 技术架构 ## 3. 路线图(roadmap) ![产品路线图](doc/架构图/roadmap.png) ## 3. 工程结构图 ![工程结构](doc/架构图/工程结构.png) ## 4. 主要领域模型 ![领域模型](doc/架构图/domain.png) * 图中橙色部分表示操作权限,蓝色部分表示数据权限 * 基于RBAC的权限模型, 配合角色-部门的数据权限 * 菜单内部分为:目录,菜单,按钮三种类型 * 一个角色可以关联多个菜单,一个菜单可以关联多个角色 (角色-菜单多对多) * 一个角色可以关联多个用户,一个用户可以关联多个角色(角色-用户多对多) * 一个用户只能在一个部门下,部门下可以有多个用户(部门-用户一对多) * 一个岗位可以关联多个用户,一个用户可以关联多个岗位(岗位-用户多对多) ## 4. 系统初始化 ### 4.1 默认密码 admin / admin123 tester / tester123 ### 登录图形验证码 在开发模式下,如果开启use-solid-code: true, 则允许使用111111 ,当成验证码的值,方便开发、测试,在生产环境下,请关闭。use-solid-code: false, ## 5. 配置文件说明 * [config.yaml](https://gitee.com/mantianfly-five/mo-skeleton/blob/master/config/config.yaml) ## 6. 文档 *[数据权限](https://www.yuque.com/xiaoyazigagaga/mo-ske/vylxdhyi18k54i5x?singleDoc#《数据权限设计》) ## 权限配置 ### 后台配置 本系统主要基于RBAC的权限模型,每个用户所具有的权限,由他所关联的角色以及角色所关联的菜单决定的。 ## 系统截图 ![主界面](doc/capture/main_1.png) [更多截图](https://www.yuque.com/xiaoyazigagaga/mo-ske/mxpndps12h2rv7s7?singleDoc#《系统主要功能截图》) ## 二次开发 ### FAQ 1. 如何新增接口/菜单? * 系统采用mvc的架构模式,在系统后台配置菜单,web/v1/http目录下添加控制层,services目录下添加服务层,models目录下添加数据模型, 在router_makeup.go文件添加路由 2. 如何控制接口权限? * 在系统后台配置用户权限后,访问接口时,如果需要自动校验用户是否具有访问该接口的权限,需在router_makeup.go文件中添加authorization.CheckXXX方法 ### swagger 生成 swagger doc : swag init -g bootstrap/main/main.go --output bootstrap/main/docs 访问文档: http://127.0.0.1:2457/swagger/index.html ## nacos nacos配置中心,用于存储系统配置,如:数据库连接信息,redis连接信息等。 开发基于nacos2.4.2版本,采用grpc协议,默认的端口: 9848 配置文件:assets/config/bootstrap.yml , 文件中配置了nacos的配置信息, 其他的配置文件已迁移到nacos中 ## mod 安装 安装模块,执行命令:go mod tidy ## 组件文档 https://pkg.go.dev/github.com/zavitax/sortedset-go ## 名词说明 pogo : plain ordinary go object 简单的go对象 ## use pprof tool Then use the pprof tool to look at the heap profile: go tool pprof http://localhost:8080/debug/pprof/heap Or to look at a 30-second CPU profile: go tool pprof http://localhost:8080/debug/pprof/profile Or to look at the goroutine blocking profile, after calling runtime.SetBlockProfileRate in your program: go tool pprof http://localhost:8080/debug/pprof/block Or to collect a 5-second execution trace: wget http://localhost:8080/debug/pprof/trace?seconds=5