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

6.3 KiB
Raw Blame History

情绪博物馆容器部署指南

📋 概述

本文档提供了情绪博物馆项目的完整容器化部署方案,支持开发环境和生产环境的快速部署。

🏗️ 架构说明

服务组件

  • 前端应用 (Vue3 + Ant Design) - 端口: 80/3000
  • API网关 (Spring Cloud Gateway) - 端口: 9000
  • AI服务 (Spring Boot + Coze API) - 端口: 9002
  • 用户服务 (Spring Boot) - 端口: 9001
  • MySQL数据库 - 端口: 3306
  • Redis缓存 - 端口: 6379
  • Nacos注册中心 - 端口: 8848
  • Nginx反向代理 - 端口: 80/443

网络架构

Internet → Nginx → Frontend/Gateway → Microservices → Database

🚀 快速开始

1. 系统要求

  • 操作系统: Linux/macOS/Windows
  • Docker: 20.10+
  • Docker Compose: 1.29+
  • 内存: 最少4GB,推荐8GB+
  • 磁盘: 最少10GB可用空间

2. 一键部署

# 克隆项目
git clone <repository-url>
cd EmotionMuseum

# 快速部署(自动安装依赖)
chmod +x quick-deploy.sh
./quick-deploy.sh

# 或者手动部署
chmod +x deploy.sh
./deploy.sh

3. 访问应用

📁 文件结构

EmotionMuseum/
├── docker-compose.yml          # 开发环境配置
├── docker-compose.prod.yml     # 生产环境配置
├── deploy.sh                   # 部署脚本
├── quick-deploy.sh             # 快速部署脚本
├── manage.sh                   # 管理脚本
├── .env                        # 环境变量
├── deploy/                     # 部署配置
│   ├── nginx/                  # Nginx配置
│   │   ├── nginx.conf
│   │   ├── conf.d/
│   │   └── ssl/
│   ├── mysql/                  # MySQL配置
│   └── redis/                  # Redis配置
├── backend/                    # 后端服务
│   ├── emotion-gateway/
│   │   └── Dockerfile
│   ├── emotion-ai/
│   │   └── Dockerfile
│   └── emotion-user/
│       └── Dockerfile
└── web/                        # 前端应用
    ├── Dockerfile
    └── nginx.conf

⚙️ 配置说明

环境变量配置

编辑 .env 文件:

# 数据库配置
MYSQL_ROOT_PASSWORD=123456
MYSQL_DATABASE=emotion_museum
MYSQL_USER=emotion
MYSQL_PASSWORD=emotion123

# Coze API配置
COZE_API_TOKEN=your-coze-api-token

# 时区设置
TZ=Asia/Shanghai

Nginx配置

  • 主配置: deploy/nginx/nginx.conf
  • 站点配置: deploy/nginx/conf.d/emotion-museum.conf
  • SSL证书: deploy/nginx/ssl/

数据库配置

  • MySQL配置: deploy/mysql/conf.d/my.cnf
  • 初始化脚本: backend/mysql_emotion_museum_final.sql

🛠️ 管理命令

基础操作

# 启动所有服务
./manage.sh start

# 停止所有服务
./manage.sh stop

# 重启所有服务
./manage.sh restart

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

日志管理

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

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

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

服务管理

# 重启特定服务
./manage.sh restart gateway
./manage.sh restart ai-service

# 健康检查
./manage.sh health

# 监控面板
./manage.sh monitor

数据管理

# 备份数据
./manage.sh backup

# 恢复数据
./manage.sh restore backup_file.tar.gz

# 更新服务
./manage.sh update

# 清理资源
./manage.sh clean

🔧 生产环境部署

1. 使用生产配置

# 使用生产环境配置文件
docker-compose -f docker-compose.prod.yml up -d

2. SSL证书配置

# 放置SSL证书
cp your-domain.crt deploy/nginx/ssl/emotion-museum.crt
cp your-domain.key deploy/nginx/ssl/emotion-museum.key

# 修改Nginx配置启用HTTPS
vim deploy/nginx/conf.d/emotion-museum.conf

3. 域名配置

修改 deploy/nginx/conf.d/emotion-museum.conf

server_name your-domain.com www.your-domain.com;

4. 防火墙配置

# 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

📊 监控和维护

服务监控

# 实时监控
./manage.sh monitor

# 资源使用情况
docker stats

# 服务状态
docker-compose ps

日志查看

# 应用日志
./manage.sh logs -f

# 系统日志
tail -f logs/nginx/access.log
tail -f logs/mysql/error.log

性能优化

  1. 数据库优化: 调整 deploy/mysql/conf.d/my.cnf
  2. Redis优化: 调整 deploy/redis/redis.conf
  3. Nginx优化: 调整 deploy/nginx/nginx.conf
  4. JVM优化: 修改Dockerfile中的JVM参数

🔒 安全配置

1. 数据库安全

  • 修改默认密码
  • 限制访问IP
  • 启用SSL连接

2. Redis安全

  • 设置密码认证
  • 绑定特定IP
  • 禁用危险命令

3. Nginx安全

  • 启用HTTPS
  • 配置安全头
  • 限制请求频率

4. 应用安全

  • 配置JWT密钥
  • 启用CORS限制
  • 设置API限流

🚨 故障排除

常见问题

1. 服务启动失败

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

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

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

2. 数据库连接失败

# 检查MySQL状态
docker-compose exec mysql mysqladmin ping -u root -p

# 查看数据库日志
./manage.sh logs -s mysql

3. 前端访问异常

# 检查Nginx配置
nginx -t

# 查看Nginx日志
./manage.sh logs -s nginx

4. API调用失败

# 检查网关状态
curl http://localhost:9000/actuator/health

# 查看网关日志
./manage.sh logs -s gateway

性能问题

  1. 内存不足: 增加服务器内存或调整JVM参数
  2. 磁盘空间: 清理日志文件和Docker镜像
  3. 网络延迟: 检查服务间网络连接

📞 技术支持

如遇到问题,请:

  1. 查看相关服务日志
  2. 检查配置文件
  3. 参考故障排除指南
  4. 联系技术支持团队

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