# open-nestjs-server **Repository Path**: yncykj/open-nestjs-server ## Basic Information - **Project Name**: open-nestjs-server - **Description**: No description available - **Primary Language**: Unknown - **License**: LGPL-2.1 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-07-07 - **Last Updated**: 2026-08-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Open NestJS Server 企业级 NestJS 微服务后端,提供完整的用户管理、RBAC 权限控制、系统配置、通知、审计、开放 API 与报表分析能力。 > 本文档是**使用文档的入口**。详细的安装、配置、认证、权限、API、部署与开发说明请见 [`docs/usage/`](docs/usage/) 目录。 --- ## 技术栈 | 领域 | 选型 | |------|------| | 后端框架 | NestJS 11 | | 语言 | TypeORM + PostgreSQL(推荐 14+;Docker 默认 `postgres:16`) | | 服务间通信 | TCP(微服务)+ HTTP(API 网关) | | 消息队列 | RabbitMQ(事件驱动,可选) | | 缓存 | Redis(版本键失效模式) | | 认证 | JWT(`@nestjs/jwt`)+ API Key | | 包管理 | pnpm | | 容器化 | Docker Compose | --- ## 架构总览 ```mermaid flowchart LR Client[客户端 / 前端] -->|HTTP :3000| GW[API 网关
api-gateway] GW -->|TCP :3001| US[用户服务
user-service] GW -->|TCP :3002| SS[系统服务
system-service] US --> DB[(PostgreSQL)] SS --> DB US --> Redis[(Redis)] SS --> Redis SS --> RMQ[(RabbitMQ)] ``` - **api-gateway**:唯一 HTTP 入口,负责认证、路由、限流、WebSocket。默认端口 `3000`。 - **user-service**:用户 / 角色 / 权限 / 部门 / 用户组 / OAuth / API Key / 会话。TCP `3001`。 - **system-service**:健康检查、系统配置、缓存、审计、通知、任务队列、限流、存储、指标、告警、聚合分析。TCP `3002`。 项目布局: ``` open-nestjs-services ├── apps/ │ ├── api-gateway/ # HTTP 网关(对外) │ ├── user-service/ # 用户域微服务(TCP) │ └── system-service/ # 系统域微服务(TCP + RMQ) ├── libs/ │ ├── common/ # 守卫 / 拦截器 / 装饰器 / 异常过滤 │ ├── contracts/ # DTO 与跨服务接口契约 │ └── database/ # 实体与数据库迁移 ├── docker/ # SQL 初始化脚本 ├── docs/ # 设计文档与本文档子集(usage/) ├── documents/ # PRD / 健康度 / 调试指南等 ├── reports/ # 代码审查与修复报告 ├── scripts/ # 种子脚本等工具 └── test/ # 测试文件 ``` --- ## 核心能力 | 模块 | 说明 | 详细文档 | |------|------|----------| | 认证与授权 | JWT 登录/刷新、密码重置、邮箱验证、API Key、OAuth | [认证指南](docs/usage/03-authentication.md) | | RBAC 权限 | 角色层级继承、权限隐含传播、SOD 互斥约束 | [RBAC 指南](docs/usage/04-rbac.md) | | 用户管理 | 用户 CRUD、角色分配、部门、用户组、标签、自定义字段 | [API 参考](docs/usage/05-api-reference.md) | | 系统管理 | 配置版本化、缓存、审计日志、限流、任务队列、存储 | [API 参考](docs/usage/05-api-reference.md) | | 通知 | 邮件/短信/站内信/推送,消息中心已读未读,免打扰 | [功能总览](docs/usage/06-features.md) | | 开放 API | API Key 配额限流、Webhook 出站、开发者门户 | [功能总览](docs/usage/06-features.md) | | 报表 / BI | 聚合引擎、看板、CSV/Excel 导出 | [功能总览](docs/usage/06-features.md) | | 账户自助恢复 | 找回密码、邮箱验证、真实 SMTP 发信 | [功能总览](docs/usage/06-features.md) | --- ## 快速开始 ```bash # 1. 安装依赖(需 Node >= 18, pnpm >= 8) pnpm install # 2. 准备环境变量 cp .env.example .env # 编辑 .env:至少设置 JWT_SECRET、ENCRYPTION_KEY、STORAGE_SECRET、DB_* # 3. 启动依赖(PostgreSQL / Redis / RabbitMQ) docker-compose up -d postgres redis rabbitmq # 4. 启动全部服务(开发模式,热重载) pnpm start:all:dev # 5. 初始化种子数据(角色/权限/部门/默认用户) pnpm db:seed ``` 启动后: - API 网关:http://localhost:3000 - Swagger 交互式文档:**http://localhost:3000/api/docs** - 健康检查:`GET /system/health` 默认管理员账号(种子数据):`admin@example.com` / `Admin123!` 完整步骤见 [使用文档 · 快速开始](docs/usage/01-getting-started.md)。 --- ## 使用文档导航 | 文档 | 内容 | |------|------| | [01 · 快速开始](docs/usage/01-getting-started.md) | 环境要求、安装、启动、种子数据与默认账号、首次登录 | | [02 · 配置参考](docs/usage/02-configuration.md) | 全部环境变量说明、生产环境注意事项 | | [03 · 认证指南](docs/usage/03-authentication.md) | JWT、刷新令牌、密码重置、邮箱验证、API Key、OAuth 与调用示例 | | [04 · RBAC 权限指南](docs/usage/04-rbac.md) | 角色层级、权限传播、SOD 互斥、分配接口与示例 | | [05 · API 参考](docs/usage/05-api-reference.md) | 全部 HTTP 端点目录(按域分组、标注鉴权方式) | | [06 · 功能总览](docs/usage/06-features.md) | 账户恢复 / 开放 API / 通知 / 报表 BI 能力说明与详细设计链接 | | [07 · 部署](docs/usage/07-deployment.md) | Docker Compose 部署、健康检查、生产清单 | | [08 · 开发指南](docs/usage/08-development.md) | 脚本、数据库迁移、测试、调试入口 | --- ## 更多参考 - 架构与设计:[`docs/system_design.md`](docs/system_design.md)、[`docs/tech-architecture-extensibility.md`](docs/tech-architecture-extensibility.md) - 扩展路线:[`docs/extension-directions.md`](docs/extension-directions.md) - 调试指南:[`documents/debugging-guide.md`](documents/debugging-guide.md) - 代码审查报告:[`reports/`](reports/) --- ## 许可证 MIT License