Git Product home page Git Product logo

echo-admin's Introduction

Echo-Admin

基于 Echo + Gorm + Casbin + Uber-FX 实现的 RBAC 权限管理脚手架,致力于提供一套尽可能轻量且优雅的中后台解决方案。


English | 简体中文

特性

  • 遵循 RESTful API 设计规范
  • 基于 Echo API 框架,提供了丰富的中间件支持 (JWT 认证、鉴权、请求级事务、访问日志、跨域等)
  • 基于 CasbinRBAC 访问控制模型
  • 基于 Gorm V2 的数据库存储,可扩展多种类型数据库
  • 基于 uber/fx 实现依赖注入
  • 支持 Swagger 文档 (基于 swaggo)
  • 配置化、模块化

简介

echo-admin 是基于 vue 和 go 整合了优秀的开源框架和工具实现的中后台管理系统,集成了用户认证、角色管理、动态菜单和权限控制,让任何可能的使用者把时间专注在业务开发上。

在线预览

# 只读账号
用户名: test
密码: 123123

Swagger 文档

前端项目源码

使用说明

欢迎 PR 和 Issue,理想情况下,我都会尽快处理和回复,感谢你关注甚至使用 echo-admin

开发语言推荐版本

node >= 12.22.1
golang >= 1.16 

下载代码

git clone https://github.com/RealLiuSha/echo-admin

生成文档

当你完善了项目中的 swagger 文档需要重新生成,执行以下指令

make swagger

项目初始化

echo-admin 通过 makefile 预设了一些指令,详情可自行查阅

首次启动本项目前需要相对应的修改配置文件 config/config.yaml, 你至少需要保证 mysqlredis 的相关配置正确,随后你可以通过以下指令完成表的新建和数据的初始化

make migrate # 创建表
make setup # 初始化菜单数据

启动

make

计划任务

  • 异步任务
  • 实现日志审计
  • 全配置化的工作流
  • 个人中心
  • 系统状态展示
  • 生产级的项目质量

互动交流

微信

echo-admin's People

Contributors

realliusha 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

echo-admin's Issues

项目无法启动

你好,我将项目拉下来。运行:

make migrate
make setup
make swagger
make start

然后请求任何接口都会出现

github.com/RealLiuSha/echo-admin/api/middlewares.CoreMiddleware.core.func1.1.1(0xc001e757a0, 0xc00016c630, 0x1025c88, 0xc000372320)
        /home/admin/Documents/projects/echo-admin/api/middlewares/core_middleware.go:59 +0xf0
panic(0xdd5260, 0x20dd6b0)
        /usr/lib/go-1.16/src/runtime/panic.go:965 +0x1b9
github.com/RealLiuSha/echo-admin/api/middlewares.CasbinMiddleware.core.func1.1(0x1025c88, 0xc000372320, 0x0, 0x0)
        /home/admin/Documents/projects/echo-admin/api/middlewares/casbin_middleware.go:53 +0x182
github.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1(0x1025c88, 0xc000372320, 0x20f8a80, 0xc00076b900)
        /home/admin/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:118 +0x15a5
github.com/RealLiuSha/echo-admin/api/middlewares.ZapMiddleware.core.func1.1(0x1025c88, 0xc000372320, 0x6, 0xeca340)
        /home/admin/Documents/projects/echo-admin/api/middlewares/zap_middleware.go:34 +0x8f
github.com/RealLiuSha/echo-admin/api/middlewares.CoreMiddleware.core.func1.1(0x1025c88, 0xc000372320, 0x0, 0x0)
        /home/admin/Documents/projects/echo-admin/api/middlewares/core_middleware.go:72 +0x165
github.com/labstack/echo/v4.(*Echo).ServeHTTP(0xc001e60c00, 0x1013888, 0xc000798460, 0xc0002b6300)
        /home/admin/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:646 +0x2bc
net/http.serverHandler.ServeHTTP(0xc000446540, 0x1013888, 0xc000798460, 0xc0002b6300)
        /usr/lib/go-1.16/src/net/http/server.go:2887 +0xa3
net/http.(*conn).serve(0xc0001ec280, 0x1015d80, 0xc000476140)
        /usr/lib/go-1.16/src/net/http/server.go:1952 +0x8cd
created by net/http.(*Server).Serve
        /usr/lib/go-1.16/src/net/http/server.go:3013 +0x39b

        {"module": "core-mw"}
runtime.gopanic
        /usr/lib/go-1.16/src/runtime/panic.go:965
runtime.panicmem
        /usr/lib/go-1.16/src/runtime/panic.go:212
runtime.sigpanic
        /usr/lib/go-1.16/src/runtime/signal_unix.go:734
github.com/RealLiuSha/echo-admin/api/middlewares.CasbinMiddleware.core.func1.1
        /home/admin/Documents/projects/echo-admin/api/middlewares/casbin_middleware.go:53
github.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1
        /home/admin/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:118
github.com/RealLiuSha/echo-admin/api/middlewares.ZapMiddleware.core.func1.1
        /home/admin/Documents/projects/echo-admin/api/middlewares/zap_middleware.go:34
github.com/RealLiuSha/echo-admin/api/middlewares.CoreMiddleware.core.func1.1
        /home/admin/Documents/projects/echo-admin/api/middlewares/core_middleware.go:72
github.com/labstack/echo/v4.(*Echo).ServeHTTP
        /home/admin/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:646
net/http.serverHandler.ServeHTTP
        /usr/lib/go-1.16/src/net/http/server.go:2887
net/http.(*conn).serve
        /usr/lib/go-1.16/src/net/http/server.go:1952
2021-05-18 22:02:22     INFO    runtime/panic.go:965    rolling back transaction due to panic   {"module": "core-mw"}
2021-05-18 22:02:22     INFO    [email protected]/echo.go:646   beginning database transaction  {"module": "core-mw"}
2021-05-18 22:02:22     ERROR   runtime/panic.go:965    [PANIC RECOVER] runtime error: invalid memory address or nil pointer dereference goroutine 54 [running]:
github.com/RealLiuSha/echo-admin/api/middlewares.CoreMiddleware.core.func1.1.1(0xc001e757a0, 0xc000d5ad80, 0x1025c88, 0xc0003720a0)
        /home/admin/Documents/projects/echo-admin/api/middlewares/core_middleware.go:59 +0xf0
panic(0xdd5260, 0x20dd6b0)
        /usr/lib/go-1.16/src/runtime/panic.go:965 +0x1b9
github.com/RealLiuSha/echo-admin/api/middlewares.CasbinMiddleware.core.func1.1(0x1025c88, 0xc0003720a0, 0x0, 0x0)
        /home/admin/Documents/projects/echo-admin/api/middlewares/casbin_middleware.go:53 +0x182
github.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1(0x1025c88, 0xc0003720a0, 0x20f8a80, 0xc00076ac80)
        /home/admin/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:118 +0x15a5
github.com/RealLiuSha/echo-admin/api/middlewares.ZapMiddleware.core.func1.1(0x1025c88, 0xc0003720a0, 0x6, 0xeca340)
        /home/admin/Documents/projects/echo-admin/api/middlewares/zap_middleware.go:34 +0x8f
github.com/RealLiuSha/echo-admin/api/middlewares.CoreMiddleware.core.func1.1(0x1025c88, 0xc0003720a0, 0x0, 0x0)
        /home/admin/Documents/projects/echo-admin/api/middlewares/core_middleware.go:72 +0x165
github.com/labstack/echo/v4.(*Echo).ServeHTTP(0xc001e60c00, 0x1013888, 0xc000818700, 0xc0007ca500)
        /home/admin/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:646 +0x2bc
net/http.serverHandler.ServeHTTP(0xc000446540, 0x1013888, 0xc000818700, 0xc0007ca500)
        /usr/lib/go-1.16/src/net/http/server.go:2887 +0xa3
net/http.(*conn).serve(0xc0001ec280, 0x1015d80, 0xc000476140)
        /usr/lib/go-1.16/src/net/http/server.go:1952 +0x8cd
created by net/http.(*Server).Serve
        /usr/lib/go-1.16/src/net/http/server.go:3013 +0x39b

        {"module": "core-mw"}
runtime.gopanic
        /usr/lib/go-1.16/src/runtime/panic.go:965
runtime.panicmem
        /usr/lib/go-1.16/src/runtime/panic.go:212
runtime.sigpanic
        /usr/lib/go-1.16/src/runtime/signal_unix.go:734
github.com/RealLiuSha/echo-admin/api/middlewares.CasbinMiddleware.core.func1.1
        /home/admin/Documents/projects/echo-admin/api/middlewares/casbin_middleware.go:53
github.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1
        /home/admin/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:118
github.com/RealLiuSha/echo-admin/api/middlewares.ZapMiddleware.core.func1.1
        /home/admin/Documents/projects/echo-admin/api/middlewares/zap_middleware.go:34
github.com/RealLiuSha/echo-admin/api/middlewares.CoreMiddleware.core.func1.1
        /home/admin/Documents/projects/echo-admin/api/middlewares/core_middleware.go:72
github.com/labstack/echo/v4.(*Echo).ServeHTTP
        /home/admin/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:646
net/http.serverHandler.ServeHTTP
        /usr/lib/go-1.16/src/net/http/server.go:2887
net/http.(*conn).serve
        /usr/lib/go-1.16/src/net/http/server.go:1952
2021-05-18 22:02:22     INFO    runtime/panic.go:965    rolling back transaction due to panic   {"module": "core-mw"}
^C2021-05-18 22:02:34   INFO    lifecycle/lifecycle.go:86       Stopping Application
2021-05-18 22:02:34     DEBUG   runtime/asm_amd64.s:1371        Shutting down the Application
make: *** [Makefile:16: start] Error 1

运行环境:

  • Ubuntu 21.04
  • Go 1.16.2
  • MariaDB 10(Docker)
  • Redis 6(Docker)

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.