开源Egg通用的前后端分离的权限管理系统

sf-egg-admin

基于EggJs + TypeScript + TypeORM + Redis + MySql + Vue + Element-UI编写的一款简单高效的前后端分离的权限管理系统。希望这个项目在全栈的路上能够帮助到你。

  • 前端项目地址:传送门
  • 后端项目地址:传送门

演示地址

http://opensource.admin.si-yee.com

演示环境账号密码:

账号 密码 权限
openadmin 123456 仅只有各个功能的查询权限
monitoradmin 123456 系统监控页面及按钮权限

演示站点不方便开rootadmin,可自行部署到本地后使用超管来玩耍

本地部署账号密码:

账号 密码 权限
rootadmin 123456 超级管理员

系统模块

├─系统管理
│  ├─用户管理
│  ├─角色管理
│  ├─菜单管理
├─系统监控
│  ├─在线用户
│  ├─登录日志
│  ├─请求追踪
├─任务调度
│  ├─定时任务
│  └─任务日志

系统特点

  • 前后端请求参数校验
  • JWT 认证
  • 基于 EggJS 框架,内置了基础的中间件支持(用户认证、访问日志、请求追踪等)
  • 用户权限动态刷新
  • 代码简单,结构清晰

技术选型

后端

  • EggJS + TypeScript
  • TypeORM(MYSQL)
  • ioredis(Redis)
  • bull(队列)

前端

  • Vue全家桶
  • Element-UI

演示图片

image
image
image
image
image
image

本地开发

初始化数据库,以及服务启动

新建并导入数据库MySql>=5.7.
数据库脚本位于 db/init.sql
修改数据库配置信息,在config目录下更改对应模式下的配置
参考对应配置请参考:config.local.ts

项目启动

$ npm i
$ npm run dev
$ open http://localhost:7001/

请不要在开发模式下运行npm run tsc,如果不小心运行了你需要在npm run dev前运行npm run clean

项目部署

执行

$ npm run tsc
$ npm start

反向代理配置示例

server
{
    # ... 省略

# 请添加以下配置

    location / {
      try_files $uri $uri/ /index.html;
    }

    location /api/
    {

        proxy_pass http://127.0.0.1:7001/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;

        #缓存相关配置
        #proxy_cache cache_one;
        #proxy_cache_key $host$request_uri$is_args$args;
        #proxy_cache_valid 200 304 301 302 1h;

        #持久化连接相关配置
        proxy_connect_timeout 3000s;
        proxy_read_timeout 86400s;
        proxy_send_timeout 3000s;
        #proxy_http_version 1.1;
        #proxy_set_header Upgrade $http_upgrade;
        #proxy_set_header Connection "upgrade";
        add_header X-Cache $upstream_cache_status;
        #expires 12h;
    }

    # ... 省略
}

环境要求

  • Node.js 8.x
  • Typescript 2.8+
  • MYSQL 5.7+
  • Redis 6.0+

内置Egg插件

  • egg-typeorm
  • egg-class-validator
  • egg-bull
  • egg-redis
  • svg-captcha
  • ...略

欢迎Star && PR

如果项目有帮助到你可以点个Star支持下。有更好的实现欢迎PR。

题外话

该系统内置了一个基于nodemailer、puppeteer、cheerio实现的一个爬虫,爬取纵横小说的网页来实现小说最新章节获取,并使用该系统的定时任务来每天发送邮件通知小说最新章节。

等这本小说更新都是泪

效果图:

image

更多好玩的可以自行查看代码实现更多的定时任务吧。

你可能感兴趣的:(开源Egg通用的前后端分离的权限管理系统)