# 情绪博物馆完整部署指南 ## 📦 部署包信息 **包名称**: `emotion-museum-1.0.0-20250713_111829.tar.gz` **包大小**: 680KB **SHA256**: `900d585f575b1619e74296496e2fe22f2c2e71b6ad8901d7cab82634765cc10d` **构建时间**: 2025-07-13 11:18:29 ## 🎯 部署概述 本部署包包含了情绪博物馆项目的完整容器化部署方案,支持: - ✅ 前端Vue3应用(已构建) - ✅ 后端微服务(Gateway、AI、User) - ✅ 数据库脚本(MySQL) - ✅ 完整的Docker配置 - ✅ 自动化部署脚本 - ✅ 监控和管理工具 ## 🏗️ 系统架构 ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 用户访问 │───▶│ Nginx │───▶│ 前端应用 │ └─────────────┘ │ (80/443) │ │ (3000) │ └─────────────┘ └─────────────┘ │ ▼ ┌─────────────┐ ┌─────────────┐ │ API网关 │───▶│ 微服务集群 │ │ (9000) │ │ AI/User/... │ └─────────────┘ └─────────────┘ │ ▼ ┌─────────────┐ ┌─────────────┐ │ MySQL │ │ Redis │ │ (3306) │ │ (6379) │ └─────────────┘ └─────────────┘ ``` ## 🚀 快速部署(推荐) ### 1. 下载和解压 ```bash # 下载部署包到服务器 wget https://your-domain.com/emotion-museum-1.0.0-20250713_111829.tar.gz # 验证文件完整性 echo "900d585f575b1619e74296496e2fe22f2c2e71b6ad8901d7cab82634765cc10d emotion-museum-1.0.0-20250713_111829.tar.gz" | sha256sum -c # 解压部署包 tar -xzf emotion-museum-1.0.0-20250713_111829.tar.gz cd emotion-museum-1.0.0-20250713_111829 ``` ### 2. 配置环境变量 ```bash # 复制环境变量模板 cp .env .env.local # 编辑配置文件 vim .env.local ``` **必须配置的项目**: ```bash # Coze API配置(必须修改) COZE_API_TOKEN=your-actual-coze-api-token # 数据库密码(建议修改) MYSQL_ROOT_PASSWORD=your-secure-password MYSQL_PASSWORD=your-secure-password # 时区设置 TZ=Asia/Shanghai ``` ### 3. 一键部署 ```bash # 给脚本执行权限 chmod +x quick-deploy.sh # 执行一键部署(自动安装Docker等依赖) ./quick-deploy.sh ``` ### 4. 验证部署 ```bash # 查看服务状态 ./manage.sh status # 健康检查 ./manage.sh health # 查看日志 ./manage.sh logs ``` ## 🔧 手动部署(高级用户) ### 1. 环境准备 ```bash # 安装Docker curl -fsSL https://get.docker.com | sh sudo systemctl start docker sudo systemctl enable docker # 安装Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # 添加用户到docker组 sudo usermod -aG docker $USER ``` ### 2. 配置防火墙 ```bash # Ubuntu/Debian sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 8848/tcp # Nacos(可选) # CentOS/RHEL sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --permanent --add-port=8848/tcp sudo firewall-cmd --reload ``` ### 3. 部署服务 ```bash # 开发环境部署 ./deploy.sh # 或生产环境部署 docker-compose -f docker-compose.prod.yml up -d ``` ## ⚙️ 配置说明 ### 环境变量配置 | 变量名 | 说明 | 默认值 | 是否必须 | |--------|------|--------|----------| | `COZE_API_TOKEN` | Coze API令牌 | - | ✅ 必须 | | `MYSQL_ROOT_PASSWORD` | MySQL root密码 | 123456 | 🔶 建议修改 | | `MYSQL_PASSWORD` | MySQL用户密码 | emotion123 | 🔶 建议修改 | | `TZ` | 时区设置 | Asia/Shanghai | ⭕ 可选 | | `DOMAIN_NAME` | 域名(生产环境) | localhost | ⭕ 可选 | ### 端口配置 | 服务 | 端口 | 说明 | |------|------|------| | Nginx | 80, 443 | Web访问端口 | | Gateway | 9000 | API网关 | | AI Service | 9002 | AI服务 | | User Service | 9001 | 用户服务 | | MySQL | 3306 | 数据库 | | Redis | 6379 | 缓存 | | Nacos | 8848 | 注册中心 | ## 🌐 生产环境配置 ### 1. HTTPS配置 ```bash # 1. 准备SSL证书 mkdir -p deploy/nginx/ssl cp your-domain.crt deploy/nginx/ssl/emotion-museum.crt cp your-domain.key deploy/nginx/ssl/emotion-museum.key # 2. 修改Nginx配置 vim deploy/nginx/conf.d/emotion-museum.conf # 取消HTTPS相关配置的注释 # 3. 重启Nginx docker-compose restart nginx ``` ### 2. 域名配置 ```bash # 修改Nginx配置中的域名 vim deploy/nginx/conf.d/emotion-museum.conf # 将 localhost 替换为您的实际域名 ``` ### 3. 性能优化 ```bash # 1. 调整MySQL配置 vim deploy/mysql/conf.d/my.cnf # 2. 调整Redis配置 vim deploy/redis/redis.conf # 3. 调整JVM参数(在Dockerfile中) # -Xms512m -Xmx1024m ``` ## 🛠️ 管理命令 ### 服务管理 ```bash ./manage.sh start # 启动所有服务 ./manage.sh stop # 停止所有服务 ./manage.sh restart # 重启所有服务 ./manage.sh restart gateway # 重启指定服务 ./manage.sh status # 查看服务状态 ``` ### 日志管理 ```bash ./manage.sh logs # 查看所有日志 ./manage.sh logs -f # 跟踪日志输出 ./manage.sh logs -s gateway # 查看网关日志 ./manage.sh logs -s ai-service # 查看AI服务日志 ``` ### 数据管理 ```bash ./manage.sh backup # 备份数据 ./manage.sh restore backup.tar.gz # 恢复数据 ./manage.sh update # 更新服务 ./manage.sh clean # 清理资源 ``` ### 监控工具 ```bash ./manage.sh monitor # 实时监控面板 ./manage.sh health # 健康检查 ``` ## 📊 访问地址 部署完成后,您可以通过以下地址访问: | 服务 | 地址 | 说明 | |------|------|------| | 前端应用 | http://localhost | 主要访问入口 | | API文档 | http://localhost:9000/doc.html | Swagger文档 | | Nacos控制台 | http://localhost:8848/nacos | 服务注册中心 | | 网关健康检查 | http://localhost:9000/actuator/health | 服务状态 | **默认账号**: - Nacos: nacos / nacos ## 🚨 故障排除 ### 常见问题 #### 1. 端口冲突 ```bash # 检查端口占用 netstat -tlnp | grep :80 netstat -tlnp | grep :3306 # 解决方案:修改docker-compose.yml中的端口映射 ``` #### 2. 服务启动失败 ```bash # 查看具体错误 ./manage.sh logs -s service-name # 常见原因: # - 内存不足 # - 端口被占用 # - 配置文件错误 # - 依赖服务未启动 ``` #### 3. 数据库连接失败 ```bash # 检查MySQL状态 docker-compose exec mysql mysqladmin ping -u root -p # 检查网络连接 docker network ls docker network inspect emotion-network ``` #### 4. 前端访问404 ```bash # 检查Nginx配置 docker-compose exec nginx nginx -t # 检查前端容器状态 docker-compose ps web ``` #### 5. API调用失败 ```bash # 检查网关状态 curl http://localhost:9000/actuator/health # 检查服务注册 curl http://localhost:8848/nacos/v1/ns/instance/list?serviceName=emotion-ai ``` ### 性能问题 #### 1. 内存不足 ```bash # 查看内存使用 free -h docker stats # 解决方案: # - 增加服务器内存 # - 调整JVM参数 # - 减少并发连接数 ``` #### 2. 磁盘空间不足 ```bash # 查看磁盘使用 df -h # 清理Docker资源 ./manage.sh clean docker system prune -a ``` #### 3. 网络延迟 ```bash # 检查服务间网络 docker-compose exec gateway ping mysql docker-compose exec gateway ping redis # 优化网络配置 # 使用自定义网络 # 调整网络参数 ``` ## 🔒 安全建议 ### 1. 密码安全 - ✅ 修改所有默认密码 - ✅ 使用强密码策略 - ✅ 定期更换密码 ### 2. 网络安全 - ✅ 配置防火墙规则 - ✅ 使用HTTPS加密 - ✅ 限制不必要的端口访问 ### 3. 数据安全 - ✅ 定期备份数据 - ✅ 启用数据库SSL - ✅ 配置访问控制 ### 4. 应用安全 - ✅ 配置JWT密钥 - ✅ 启用API限流 - ✅ 监控异常访问 ## 📞 技术支持 ### 获取帮助 1. **查看文档**: 包内的 `DEPLOY.md` 和 `QUICK_START.md` 2. **查看日志**: `./manage.sh logs -f` 3. **健康检查**: `./manage.sh health` 4. **查看版本**: `cat VERSION.txt` ### 联系方式 - 📧 技术支持邮箱: support@emotion-museum.com - 📱 技术支持QQ群: 123456789 - 🌐 官方网站: https://emotion-museum.com --- **🎉 恭喜!您已成功部署情绪博物馆项目!** **⚠️ 重要提醒:部署完成后请及时修改默认密码和敏感配置!**