# 结伴客后台管理系统部署指南 ## 部署方式 ### 1. 本地开发环境部署 #### 使用 npm 脚本 ```bash # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build # 预览生产版本 npm run preview ``` #### 使用部署脚本 **Linux/Mac:** ```bash chmod +x deploy.sh ./deploy.sh ``` **Windows PowerShell:** ```powershell .\deploy.ps1 ``` ### 2. Docker 容器化部署 #### 开发环境 ```bash # 启动开发环境(包含前端、后端、数据库等所有服务) docker-compose up frontend-dev backend mysql redis rabbitmq # 或启动所有服务 docker-compose up ``` #### 生产环境 ```bash # 构建并启动生产环境 docker-compose up -d frontend backend mysql redis rabbitmq # 查看服务状态 docker-compose ps # 查看日志 docker-compose logs frontend ``` ### 3. 单独服务部署 #### 前端服务 ```bash # 开发模式 docker-compose up frontend-dev # 生产模式 docker-compose up frontend ``` #### 后端服务 ```bash docker-compose up backend ``` #### 数据库服务 ```bash docker-compose up mysql redis rabbitmq ``` ## 环境配置 ### 环境变量文件 创建以下环境变量文件: **.env.development** (开发环境): ``` VITE_APP_TITLE=结伴客后台管理系统(开发) VITE_API_BASE_URL=https://webapi.jiebanke.com/api/v1 VITE_APP_VERSION=dev ``` **.env.production** (生产环境): ``` VITE_APP_TITLE=结伴客后台管理系统 VITE_API_BASE_URL=https://webapi.jiebanke.com VITE_APP_VERSION=v1.0.0 ``` ### Docker 环境变量 在 `docker-compose.yml` 中配置: ```yaml environment: - NODE_ENV=production - DB_HOST=mysql - DB_PORT=3306 - DB_NAME=jiebanke - DB_USER=root - DB_PASSWORD=password - REDIS_HOST=redis - REDIS_PORT=6379 - RABBITMQ_HOST=rabbitmq - RABBITMQ_PORT=5672 ``` ## 端口映射 | 服务 | 容器端口 | 主机端口 | 说明 | |------|----------|----------|------| | 前端 | 80 | 80 | 生产环境前端 | | 前端开发 | 5173 | 5173 | 开发环境前端 | | 后端API | 3000 | 3000 | Node.js后端服务 | | MySQL | 3306 | 3306 | 数据库服务 | | Redis | 6379 | 6379 | 缓存服务 | | RabbitMQ | 5672 | 5672 | 消息队列服务 | | RabbitMQ管理 | 15672 | 15672 | 管理界面 | ## 健康检查 系统提供健康检查端点: - 前端: `https://admin.jiebanke.com/health` - 后端: `https://webapi.jiebanke.com/health` ## 监控和日志 ### 查看日志 ```bash # 查看所有服务日志 docker-compose logs # 查看特定服务日志 docker-compose logs frontend docker-compose logs backend ``` ### 服务状态监控 ```bash # 查看服务状态 docker-compose ps # 查看资源使用情况 docker stats ``` ## 故障排除 ### 常见问题 1. **端口冲突** - 检查端口是否被占用 - 修改 `docker-compose.yml` 中的端口映射 2. **依赖安装失败** - 清除缓存: `npm cache clean --force` - 删除 node_modules 重新安装 3. **数据库连接失败** - 检查数据库服务是否启动 - 验证环境变量配置 4. **构建失败** - 检查 Node.js 版本 (要求 >= 16) - 检查系统依赖 ### 调试模式 启动服务时添加调试标志: ```bash # 前端开发调试 npm run dev -- --debug # Docker 调试模式 docker-compose up --build --force-recreate ``` ## 备份和恢复 ### 数据库备份 ```bash # 备份MySQL数据 docker exec -i mysql mysqldump -uroot -ppassword jiebanke > backup.sql # 恢复MySQL数据 docker exec -i mysql mysql -uroot -ppassword jiebanke < backup.sql ``` ### 卷备份 ```bash # 备份数据库卷 docker run --rm -v mysql_data:/source -v $(pwd):/backup alpine tar czf /backup/mysql_backup.tar.gz -C /source . ``` ## 安全建议 1. **修改默认密码** - MySQL root 密码 - RabbitMQ 默认用户密码 - Redis 密码(如果需要) 2. **启用HTTPS** - 配置SSL证书 - 使用反向代理 3. **防火墙配置** - 只开放必要的端口 - 限制外部访问 4. **定期更新** - 更新Docker镜像 - 更新依赖包 ## 性能优化 1. **启用缓存** - 配置Redis缓存 - 使用CDN加速静态资源 2. **负载均衡** - 使用nginx负载均衡 - 配置多实例部署 3. **数据库优化** - 添加索引 - 查询优化 - 连接池配置 ## 支持 如遇部署问题,请检查: 1. Docker 和 Docker Compose 版本 2. 系统资源(内存、磁盘空间) 3. 网络连接 4. 查看详细错误日志