🧹 清理重复配置文件

- 删除根目录中重复的 NestJS 配置文件
- 删除 tsconfig.json, tsconfig.build.json, eslint.config.mjs, .prettierrc
- 保留 wwjcloud-nest/ 目录中的完整配置
- 避免配置冲突,确保项目结构清晰
This commit is contained in:
wanwu
2025-10-14 23:56:20 +08:00
parent 7a160dd04b
commit e7a1d6b4d6
3263 changed files with 356 additions and 112679 deletions

View File

@@ -1,4 +0,0 @@
{
"singleQuote": true,
"trailingComma": "all"
}

View File

@@ -1,116 +0,0 @@
# WWJCloud 架构设计
## 架构概述
WWJCloud 基于 NestJS 框架设计,采用分层架构模式,参考 NiuCloud Java 和 PHP 版本的真实代码结构。
## 分层架构
### 1. Config 层 - 框架配置中心
**职责**: 提供框架级配置管理
- 环境变量管理
- 配置验证
- 配置热更新
- 框架级配置项
**位置**: `src/config/`
**特点**: 纯配置管理,不包含业务逻辑
### 2. Common 层 - 基础设施层
**职责**: 提供纯基础设施能力
- 安全认证和授权
- 链路追踪
- 缓存服务
- 队列服务
- 事件服务
- 定时任务调度
- 初始化管理
- 上下文管理
- API文档管理
**位置**: `src/common/`
**特点**: 纯基础设施,不包含业务逻辑
### 3. Core 层 - 核心业务逻辑层
**职责**: 提供核心业务能力
- 认证授权业务
- 系统管理业务
- 会员管理业务
- 支付业务
- 上传业务
- 通知业务
- 数据字典业务
- 多语言业务
**位置**: `src/core/`
**特点**: 核心业务逻辑,可被多个应用复用
### 4. Vendor 层 - 第三方集成层
**职责**: 提供第三方服务集成能力
- 支付服务集成
- 短信服务集成
- 通知服务集成
- 上传服务集成
- 存储服务集成
**位置**: `src/vendor/`
**特点**: 第三方服务适配器,支持动态切换
### 5. App 层 - 具体业务应用层
**职责**: 具体业务应用实现
- 特定业务逻辑
- 业务特定的控制器
- 业务特定的服务
**位置**: `src/app/`
**特点**: 具体业务实现,依赖其他层
## 依赖关系
```
App Layer
Core Layer ← Vendor Layer
Common Layer
Config Layer
```
## 与 NiuCloud 的对应关系
### Java 版本对应
- `niucloud-core/common/config/``src/config/` (框架配置)
- `niucloud-core/common/component/``src/common/` (基础设施)
- `niucloud-core/service/core/``src/core/` (核心业务)
- `niucloud-core/common/component/pay|sms|upload/``src/vendor/` (第三方集成)
### PHP 版本对应
- `core/dict/Config.php``src/config/` (框架配置)
- `core/base/``src/common/` (基础设施)
- `core/dict/``src/core/` (核心业务)
- `core/pay|sms|upload/``src/vendor/` (第三方集成)
## 设计原则
1. **单一职责**: 每层只负责自己的职责
2. **依赖倒置**: 上层依赖下层,下层不依赖上层
3. **开闭原则**: 对扩展开放,对修改关闭
4. **接口隔离**: 使用接口定义契约
5. **配置驱动**: 通过配置驱动行为
## 微服务演进
未来可拆分为:
- **Config 微服务**: 配置中心
- **Common+Vendor 微服务**: 基础设施服务
- **Core 微服务**: 核心业务服务
- **App 微服务**: 具体业务服务
## 开发规范
1. **命名规范**: 遵循 NestJS 和业务对齐原则
2. **目录结构**: 按功能模块组织
3. **依赖管理**: 明确层间依赖关系
4. **配置管理**: 统一使用 Config 层
5. **错误处理**: 统一异常处理机制

View File

@@ -1,366 +0,0 @@
# 🐳 WWJCloud Docker 部署指南
## 📋 目录结构
```
wwjcloud-nsetjs/
├── docker-compose.yml # 生产环境配置
├── docker-compose.dev.yml # 开发环境配置仅MySQL+Redis
├── wwjcloud-nest/
│ ├── Dockerfile # NestJS后端镜像
│ ├── .dockerignore # Docker忽略文件
│ └── admin/
│ ├── Dockerfile # Admin前端镜像
│ ├── nginx.conf # Nginx配置
│ └── .dockerignore # Docker忽略文件
└── sql/
└── wwjcloud.sql # 数据库初始化脚本
```
## 🚀 快速开始
### 方式1完整部署推荐用于测试
启动所有服务MySQL + Redis + NestJS + Admin
```bash
# 构建并启动所有服务
docker-compose up -d --build
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 停止所有服务
docker-compose down
# 停止并删除数据卷(⚠️ 会清空数据库)
docker-compose down -v
```
访问地址:
- **Admin管理面板**: http://localhost
- **NestJS API**: http://localhost:3000
- **MySQL**: localhost:3306
- **Redis**: localhost:6379
### 方式2开发模式仅基础设施
只启动MySQL和Redis本地运行NestJS和Admin
```bash
# 启动MySQL和Redis
docker-compose -f docker-compose.dev.yml up -d
# 本地启动NestJS
cd wwjcloud-nest
npm install
npm run start:dev
# 本地启动Admin新终端
cd wwjcloud-nest/admin
npm install
npm run dev
```
访问地址:
- **Admin管理面板**: http://localhost:5173
- **NestJS API**: http://localhost:3000
## 📊 服务详情
### 1. MySQL 数据库
```yaml
容器名: wwjcloud-mysql
端口: 3306
数据库: wwjcloud
用户: wwjcloud
密码: wwjcloud123
Root密码: root123456
```
**连接字符串**:
```
mysql://wwjcloud:wwjcloud123@localhost:3306/wwjcloud
```
### 2. Redis 缓存
```yaml
容器名: wwjcloud-redis
端口: 6379
密码: redis123456
```
**连接字符串**:
```
redis://:redis123456@localhost:6379
```
### 3. NestJS 后端
```yaml
容器名: wwjcloud-nestjs
端口: 3000
健康检查: http://localhost:3000/health
```
**环境变量**:
- `NODE_ENV`: production
- `DB_HOST`: mysql
- `DB_PORT`: 3306
- `REDIS_HOST`: redis
- `REDIS_PORT`: 6379
### 4. Admin 前端
```yaml
容器名: wwjcloud-admin
端口: 80
Web服务器: Nginx
```
**特性**:
- Vue Router History模式
- API自动代理到NestJS后端
- Gzip压缩
- 静态资源缓存
## 🔧 常用命令
### 查看日志
```bash
# 查看所有服务日志
docker-compose logs -f
# 查看特定服务日志
docker-compose logs -f nestjs-backend
docker-compose logs -f admin-frontend
docker-compose logs -f mysql
docker-compose logs -f redis
# 查看最近100行日志
docker-compose logs --tail=100 nestjs-backend
```
### 重启服务
```bash
# 重启所有服务
docker-compose restart
# 重启特定服务
docker-compose restart nestjs-backend
docker-compose restart admin-frontend
```
### 进入容器
```bash
# 进入NestJS容器
docker-compose exec nestjs-backend sh
# 进入MySQL容器
docker-compose exec mysql bash
docker-compose exec mysql mysql -u wwjcloud -pwwjcloud123 wwjcloud
# 进入Redis容器
docker-compose exec redis redis-cli -a redis123456
```
### 清理资源
```bash
# 停止所有服务
docker-compose down
# 停止并删除数据卷(⚠️ 会清空数据库)
docker-compose down -v
# 删除所有镜像
docker-compose down --rmi all
# 清理所有Docker资源
docker system prune -a
```
## 🐛 故障排查
### 1. 服务启动失败
```bash
# 查看服务状态
docker-compose ps
# 查看详细日志
docker-compose logs nestjs-backend
# 检查健康状态
docker inspect wwjcloud-nestjs | grep -A 10 Health
```
### 2. 数据库连接失败
```bash
# 检查MySQL是否就绪
docker-compose exec mysql mysqladmin ping -h localhost -u root -proot123456
# 查看MySQL日志
docker-compose logs mysql
# 手动连接测试
docker-compose exec mysql mysql -u wwjcloud -pwwjcloud123 -e "SHOW DATABASES;"
```
### 3. Redis连接失败
```bash
# 检查Redis是否就绪
docker-compose exec redis redis-cli -a redis123456 ping
# 查看Redis日志
docker-compose logs redis
```
### 4. 前端无法访问后端API
```bash
# 检查Nginx配置
docker-compose exec admin-frontend cat /etc/nginx/conf.d/default.conf
# 测试API代理
curl http://localhost/adminapi/health
# 检查网络连接
docker-compose exec admin-frontend ping nestjs-backend
```
## 🔒 安全配置
### 生产环境建议
1. **修改默认密码**:
编辑 `docker-compose.yml`:
```yaml
environment:
MYSQL_ROOT_PASSWORD: your-strong-password
MYSQL_PASSWORD: your-strong-password
REDIS_PASSWORD: your-strong-password
JWT_SECRET: your-super-secret-jwt-key
```
2. **使用环境变量文件**:
创建 `.env` 文件:
```env
MYSQL_ROOT_PASSWORD=your-strong-password
MYSQL_PASSWORD=your-strong-password
REDIS_PASSWORD=your-strong-password
JWT_SECRET=your-super-secret-jwt-key
```
3. **启用HTTPS**:
修改 `nginx.conf` 添加SSL配置。
4. **限制网络访问**:
```yaml
services:
mysql:
expose:
- "3306"
# 不使用 ports只在内部网络暴露
```
## 📈 性能优化
### 1. 资源限制
```yaml
services:
nestjs-backend:
deploy:
resources:
limits:
cpus: '2'
memory: 2G
reservations:
cpus: '1'
memory: 1G
```
### 2. 数据库优化
```bash
# 连接到MySQL
docker-compose exec mysql mysql -u root -proot123456
# 查看慢查询
SHOW VARIABLES LIKE 'slow_query%';
# 优化表
OPTIMIZE TABLE your_table;
```
### 3. Redis优化
```bash
# 查看Redis信息
docker-compose exec redis redis-cli -a redis123456 INFO
# 查看内存使用
docker-compose exec redis redis-cli -a redis123456 INFO memory
```
## 📦 数据备份与恢复
### 备份数据库
```bash
# 备份MySQL
docker-compose exec mysql mysqldump -u root -proot123456 wwjcloud > backup_$(date +%Y%m%d).sql
# 备份Redis
docker-compose exec redis redis-cli -a redis123456 SAVE
docker cp wwjcloud-redis:/data/dump.rdb ./redis_backup_$(date +%Y%m%d).rdb
```
### 恢复数据库
```bash
# 恢复MySQL
docker-compose exec -T mysql mysql -u root -proot123456 wwjcloud < backup_20241004.sql
# 恢复Redis
docker cp redis_backup_20241004.rdb wwjcloud-redis:/data/dump.rdb
docker-compose restart redis
```
## 🎯 测试checklist
- [ ] MySQL容器启动成功
- [ ] Redis容器启动成功
- [ ] NestJS容器启动成功
- [ ] Admin容器启动成功
- [ ] 所有健康检查通过
- [ ] 可以访问Admin管理面板 (http://localhost)
- [ ] 可以访问NestJS API (http://localhost:3000)
- [ ] Admin可以调用后端API
- [ ] 登录功能正常
- [ ] 数据库连接正常
- [ ] Redis缓存正常
## 📞 获取帮助
如遇问题,请检查:
1. Docker和Docker Compose版本
2. 端口占用情况 (80, 3000, 3306, 6379)
3. 容器日志 (`docker-compose logs`)
4. 健康检查状态 (`docker-compose ps`)

View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Some files were not shown because too many files have changed in this diff Show More