Files
happy-life-star/packages/emotion-museum-1.0.0-20250713_111829/DEPLOY.md
T

472 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 情绪博物馆测试环境部署指南
## 📋 概述
本文档提供了情绪博物馆项目测试环境的完整部署方案,包括环境安装、数据库初始化、服务部署等全流程。
**新版本特性**
- ✅ 支持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)
- ⚠️ **资源要求**:确保服务器有足够的内存和磁盘空间
---
**部署完成后,请及时修改默认密码和配置文件中的敏感信息!**