Giter Club home page Giter Club logo

lostvip-com / ruoyi-go Goto Github PK

View Code? Open in Web Editor NEW
74.0 3.0 26.0 16.01 MB

🎉若依后台管理系统(golang版),基于 gin + gorm,支持mybatis式的sql与go代码分离,代码风格极尽简洁,传统模板引擎技术,适合后端开发人员单挑一个项目使用。 ruoyi go

Home Page: http://www.lostvip.com

License: MIT License

Go 99.91% Dockerfile 0.03% Batchfile 0.01% Shell 0.06%
go-admin go-admin-layui golang-mybatis golang-springcloud go-mybatis gorm ruoyi

ruoyi-go's Introduction

logo

ruoyi-go

Go语言版轻量级快速开发框架

框架简介

摒弃过度封装,代码风格极尽简洁,适合中小项目使用!
架构思路沿袭着若依的以辅助生成重复代码为主,不过度封装,生成的代码可以快速修改适应不同的需求。

  • 项目结构模仿springboot,简单改造后可注册到nacos中做为springcloud微服务的一员,对java开发人员友好。
  • 支持类mybatis查询,sql与go代码分离(基于gorm + golang的template语法实现,为了idea能识别sql关键字,后缀使用_mapper.sql)。
  • 提供相关服务配置脚本,可发布到 k8s、docker swarm中做为微服务使用。
  • 支持在yaml文件中使用表达式从环境变量中取值,便于切换生产、开发、测试环境参数(模仿springboot),如:
    host: ${REDIS_HOST:lostvip.com}
    如: 环境变量添加 REDIS_HOST=192.168.88.114;REDIS_PORT=6379;REDIS_PWD=dpctest

核心技术及组件

  • DAO层架: gorm,简单易用,支持namedSQL占位符查询.
  • Web服务框架: Gin 简单高效,模板可热加载.
  • 前端技术: 模板引擎,服务端渲染.
  • 缓存支持: redis .
  • 安全认证:支持通过jwt无状态 或 token有状态的安全校验.
  • 代码生成:在线生成代码,并一键导入菜单到业务模块.
  • 导出excel文件 tealeg/xlsx.
  • api文档生成 swaggo/swag.
  • 图形验证码 base64Captcha.
  • 服务器监控 gopsutil.
  • 若依前端组件 RuoYi v4.7.0 .

内置功能

  1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  3. 岗位管理:配置系统用户所属担任职务。
  4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
  5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  7. 参数管理:对系统动态配置常用参数。
  8. 通知公告:系统通知公告信息发布维护。
  9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  10. 登录日志:系统登录日志记录查询包含登录异常。
  11. 在线用户:当前系统中活跃用户状态监控。
  12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  13. 代码生成:前后端代码的生成(Go、html、json、sql) 。
  14. 系统接口:根据业务代码自动生成相关的api接口文档。
  15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
  16. 在线构建器:拖动表单元素生成相应的HTML代码。
  17. 案例演示:常用的前端组件整合演示。

目录结构

本着简单易用的原则,简化工程结构,没有dao层。

main[]()     
├── bak               // 资料备份
│   └── local         // 本地配置文件备份
│   └── script        // 发布相关的脚本备份
│   └── sql           // 数据库文件备份
├── common            // 共享模块,适用微于服务分拆后资源的共享,如用户,权限,字典等   
├── samples           // 微服务分拆举例,注册到可注册到nacos,若只开发单体服务可删除此模块    
├── main              // 主工程模块,可做为单体服务,也可改为微服务,见bootstrap.yml
│   └── internal                 // 源码存放目录,internal禁止其它模块引用
│   └── static                   // 静态文件目录
│   └── mapper                   // 类mybatis映射文件存放目录
│   └── template                 // 模板存放目录
│   └── bootstrap.yml            // 项目根配置文件,模仿springboot
│   └── application.ym           // 项目配置文件,模仿springboot
│   └── build.sh                 // 编译脚本,方便打包
│   └── build-cgo.sh             // 编译脚本,启用cgo,需要打包sqlite时有用
│   └── build-linux.bat          // 编译脚本,windows环境交叉编译用
│   └── data.db                  // 使用sqlite数据库时有用,只使用mysql可删除                             
│   └── Dockerfile               // Docker镜像文件
├── lv_framework       // 依赖库,通用框架,简单封装了数据库,web等常用功能
│       └── lv_cache               // 通用缓存
│       └── lv_conf                // 通用配置
│       └── lv_db                  // 数据库相关
│       └── lv_log                 // 通用日志处理,统一风格,方便切换第三方日志库
│       └── utils                  // 通用工具类
│       └── web                    // 通用web组件  
├── go.work            // 项目模块配置
├── build-linux.bat    // 编译脚本

启动

前置条件:

  1. linux环境,可配置GO_PROXY环境变量,如:export GO_PROXY=https://goproxy.cn
  2. windows环境,可在环境变量 GO_PROXY 值为: https://goproxy.cn 安装相关依赖!

1. 修改应该的数据库及缓存配置

  • sqlite:默认使用sqlite数据库,可不做任何修改
  • mysql: 导入docs中的sql文件,修改application.yml中的mysql相关信息

2. cd 进入main目录启动应用

  • 方式一 :常规启动
go run main.go

启动完成后,在控制台会打印出访问地址: http://127.0.0.1:8080

  • 方式二: 使用第三方热加载组件

前置条件: cd 到 main 目录,安装热加载框架:
go get github.com/pilu/fresh
go install github.com/pilu/fresh

启动

fresh

登录账号和密码

演示1: http://demo.lostvip.com

账号: admin / admin123

注意,本站未做任何防护,管理员有所有权限,请不要删除任何数据!

交叉编译

docker pull techknowlogick/xgo 交叉编译工具推荐使用xgo

# 全平台编译:
xgo -ldflags "-w -s"
# arm7平台:  
xgo -ldflags "-w -s"  -out svc-$(date '+%Y%m%d_%H%M%S') --targets=linux/arm-7 .

演示图

感谢(排名不分先后)

GORM https://https://gorm.io/ Tealeg https://github.com/tealeg/xlsx Swaggo https://github.com/swaggo/swag WEB框架 https://github.com/gin-gonic/gin 缓存框架 https://github.com/redis/go-redis 若依yjgo https://github.com/guolingege/yjgo RuoYi https://github.com/yangzongzhuan/RuoYi SQL文件解析: https://github.com/qustavo/dotsql 热加载框架 http://github.com/pilu/fresh

项目支持

QQ交流群

如有兴趣一起完善,进QQ群 43862272

ruoyi-go's People

Contributors

lostvip-com avatar ssuhvs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ruoyi-go's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.