feat: 项目初始化及当前全部内容提交

This commit is contained in:
2025-07-15 17:37:50 +08:00
parent ec817067f1
commit e78f192d34
622 changed files with 75174 additions and 383 deletions
+313
View File
@@ -0,0 +1,313 @@
# 情绪博物馆容器部署指南
## 📋 概述
本文档提供了情绪博物馆项目的完整容器化部署方案,支持开发环境和生产环境的快速部署。
## 🏗️ 架构说明
### 服务组件
- **前端应用** (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. 一键部署
```bash
# 克隆项目
git clone <repository-url>
cd EmotionMuseum
# 快速部署(自动安装依赖)
chmod +x quick-deploy.sh
./quick-deploy.sh
# 或者手动部署
chmod +x deploy.sh
./deploy.sh
```
### 3. 访问应用
- **前端应用**: http://localhost
- **API文档**: http://localhost:9000/doc.html
- **Nacos控制台**: http://localhost:8848/nacos (nacos/nacos)
## 📁 文件结构
```
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` 文件:
```bash
# 数据库配置
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`
## 🛠️ 管理命令
### 基础操作
```bash
# 启动所有服务
./manage.sh start
# 停止所有服务
./manage.sh stop
# 重启所有服务
./manage.sh restart
# 查看服务状态
./manage.sh status
```
### 日志管理
```bash
# 查看所有服务日志
./manage.sh logs
# 跟踪日志输出
./manage.sh logs -f
# 查看特定服务日志
./manage.sh logs -s gateway
./manage.sh logs -s ai-service
```
### 服务管理
```bash
# 重启特定服务
./manage.sh restart gateway
./manage.sh restart ai-service
# 健康检查
./manage.sh health
# 监控面板
./manage.sh monitor
```
### 数据管理
```bash
# 备份数据
./manage.sh backup
# 恢复数据
./manage.sh restore backup_file.tar.gz
# 更新服务
./manage.sh update
# 清理资源
./manage.sh clean
```
## 🔧 生产环境部署
### 1. 使用生产配置
```bash
# 使用生产环境配置文件
docker-compose -f docker-compose.prod.yml up -d
```
### 2. SSL证书配置
```bash
# 放置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`
```nginx
server_name your-domain.com www.your-domain.com;
```
### 4. 防火墙配置
```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
# 实时监控
./manage.sh monitor
# 资源使用情况
docker stats
# 服务状态
docker-compose ps
```
### 日志查看
```bash
# 应用日志
./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. 服务启动失败
```bash
# 查看服务日志
./manage.sh logs -s service-name
# 检查端口占用
netstat -tlnp | grep :port
# 重启服务
./manage.sh restart service-name
```
#### 2. 数据库连接失败
```bash
# 检查MySQL状态
docker-compose exec mysql mysqladmin ping -u root -p
# 查看数据库日志
./manage.sh logs -s mysql
```
#### 3. 前端访问异常
```bash
# 检查Nginx配置
nginx -t
# 查看Nginx日志
./manage.sh logs -s nginx
```
#### 4. API调用失败
```bash
# 检查网关状态
curl http://localhost:9000/actuator/health
# 查看网关日志
./manage.sh logs -s gateway
```
### 性能问题
1. **内存不足**: 增加服务器内存或调整JVM参数
2. **磁盘空间**: 清理日志文件和Docker镜像
3. **网络延迟**: 检查服务间网络连接
## 📞 技术支持
如遇到问题,请:
1. 查看相关服务日志
2. 检查配置文件
3. 参考故障排除指南
4. 联系技术支持团队
---
**部署完成后,请及时修改默认密码和配置文件中的敏感信息!**