简介
NestJS Admin Template 是一套基于 Vue 3 + NestJS 11 全 TypeScript 技术栈的中后台管理系统模板,权限模型完整落地,容器化开箱可用。
前端 Vue 3 + TypeScript + Element Plus + Vite 8,后端 NestJS 11 + TypeORM + MySQL + Redis + BullMQ。除登录鉴权外,还完整实现了用户、角色、菜单、部门、字典、日志、缓存、定时任务、在线用户等中后台标配功能。
前后端放在同一个仓库的两个独立工程中(admin/ 与 server/),不是 monorepo——根目录没有 package.json,两个工程各自 pnpm install,互不干扰,可以单独构建、单独部署。
资源地址
| 项目 | 地址 |
|---|---|
| 源码仓库 | https://github.com/Ace627/nestjs-admin-template |
| 源码仓库 | https://gitee.com/decade9527/nestjs-admin-template |
| 接口文档 | https://docs.apipost.net/docs/detail/61e0debdacca000?target_id=0 |
| 默认账号 | admin / 123456 |
⚠️ 生产环境必须立即修改
以上密码仅用于本地体验。部署到服务器或公开环境前,务必修改默认密码。
内置功能
系统管理
| 模块 | 功能 |
|---|---|
| 用户管理 | 用户的增删改查、重置密码、修改密码、角色分配、头像设置,支持按部门划分数据权限 |
| 部门管理 | 树形组织架构维护,级联调整下级部门,支持按部门划分数据权限 |
| 角色管理 | 菜单与按钮权限分配、按机构划分数据权限、角色编码管理 |
| 菜单管理 | 目录 / 菜单 / 按钮三级粒度,支持外链、内嵌 iframe |
| 字典管理 | 字典类型 + 字典数据两级结构,Redis 缓存主动失效,全局 useDict() Hook 封装 |
| 文件管理 | 目录树管理文件,回收站还原,支持秒传、分片上传、断点续传,按引用计数彻底删除 |
系统监控
| 模块 | 功能 |
|---|---|
| 服务监控 | 实时 CPU 使用率、内存占用、磁盘空间、服务器运行信息与数据库连接池状态 |
| 缓存监控 | Redis 实例信息、内存使用量、Key 数量,分类浏览与在线可视化管理 |
| 健康检查 | /live /ready 双探针,适配 K8s / Docker Swarm 编排 |
| 在线用户 | 实时查看活跃会话,支持强制下线 |
| 定时任务 | BullMQ 动态调度,支持手动执行 / 暂停 / 恢复,含执行日志 |
| 操作日志 | 全接口自动记录,IP 归属地解析,支持条件查询与导出 |
| 登录日志 | 登录成功 / 失败全量记录,支持条件查询与导出 |
体验增强
| 特性 | 说明 |
|---|---|
| 暗黑模式 | 一键切换明暗主题,CSS 变量全局控制 |
| 多标签页 | 类浏览器 Tab 交互,支持刷新 / 关闭 / 右键菜单 |
| 响应式布局 | 适配 PC / Pad / Mobile,侧边栏自动折叠 |
| 布局设置 | 侧边栏 Logo、面包屑、标签页、动态标题均可自定义开关 |
技术选型
| 层级 | 技术栈 | 说明 |
|---|---|---|
| 前端框架 | Vue 3 + Composition API | <script setup lang="ts"> 语法 |
| 前端路由 | Vue Router 5 | 动态路由 + 权限过滤,后端实时拉取菜单 |
| 状态管理 | Pinia | 轻量级、类型友好的状态管理 |
| UI 组件库 | Element Plus | 全套企业级 UI 组件,按需导入 |
| 构建工具 | Vite 8 | 秒级冷启动,Rolldown 打包 |
| CSS 方案 | UnoCSS + SCSS | 原子化 CSS 与语义化样式结合 |
| 图表库 | ECharts 6 | 服务监控可视化 |
| 后端框架 | NestJS 11 | 行业标准的 Node.js 企业级框架 |
| ORM | TypeORM | 数据库实体映射,支持 Migration |
| 数据库 | MySQL 8 | 核心业务数据存储 |
| 缓存 | Redis 7 | Token 缓存、接口缓存、BullMQ 队列 |
| 消息队列 | BullMQ | 定时任务调度执行 |
| 认证 | JWT + 图片验证码 | Argon2 密码加密,Passport 策略模式 |
| 日志 | Winston | 按日滚动文件日志 |
| 容器化 | Docker | 多阶段构建 + 健康探针 + 非 root 运行 |
系统需求
| 环境 | 版本要求 | 说明 |
|---|---|---|
| Node.js | ≥ 22.x(推荐 24.x) | 前后端共同依赖的运行时 |
| pnpm | ≥ 10.x | 包管理器,前后端各自安装 |
| MySQL | ≥ 8.0 | 核心业务数据存储 |
| Redis | ≥ 7.0 | 缓存、会话与任务队列 |
| Docker | 可选 | 用于一键部署与容器化交付 |
交流群
点击按钮入群。
许可证
本项目基于 MIT 协议开源。
