# 情绪博物馆测试环境部署指南 ## 📋 概述 本文档提供了情绪博物馆项目测试环境的完整部署方案,包括环境安装、数据库初始化、服务部署等全流程。 **新版本特性**: - ✅ 支持IP访问,暂不使用域名 - ✅ 自动化环境安装 (Java, Maven, Node.js, Docker等) - ✅ 自动化数据库初始化 (MySQL + Nacos) - ✅ 测试环境专用配置 - ✅ 使用最新稳定版本软件 - ✅ 完整的健康检查和监控 ## 🏗️ 架构说明 ### 服务组件 - **前端应用** (Vue3 + Ant Design) - 端口: 3000 → 80 (Nginx) - **API网关** (Spring Cloud Gateway) - 端口: 9000 - **AI服务** (Spring Boot + Coze API) - 端口: 9002 - **用户服务** (Spring Boot) - 端口: 9001 - **MySQL数据库** - 端口: 3306 - **Redis缓存** - 端口: 6379 - **Nacos注册中心** - 端口: 8848 - **Nginx反向代理** - 端口: 80 ### 网络架构 ``` 用户 → Nginx(80) → 前端(3000) / API网关(9000) → 微服务 → 数据库 ↓ Nacos注册中心(8848) ``` ## 🚀 快速开始 ### 1. 系统要求 - **操作系统**: Linux/macOS (推荐 Ubuntu 20.04+) - **内存**: 最少4GB,推荐8GB+ - **磁盘**: 最少20GB可用空间 - **网络**: 能够访问互联网 ### 2. 一键部署 ```bash # 进入部署目录 cd emotion-museum-1.0.0-20250713_111829 # 一键部署(包含环境安装、数据库初始化、服务部署) chmod +x deploy.sh ./deploy.sh ``` ### 3. 分步部署 ```bash # 1. 安装基础环境 ./deploy.sh install-env # 2. 初始化数据库 ./deploy.sh init-db # 3. 构建应用镜像 ./deploy.sh build # 4. 启动服务 ./deploy.sh start ``` ### 4. 访问应用 - **前端应用**: http://localhost - **API网关**: http://localhost:9000 - **Nacos控制台**: http://localhost:8848/nacos (nacos/nacos) - **Nacos控制台**: http://localhost:8848/nacos (nacos/nacos) ## 📁 文件结构 ``` emotion-museum-1.0.0-20250713_111829/ ├── deploy.sh # 主部署脚本 ├── install-environment.sh # 环境安装脚本 ├── init-database.sh # 数据库初始化脚本 ├── manage.sh # 服务管理脚本 ├── docker-compose.yml # 默认配置 ├── docker-compose.test.yml # 测试环境配置 ├── .env.test # 测试环境变量 ├── README.md # 快速开始指南 ├── DEPLOY.md # 详细部署文档 ├── backend/ # 后端服务 │ ├── emotion-gateway-1.0.0.jar │ ├── emotion-user-1.0.0.jar │ ├── emotion-ai-1.0.0.jar │ ├── gateway-Dockerfile │ ├── user-Dockerfile │ ├── ai-Dockerfile │ └── config/ # 配置文件 │ ├── application-test.yml │ ├── gateway-test.yml │ └── ai-test.yml ├── frontend/ # 前端应用 │ ├── Dockerfile │ ├── nginx.conf │ ├── index.html │ ├── assets/ │ └── config/ │ └── test.env.js ├── database/ # 数据库脚本 │ ├── mysql_emotion_museum_final.sql │ └── verify-database-script.sql └── deploy/ # 部署配置 ├── nginx/conf.d/ ├── mysql/conf.d/ └── redis/ ``` ## ⚙️ 配置说明 ### 环境变量配置 编辑 `.env.test` 文件: ```bash # 服务器IP(重要:请修改为实际IP) SERVER_IP=localhost # 数据库配置 MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=123456 MYSQL_USERNAME=emotion MYSQL_PASSWORD=emotion123 # Redis配置 REDIS_HOST=localhost REDIS_PORT=6379 # Nacos配置 NACOS_SERVER_ADDR=localhost:8848 # COZE AI配置(重要:请配置实际的API Token) COZE_API_TOKEN=your-coze-api-token # JWT配置 JWT_SECRET=emotion-museum-test-secret-key-2025 # 时区设置 TZ=Asia/Shanghai ``` ### 服务配置 - **网关配置**: `backend/config/gateway-test.yml` - **用户服务配置**: `backend/config/application-test.yml` - **AI服务配置**: `backend/config/ai-test.yml` - **前端配置**: `frontend/config/test.env.js` ### 数据库配置 - **MySQL配置**: `deploy/mysql/conf.d/my.cnf` - **Redis配置**: `deploy/redis/redis.conf` - **初始化脚本**: `database/mysql_emotion_museum_final.sql` ## 🛠️ 管理命令 ### 部署命令 ```bash # 完整部署(推荐) ./deploy.sh # 分步部署 ./deploy.sh install-env # 安装环境 ./deploy.sh init-db # 初始化数据库 ./deploy.sh build # 构建镜像 ./deploy.sh start # 启动服务 # 跳过某些步骤 ./deploy.sh --skip-env # 跳过环境安装 ./deploy.sh --skip-db # 跳过数据库初始化 ./deploy.sh --debug # 启用调试模式 ``` ### 服务管理 ```bash # 查看服务状态 ./deploy.sh status # 启动服务 ./deploy.sh start # 停止服务 ./deploy.sh stop # 重启服务 ./deploy.sh restart # 重启特定服务 ./deploy.sh restart gateway ./deploy.sh restart user-service ./deploy.sh restart ai-service ``` ### 日志管理 ```bash # 查看所有服务日志 ./deploy.sh logs # 跟踪日志输出 ./deploy.sh logs -f # 查看特定服务日志 ./deploy.sh logs gateway ./deploy.sh logs user-service ./deploy.sh logs ai-service ``` ### 数据管理 ```bash # 备份数据 ./deploy.sh backup # 健康检查 ./deploy.sh health # 更新服务 ./deploy.sh update # 清理资源 ./deploy.sh clean ``` ### 独立脚本 ```bash # 环境安装 ./install-environment.sh # 数据库初始化 ./init-database.sh # 服务管理(兼容旧版本) ./manage.sh start ./manage.sh stop ./manage.sh status ``` ## 🔧 生产环境配置 ### 1. 修改环境配置 复制并修改环境配置文件: ```bash # 复制测试环境配置 cp .env.test .env.prod # 修改生产环境配置 vim .env.prod ``` 关键配置项: ```bash # 修改为实际服务器IP SERVER_IP=your-server-ip # 修改为生产环境数据库密码 MYSQL_ROOT_PASSWORD=your-strong-password MYSQL_PASSWORD=your-strong-password # 配置实际的COZE API Token COZE_API_TOKEN=your-actual-coze-api-token # 配置强密码的JWT密钥 JWT_SECRET=your-production-jwt-secret-key # 启用HTTPS(如需要) ENABLE_HTTPS=true NGINX_HTTPS_PORT=443 ``` ### 2. 域名和SSL配置(可选) 如果需要使用域名和HTTPS: ```bash # 放置SSL证书 mkdir -p deploy/nginx/ssl cp your-domain.crt deploy/nginx/ssl/ cp your-domain.key deploy/nginx/ssl/ # 修改Nginx配置 vim deploy/nginx/conf.d/default.conf ``` ### 3. 防火墙配置 ```bash # Ubuntu/Debian sudo ufw allow 80/tcp sudo ufw allow 443/tcp # CentOS/RHEL sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload ``` ## 📊 监控和维护 ### 服务监控 ```bash # 查看服务状态 ./deploy.sh status # 健康检查 ./deploy.sh health # 资源使用情况 docker stats # 查看容器状态 docker ps -a ``` ### 日志管理 ```bash # 查看应用日志 ./deploy.sh logs # 查看特定服务日志 ./deploy.sh logs gateway ./deploy.sh logs user-service ./deploy.sh logs ai-service # 实时跟踪日志 ./deploy.sh logs -f # 查看系统日志 tail -f /data/logs/emotion-museum/gateway-service.log tail -f /data/logs/emotion-museum/user-service.log ``` ### 性能优化 1. **JVM参数调整**:修改 `.env.test` 中的JVM配置 2. **数据库优化**:调整 `deploy/mysql/conf.d/my.cnf` 3. **Redis优化**:调整 `deploy/redis/redis.conf` 4. **Nginx优化**:调整 `deploy/nginx/conf.d/default.conf` ## 🔒 安全配置 ### 1. 数据库安全 - 修改默认密码 - 限制访问IP - 启用SSL连接 ### 2. Redis安全 - 设置密码认证 - 绑定特定IP - 禁用危险命令 ### 3. Nginx安全 - 启用HTTPS - 配置安全头 - 限制请求频率 ### 4. 应用安全 - 配置JWT密钥 - 启用CORS限制 - 设置API限流 ## 🚨 故障排除 ### 常见问题 #### 1. 环境安装失败 ```bash # 检查系统要求 ./install-environment.sh verify # 手动安装特定组件 ./install-environment.sh java ./install-environment.sh docker ``` #### 2. 数据库初始化失败 ```bash # 检查MySQL容器状态 docker logs emotion-mysql # 重新初始化数据库 ./init-database.sh clean ./init-database.sh ``` #### 3. 服务启动失败 ```bash # 查看服务日志 ./deploy.sh logs service-name # 检查端口占用 netstat -tlnp | grep :port # 重启服务 ./deploy.sh restart service-name ``` #### 4. 网络连接问题 ```bash # 检查Docker网络 docker network ls docker network inspect emotion-test-network # 检查服务健康状态 ./deploy.sh health ``` #### 5. 配置文件问题 ```bash # 检查环境变量 cat .env.test # 验证配置文件语法 docker-compose -f docker-compose.test.yml config ``` ### 性能问题 1. **内存不足**:调整 `.env.test` 中的JVM参数 2. **磁盘空间不足**:清理Docker资源 `./deploy.sh clean` 3. **网络延迟**:检查服务间网络连接 ### 日志分析 ```bash # 查看详细部署日志 ./deploy.sh --debug # 查看容器启动日志 docker logs emotion-gateway docker logs emotion-mysql docker logs emotion-nacos ``` ## 📞 技术支持 如遇到问题,请按以下步骤排查: 1. **查看日志**:`./deploy.sh logs --debug` 2. **检查状态**:`./deploy.sh status` 3. **验证配置**:检查 `.env.test` 配置 4. **重新部署**:`./deploy.sh clean && ./deploy.sh` ## 📝 注意事项 - ⚠️ **首次部署**:请确保修改 `.env.test` 中的 `SERVER_IP` 和 `COZE_API_TOKEN` - ⚠️ **生产环境**:请修改所有默认密码和密钥 - ⚠️ **防火墙**:确保开放必要的端口 (80, 3306, 6379, 8848, 9000-9002) - ⚠️ **资源要求**:确保服务器有足够的内存和磁盘空间 --- **部署完成后,请及时修改默认密码和配置文件中的敏感信息!**