- 系统初始化:创建默认超级管理员 - 密码管理:bcrypt 加密、强度验证 - JWT Token:生成、验证、解析 - 认证中间件:API 路由保护 - 注册 API:邮箱/姓名唯一性验证 - 登录 API:支持邮箱或姓名登录、智能提示 - 首次登录强制修改 API - 登录页面:Apple HIG 2025 风格 - 首次登录修改页面:实时密码强度验证 - 环境变量:JWT 配置 默认超级管理员: - 邮箱: admin@system.local - 姓名: SuperAdmin - 密码: Admin@123456 - 首次登录后强制修改
3D家具安装展示系统
现代化的3D家具装配过程展示系统,支持交互式动画和分享功能。
🚀 功能特性
- 3D模型查看器: 支持旋转、缩放、平移的交互式3D家具模型
- 装配动画: 分步骤展示装配过程,配备流畅的GSAP动画
- 分享链接: 为客户生成可分享的装配说明链接
- 移动端适配: 完美支持桌面端和移动端设备
- 本地缓存优化: 优先使用本地资源,提升构建速度
🛠️ 技术栈
- 前端: Next.js 14, React 18, TypeScript
- 3D图形: Three.js, React Three Fiber
- 动画: GSAP (GreenSock)
- 数据库: PostgreSQL + Prisma ORM
- 存储: MinIO (S3兼容)
- 样式: Tailwind CSS
- 部署: Docker & Docker Compose
⚡ 快速开始
开发环境
环境要求
- Node.js 18+
- Docker & Docker Compose
- Git
一键启动
# 克隆项目
git clone http://git.1080p.hk/WuYongJie/furniture-3d-system-Wu.git
cd furniture-3d-system-Wu
# 启动系统(自动设置缓存)
.\quick-start.ps1
# 创建演示数据
npm run demo:setup
# 访问应用
# http://localhost:3000
# 演示分享页面: http://localhost:3000/share/demo123
手动启动
# 1. 安装依赖
npm install
# 2. 配置环境变量
cp .env.example .env
# 3. 启动服务
docker-compose up -d
# 4. 访问应用
# 主应用: http://localhost:3000
# MinIO控制台: http://localhost:9001 (minioadmin/minioadmin)
📁 项目结构
src/
├── app/ # Next.js App Router
│ ├── (public)/ # 公开路由 (分享页面)
│ ├── api/ # API路由
│ └── globals.css # 全局样式
├── components/ # React组件
│ ├── 3d/ # 3D相关组件
│ ├── assembly/ # 装配动画组件
│ └── ui/ # UI组件
├── lib/ # 工具库
│ ├── 3d/ # 3D引擎和工具
│ └── utils.ts # 通用工具
└── types/ # TypeScript类型定义
企业部署
硬件要求
最低配置 (轻量级模式):
- CPU: Intel N100 或同等性能
- 内存: 4GB
- 磁盘: 50GB 可用空间
推荐配置 (标准模式):
- CPU: Intel i3 或同等性能
- 内存: 8GB+
- 磁盘: 100GB+ 可用空间
本地部署
Linux / NAS (群晖/威联通):
# 运行自动部署脚本
chmod +x scripts/deploy.sh
./scripts/deploy.sh
Windows:
# 以管理员身份运行
PowerShell -ExecutionPolicy Bypass -File scripts\deploy.ps1
远程部署
从管理机远程部署到目标设备:
# 基本用法
./scripts/remote-deploy.sh 192.168.1.100 admin
# 使用 SSH 密钥
./scripts/remote-deploy.sh 192.168.1.100 admin -k ~/.ssh/id_rsa
# 指定部署模式
./scripts/remote-deploy.sh 192.168.1.100 admin --mode lightweight
批量部署
# 1. 创建配置文件
cp scripts/deploy.conf.example deploy.conf
# 2. 编辑配置,设置多个目标设备
nano deploy.conf
# 3. 运行批量部署
./scripts/remote-deploy.sh --config deploy.conf
📖 详细文档:
🔧 开发命令
# 开发服务器
npm run dev
# 数据库管理
npm run prisma:studio
npm run prisma:generate
npm run prisma:push
# 演示数据
npm run demo:create # 创建演示数据
npm run demo:setup # 推送数据库结构并创建演示数据
# 构建部署
npm run build
npm start
# Docker部署
.\quick-start.ps1 prod
📡 主要API
GET /api/health- 健康检查GET /api/products- 获取产品列表POST /api/products- 创建产品POST /api/share- 创建分享链接GET /api/share/[token]- 获取分享的产品
🎯 使用流程
- 上传3D模型: 支持glTF格式的家具模型
- 设置装配步骤: 定义每个装配步骤的动画和说明
- 生成分享链接: 为客户创建可访问的装配指导页面
- 客户查看: 通过分享链接查看3D装配过程
🔧 本地缓存系统
项目支持本地缓存,大幅提升构建速度:
# 设置缓存(从flnxi_sucai项目复制资源)
.\scripts\cache-manager.ps1 -Action setup
# 加载Docker镜像
.\scripts\cache-manager.ps1 -Action load-images
# 清理缓存
.\scripts\cache-manager.ps1 -Action clean
⚙️ 环境变量
# 数据库
DATABASE_URL="postgresql://furniture_user:furniture_pass_2024@localhost:5432/furniture_3d"
# MinIO存储
S3_ENDPOINT="http://localhost:9000"
S3_BUCKET="furniture-3d-models"
S3_ACCESS_KEY="minioadmin"
S3_SECRET_KEY="minioadmin"
# 应用配置
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"
🛠️ 故障排除
# 查看服务状态
.\quick-start.ps1 status
# 查看日志
.\quick-start.ps1 logs
# 重启服务
.\quick-start.ps1 restart
# 停止服务
.\quick-start.ps1 stop
📝 许可证
本项目采用 MIT 许可证。
🤝 技术支持
如需技术支持,请在项目仓库中提交Issue或联系开发团队。
Description
Languages
TypeScript
91.1%
JavaScript
5.1%
C#
1%
PowerShell
0.7%
CSS
0.6%
Other
1.4%