# RWADurian Admin Web 榴莲认种管理后台 - Next.js 15 + TypeScript + SCSS ## 技术栈 - **框架**: Next.js 15 (App Router) - **语言**: TypeScript - **样式**: SCSS Modules - **状态管理**: Redux Toolkit + Zustand - **UI 组件**: Recharts (图表) - **部署**: Docker + Nginx ## 本地开发 ### 环境要求 - Node.js 20+ - npm 或 yarn ### 安装依赖 ```bash npm install ``` ### 启动开发服务器 ```bash npm run dev ``` 访问 http://localhost:3000 ### 构建 ```bash npm run build npm start ``` ## Docker 部署 ### 快速部署 (推荐) 项目已配置 Docker 一键部署方案,使用 Git 管理代码。 #### 在服务器上部署: ```bash # 1. 克隆项目 (首次) git clone cd rwadurian/frontend/admin-web # 2. 或更新代码 (已有项目) cd ~/rwadurian/frontend/admin-web git pull # 3. 赋予脚本执行权限 chmod +x scripts/*.sh deploy.sh nginx/*.sh # 4. 一键部署 Docker 应用 ./scripts/deploy.sh # 5. 安装 Nginx + SSL (首次需要) sudo ./nginx/install.sh ``` ### Docker 管理脚本 | 脚本 | 功能 | |------|------| | `./scripts/deploy.sh` | 一键部署 (构建+启动) | | `./scripts/build.sh` | 仅构建镜像 | | `./scripts/start.sh` | 启动服务 | | `./scripts/stop.sh` | 停止服务 | | `./scripts/restart.sh` | 重启服务 | | `./scripts/logs.sh` | 查看实时日志 | | `./scripts/status.sh` | 查看服务状态 | | `./scripts/health.sh` | 健康检查 | | `./scripts/clean.sh` | 清理容器和镜像 | ### 使用原始 deploy.sh ```bash # 启动服务 ./deploy.sh start # 停止服务 ./deploy.sh stop # 重启服务 ./deploy.sh restart # 查看日志 ./deploy.sh logs # 查看状态 ./deploy.sh status # 清理 ./deploy.sh clean ``` ### 自定义端口 ```bash PORT=8080 ./scripts/deploy.sh ``` ## Nginx 配置 ### 前提条件 1. 域名 DNS A 记录已指向服务器 IP 2. 防火墙开放 80 和 443 端口 3. Docker 应用已在 3000 端口运行 ### 一键安装 (推荐) ```bash cd nginx sudo ./install.sh ``` 脚本会自动完成: - 系统更新 - 安装 Nginx - 安装 Certbot - 配置防火墙 - 申请 Let's Encrypt SSL 证书 - 配置 HTTPS 反向代理 ### 手动配置 详见 [nginx/README.md](nginx/README.md) ## 项目结构 ``` admin-web/ ├── src/ │ ├── app/ # Next.js App Router │ │ ├── (auth)/ # 认证相关页面 (登录、注册) │ │ ├── (dashboard)/ # 仪表板页面 │ │ └── api/ # API 路由 │ ├── components/ # React 组件 │ │ ├── common/ # 通用组件 │ │ ├── features/ # 功能组件 │ │ └── layout/ # 布局组件 │ ├── store/ # 状态管理 │ │ ├── redux/ # Redux Toolkit │ │ └── zustand/ # Zustand stores │ ├── services/ # API 服务 │ ├── utils/ # 工具函数 │ └── styles/ # 全局样式 ├── public/ # 静态资源 ├── nginx/ # Nginx 配置 │ ├── README.md # Nginx 部署文档 │ ├── install.sh # 一键安装脚本 │ ├── setup-ssl.sh # SSL 配置脚本 │ └── rwaadmin.szaiai.com.conf # Nginx 站点配置 ├── scripts/ # Docker 管理脚本 ├── Dockerfile # Docker 镜像构建 ├── docker-compose.yml # Docker 编排 ├── deploy.sh # 部署脚本 └── README.md # 本文档 ``` ## 环境变量 项目使用不同的环境配置文件: - `.env.local` - 本地开发 - `.env.development` - 开发环境 - `.env.production` - 生产环境 ## 功能特性 - ✅ 用户管理 - ✅ 排行榜 - ✅ 权限管理 - ✅ 数据统计 - ✅ 系统设置 - ✅ 帮助中心 - ✅ 侧边栏收起/展开 - ✅ 响应式布局 - ✅ 健康检查 API ## API 端点 - `GET /api/health` - 健康检查 ## 访问地址 - 本地开发: http://localhost:3000 - 生产环境: https://rwaadmin.szaiai.com ## 常见问题 ### 1. Docker 构建失败 确保本地有 `.next` 和 `node_modules` 已添加到 `.dockerignore` ### 2. 502 Bad Gateway 检查 Docker 容器是否运行: ```bash docker ps ./scripts/status.sh ``` ### 3. SSL 证书申请失败 - 确认域名 DNS 解析正确 - 确认 80 端口可访问 - 查看错误日志: `sudo tail -f /var/log/letsencrypt/letsencrypt.log` ## 许可证 MIT