跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
|注册
博客列表

目录

  1. 系统截图 📸
  2. 目录 📚
  3. 项目概览 ✨
  4. 目录结构 🧱
  5. 技术栈 🛠
  6. 技术架构 🏗
  7. 整体架构
  8. Backend (管理端) — backend/
  9. Backend-user (C 端) — backend-user/
  10. Frontend — frontend/
  11. 部署
  12. 业务架构 📋
  13. 多租户
  14. RBAC 权限模型
  15. 核心数据表
  16. 业务模块划分
  17. 统一响应与异常
  18. 快速链接 🔗
  19. 环境要求 📦
  20. 快速开始 🚀
  21. Docker
  22. 或
  23. 本地开发
  24. 1. 克隆
  25. 2. 准备
  26. 3. 安装与启动
  27. 4. 访问
  28. 子项目说明 📁
  29. 数据库迁移 🗄
  30. Cursor AI 规则 🤖
  31. 规则
  32. 技能
  33. 贡献 🤝
  34. 致谢 🙏
  35. 许可证
JavaScriptNode.jsSaaSNuct

基于 NestJS + Vue3 的企业级前后端分离快速开发脚手架

Tesfly发布于 2026/4/2更新于 2026/4/1315K 浏览

Nuct Logo

你只需要关注业务,将基础设施交给 Nuct!

基于 NestJS + Vue3 的企业级前后端分离快速开发脚手架。支持多租户、RBAC,可接入 Cursor Rules & Skills 进行 AI 辅助开发。

English · 简体中文 · · ·

繁體中文
日本語
Русский

Commit activity License Repo size Top language


  • 中小型应用的快速开发脚手架
  • 已配置 Cursor Rules & Skills,可接入 AI 辅助开发

系统截图 📸

文章配图 文章配图

目录 📚

  • 项目概览
  • 目录结构
  • 技术栈
  • 技术架构
  • 业务架构
  • 快速链接
  • 环境要求
  • 快速开始
    • Docker
    • 本地开发
  • 子项目说明
  • 数据库迁移
  • Cursor AI 规则
  • 贡献
  • 致谢
  • 许可证

项目概览 ✨

  • 默认账号:admin / a123456 🔑
  • 支持多租户隔离、RBAC 权限、单点登录,适合中后台管理系统、SaaS 平台

目录结构 🧱

nuct/
├── backend/          # 管理端后端 (NestJS,端口 7001)
├── backend-user/     # C 端用户接口 (NestJS,端口 8001)
├── frontend/         # 管理端前端 (Vue3,端口 8088)
└── README.md

技术栈 🛠

层级技术
后端NestJS、TypeScript、TypeORM、Redis、MySQL、JWT、Swagger、Bull
前端Vue3、Vite5、Ant Design Vue4、TypeScript5、Pinia、UnoCSS

技术架构 🏗

整体架构

┌─────────────────────────────────────────────────────────────────────────┐
│                           客户端层                                       │
├─────────────────────────────────────────────────────────────────────────┤
│  管理端前端 (Vue3) :8088    │    C 端应用(可接入 H5/小程序/App)         │
└──────────────┬─────────────────┴──────────────────┬────────────────────┘
               │                                     │
               ▼                                     ▼
┌──────────────────────────────┐    ┌──────────────────────────────────────┐
│  backend (管理端 API) :7001  │    │  backend-user (C 端 API) :8001       │
│  - 平台管理、RBAC、租户管理   │    │  - 登录/注册、菜单、租户配置          │
│  - 系统配置、任务、网盘等     │    │  - 与 backend 共用 DB + Redis         │
└──────────────┬───────────────┘    └──────────────────┬───────────────────┘
               │                                      │
               └──────────────────┬───────────────────┘
                                  ▼
               ┌──────────────────────────────────────┐
               │  MySQL 8.x  │  Redis  │  OSS (可选)   │
               └──────────────────────────────────────┘

Backend (管理端) — backend/

层级组件说明
HTTPFastify高性能 HTTP 适配器
AuthJWT + PassportLocalStrategy、JwtStrategy,RSA 密码加密
ORMTypeORMMySQL 持久化
CacheRedis会话、限流、Bull 队列
QueueBull定时任务、异步任务
RealtimeSocket.io + SSEWebSocket 双网关、Server-Sent Events
GlobalThrottler、CLS、EventEmitter限流、请求上下文、事件总线

模块结构:

模块路由前缀说明
AuthModule/auth, /account登录、注册、验证码、登出、改密
TenantModule/system/tenants租户管理
SystemModule/system用户、角色、菜单、部门、字典、参数、日志、任务、在线、服务监控
ToolsModule-上传、存储、邮件
NetdiskModule-网盘管理
SseModule/sseSSE 推送
HealthModule/health健康检查
TasksModule-Bull 定时任务
SocketModule-WebSocket (AdminEventsGateway, WebEventsGateway)

Backend-user (C 端) — backend-user/

C 端专用 API,与管理端分离部署,仅保留 C 端所需接口:

接口需登录说明
POST /auth/login否登录(需传 domain、tenantId)
POST /auth/register否注册(需传 tenantId)
GET /auth/captcha/img否图形验证码
GET /user/tenant?domain=xxx否按域名获取租户列表
POST /account/logout是登出
PATCH /account/password是修改密码
GET /user/menus?code=xxx是按 Code 获取菜单树
GET /user/config/:key是按 key 获取租户参数配置

Frontend — frontend/

层级技术说明
框架Vue 3 + Vite 5SPA
UIAnt Design Vue 4组件库
状态Pinia状态管理
路由Vue Router动态路由(由后端菜单生成)
样式UnoCSS + Less原子化 + 变量
i18nvue-i18n多语言

部署

  • Docker Compose:MySQL、Redis、nest-admin-server、nest-admin-web
  • Monorepo:pnpm workspace,backend、backend-user、frontend 独立构建

业务架构 📋

多租户

概念说明
租户表sys_tenant(name, code, domain, status)
隔离方式实体 tenant_id 字段,TenantInterceptor 自动过滤
域名匹配同一域名可匹配多个租户,C 端登录需传 domain + tenantId
租户参数sys_tenant_param_config 租户级配置

RBAC 权限模型

User ──► Role ──► Menu (Permission)
表说明
sys_user用户
sys_role角色
sys_menu菜单/权限(树形,type: 0=目录、1=菜单、2=按钮)
sys_user_roles用户-角色 多对多
sys_role_menus角色-菜单 多对多

权限格式:module:resource:action,如 system:user:list、system:user:create

动作约定:list、read/info、create、update、delete

核心数据表

表名说明
sys_user用户
sys_role角色
sys_menu菜单/权限
sys_dept部门(树形,mpath)
sys_dict_type / sys_dict_item字典类型/字典项
sys_config系统参数
sys_task / sys_task_log定时任务及日志
sys_login_log登录日志
user_access_tokens / user_refresh_tokensJWT 令牌
tool_storage文件存储

业务模块划分

领域模块功能
认证Auth登录、注册、验证码、JWT、RSA 加密、邮件验证
租户Tenant租户 CRUD、域名配置、租户初始化
系统System用户、角色、菜单、部门、字典、参数、日志、任务、在线用户、服务监控
工具Tools文件上传、存储、邮件发送
网盘Netdisk网盘管理、概览
实时SSE / Socket服务端推送、WebSocket 双网关
任务TasksBull 定时任务调度

统一响应与异常

  • 成功码:code = 200
  • 业务错误:HTTP 200 + body.code 为业务码(见 error-code.constant.ts)
  • 分页格式:{ items, meta: { itemCount, totalItems, itemsPerPage, totalPages, currentPage } }

快速链接 🔗

  • 在线预览:https://nuct.cn
  • GitHub:https://github.com/zeeklog/nuct
  • Gitee:https://gitee.com/zeeklog/nuct
  • Swagger 文档(Admin):http://localhost:7001/api-docs/(后端启动后)
  • ** Swagger API(Client)**: docs(client): http://localhost:8001/api-docs/ (client客户端)

环境要求 📦

  • Node.js 20+
  • Docker 20.x+(docker compose 2.17.0+)
  • MySQL 8.x+
  • pnpm 包管理器

快速开始 🚀

Docker

cd backend
pnpm docker:up
# 或
docker compose --env-file .env --env-file .env.production up -d --no-build

启动后访问 Swagger:http://localhost:7001/api-docs/

停止容器:

cd backend
pnpm docker:down

本地开发

1. 克隆
git clone https://github.com/zeeklog/nuct
cd nuct
2. 准备
  • 数据库:执行 backend/deploy/sql/nest_admin.sql
  • 配置:复制 .env.example → .env,.env.development.example → .env.development
  • RSA 私钥(密码加密传输):根目录执行 pnpm install 时,各 workspace 的 postinstall 会在 backend 与 backend-user 下自动生成 RSA_PRIVATE_KEY/rsa-private.pem(若不存在)。也可手动:openssl genrsa -out RSA_PRIVATE_KEY/rsa-private.pem 2048。在 .env 中配置 RSA_PRIVATE_KEY_PATH=RSA_PRIVATE_KEY/rsa-private.pem。

可选 — 使用 Docker 启动 MySQL/Redis:

cd backend
docker compose --env-file .env --env-file .env.development run -d --service-ports mysql
docker compose --env-file .env --env-file .env.development run -d --service-ports redis
3. 安装与启动
pnpm install
pnpm migration:run   # 在 backend 下执行
pnpm dev
4. 访问
  • 前端:http://localhost:8088/
  • Swagger:http://localhost:7001/api-docs/

子项目说明 📁

目录说明端口
backend/管理端后端 (NestJS)7001
backend-user/C 端用户接口 (NestJS)8001
frontend/管理端前端 (Vue3)8088

数据库迁移 🗄

在项目根目录执行:

pnpm migration:run      # 应用迁移
pnpm migration:generate # 生成迁移
pnpm migration:revert   # 回滚

若实体或数据库配置有更新,请先在 backend 下执行 pnpm build 再进行迁移。

Cursor AI 规则 🤖

项目已配置 .cursor/ 下的规则与技能,便于 AI 辅助开发。

规则

文件说明作用范围
rules/00-project.mdc项目架构与整体规范始终应用
rules/01-frontend-style.mdc前端 CSS 与命名规范前端
rules/01-data-design.mdc数据库设计与 RBAC 权限模型后端
rules/02-backend.mdcNestJS 后端开发规范backend/**/*.ts
rules/03-frontend.mdcVue3 前端开发规范frontend/**/*.{ts,vue}
rules/04-backend-docs.mdc后端文档与 API 参考后端
rules/tenant-init.mdc租户初始化逻辑tenant/**/*.ts

技能

技能路径用途
nest-admin-backendskills/nest-admin-backend/SKILL.md后端接口、控制器、Service、权限、数据库迁移
nest-admin-crudskills/nest-admin-crud/SKILL.md新增 CRUD 模块全流程(实体、DTO、Service、Controller、菜单、前端页面)
nest-admin-permissionskills/nest-admin-permission/SKILL.mdRBAC 权限、菜单、按钮权限、definePermission、sys_menu 配置

贡献 🤝

欢迎 Star 和 PR。

致谢 🙏

基于以下开源项目二次开发:

  • vue3-antdv-admin — 前端模板
  • sf-nest-admin — 后端基础

许可证

BSL 1.1

极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog

更多推荐文章

查看全部
  • 白嫖专业版!Github Copilot Pro竟然可以免费使用
  • 保姆级教程:从零搭建AI系统权限控制系统
  • SM2 国密算法原理与 C++跨平台实现
  • Workers AI 完整教程:每天白嫖 10000 次大模型调用,比 OpenAI 省 90%
  • 无人机低空智能巡飞巡检平台:全域感知与智能决策
  • 2026年,我整理了中国 200 多家机器人(具身智能)公司名单
  • WorkBuddy 使用指南:从零开始配置 QQ 机器人,解锁桌面智能体新玩法
  • AWS Kiro 账号池管理系统 | 将 Amazon Q Developer API 转换为 OpenAI 兼容格式 | 支持多账号池、OIDC 自动认证、令牌自动刷新、Web 管理控制台 | Go
  • OpenGlass:大模型赋能开源智能眼镜,25 美元实现语音控制与 AR 叠加
  • OpenCode:开源 AI 编程代理技术与行业分析
  • Android 端 Whisper 中文语音识别实战:从模型部署到性能优化
  • 机器人重力补偿技术:MuJoCo 实现解析与原理分析
  • 基于SpringBoot的高铁售票系统设计与实现
  • 基于 C# .NET Framework 开发实现 WebService服务实例详解——一文学懂WebService服务开发技术及应用
  • 2026年8款AI大模型实测排名!国产杀入全球前10,最便宜只要2毛钱
  • 国内如何升级 GitHub Copilot 到专业版
  • 《人工智能的底层逻辑》:清华大学张长水教授 AI 通识经典
  • H.265 网页播放:WebAssembly + FFmpeg 硬软解兼容方案
  • Hookshot:轻量级 GitHub Webhook 处理工具
  • MIT 电机模式控制:参数、场景与调试指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online