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

9.8 KiB
Raw Blame History

情绪博物馆测试环境部署指南

📋 概述

本文档提供了情绪博物馆项目测试环境的完整部署方案,包括环境安装、数据库初始化、服务部署等全流程。

新版本特性

  • 支持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. 一键部署

# 进入部署目录
cd emotion-museum-1.0.0-20250713_111829

# 一键部署(包含环境安装、数据库初始化、服务部署)
chmod +x deploy.sh
./deploy.sh

3. 分步部署

# 1. 安装基础环境
./deploy.sh install-env

# 2. 初始化数据库
./deploy.sh init-db

# 3. 构建应用镜像
./deploy.sh build

# 4. 启动服务
./deploy.sh start

4. 访问应用

📁 文件结构

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 文件:

# 服务器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

🛠️ 管理命令

部署命令

# 完整部署(推荐)
./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        # 启用调试模式

服务管理

# 查看服务状态
./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

日志管理

# 查看所有服务日志
./deploy.sh logs

# 跟踪日志输出
./deploy.sh logs -f

# 查看特定服务日志
./deploy.sh logs gateway
./deploy.sh logs user-service
./deploy.sh logs ai-service

数据管理

# 备份数据
./deploy.sh backup

# 健康检查
./deploy.sh health

# 更新服务
./deploy.sh update

# 清理资源
./deploy.sh clean

独立脚本

# 环境安装
./install-environment.sh

# 数据库初始化
./init-database.sh

# 服务管理(兼容旧版本)
./manage.sh start
./manage.sh stop
./manage.sh status

🔧 生产环境配置

1. 修改环境配置

复制并修改环境配置文件:

# 复制测试环境配置
cp .env.test .env.prod

# 修改生产环境配置
vim .env.prod

关键配置项:

# 修改为实际服务器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

# 放置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. 防火墙配置

# 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

📊 监控和维护

服务监控

# 查看服务状态
./deploy.sh status

# 健康检查
./deploy.sh health

# 资源使用情况
docker stats

# 查看容器状态
docker ps -a

日志管理

# 查看应用日志
./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. 环境安装失败

# 检查系统要求
./install-environment.sh verify

# 手动安装特定组件
./install-environment.sh java
./install-environment.sh docker

2. 数据库初始化失败

# 检查MySQL容器状态
docker logs emotion-mysql

# 重新初始化数据库
./init-database.sh clean
./init-database.sh

3. 服务启动失败

# 查看服务日志
./deploy.sh logs service-name

# 检查端口占用
netstat -tlnp | grep :port

# 重启服务
./deploy.sh restart service-name

4. 网络连接问题

# 检查Docker网络
docker network ls
docker network inspect emotion-test-network

# 检查服务健康状态
./deploy.sh health

5. 配置文件问题

# 检查环境变量
cat .env.test

# 验证配置文件语法
docker-compose -f docker-compose.test.yml config

性能问题

  1. 内存不足:调整 .env.test 中的JVM参数
  2. 磁盘空间不足:清理Docker资源 ./deploy.sh clean
  3. 网络延迟:检查服务间网络连接

日志分析

# 查看详细部署日志
./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_IPCOZE_API_TOKEN
  • ⚠️ 生产环境:请修改所有默认密码和密钥
  • ⚠️ 防火墙:确保开放必要的端口 (80, 3306, 6379, 8848, 9000-9002)
  • ⚠️ 资源要求:确保服务器有足够的内存和磁盘空间

部署完成后,请及时修改默认密码和配置文件中的敏感信息!