# 智能期货期权分析系统 - 部署指南

## 系统架构

```
┌─────────────────┐      ┌─────────────────┐      ┌─────────────────┐
│     Nginx       │──────▶   前端 (React)  │      │   后端 (NestJS) │
│   (反向代理)    │      │    Port: 80     │      │   Port: 3000    │
└─────────────────┘      └─────────────────┘      └────────┬────────┘
                                                          │
                              ┌─────────────────┐        │
                              │   PostgreSQL    │◀───────┤
                              │   Port: 5432    │        │
                              └─────────────────┘        │
                              ┌─────────────────┐        │
                              │     Redis       │◀───────┘
                              │   Port: 6379    │
                              └─────────────────┘
```

## 快速开始

### 方式一：Docker Compose (推荐)

```bash
# 1. 克隆代码
git clone <repository-url>
cd AlphaFuturesProMax

# 2. 设置环境变量
cp app/server/.env.example app/server/.env
# 编辑 .env 文件，设置必要的配置

# 3. 启动服务
docker-compose up -d

# 4. 查看日志
docker-compose logs -f backend

# 5. 停止服务
docker-compose down
```

### 方式二：手动部署

#### 1. 环境要求

- Node.js 20+
- PostgreSQL 15+
- Redis 7+

#### 2. 后端部署

```bash
# 进入后端目录
cd app/server

# 安装依赖
npm install

# 设置环境变量
cp .env.example .env
# 编辑 .env 配置数据库连接等信息

# 执行数据库迁移
npx prisma migrate deploy

# 生成Prisma客户端
npx prisma generate

# 导入种子数据
npx prisma db seed

# 启动服务
npm run start:prod
```

#### 3. 前端部署

```bash
# 进入前端目录
cd app

# 安装依赖
npm install

# 设置API地址
# 编辑 .env.production 文件
VITE_API_BASE_URL=http://your-api-server:3000/api/v1
VITE_WS_URL=http://your-api-server:3000/market

# 构建
npm run build

# 部署到Nginx
# 将 dist 目录复制到Nginx的web目录
```

## 环境变量配置

### 后端环境变量 (.env)

```bash
# 应用配置
NODE_ENV=production
PORT=3000

# 数据库
DATABASE_URL=postgresql://user:password@localhost:5432/futures_analysis

# Redis
REDIS_URL=redis://localhost:6379

# JWT密钥 (生产环境必须修改!)
JWT_SECRET=your-super-secret-key-change-this

# OpenAI (可选，用于AI分析)
OPENAI_API_KEY=your-openai-key
```

### 前端环境变量 (.env.production)

```bash
VITE_API_BASE_URL=http://api.yourdomain.com/api/v1
VITE_WS_URL=http://api.yourdomain.com/market
```

## API文档

启动后端服务后，访问以下地址查看API文档：

```
http://localhost:3000/docs
```

## 功能清单

### ✅ 已实现功能

#### 后端功能
- [x] 用户认证系统 (JWT)
- [x] 行情数据服务 (REST + WebSocket)
- [x] 技术指标计算 (MACD, RSI, KDJ, BOLL, SAR, OBV, DMI, CCI, WR)
- [x] 期权分析模块 (Black-Scholes定价、希腊值、波动率曲面)
- [x] AI智能分析 (支持OpenAI API)
- [x] 热点事件管理
- [x] 自选股功能
- [x] 价格预警系统

#### 前端功能
- [x] 市场概览仪表盘
- [x] 品种筛选和搜索
- [x] K线图展示 (含MACD、成交量)
- [x] 热点事件分析
- [x] 风险提醒

### 🚧 待实现功能

- [ ] 交易信号系统
- [ ] 量化策略回测
- [ ] 移动端APP
- [ ] 管理后台

## 监控和维护

### 查看服务状态

```bash
# Docker方式
docker-compose ps

# 查看日志
docker-compose logs -f [service-name]
```

### 数据库备份

```bash
# Docker方式
docker-compose exec postgres pg_dump -U futures_user futures_analysis > backup.sql

# 恢复
docker-compose exec -T postgres psql -U futures_user futures_analysis < backup.sql
```

## 常见问题

### 1. 端口冲突

编辑 `docker-compose.yml` 修改端口映射：

```yaml
services:
  backend:
    ports:
      - "3001:3000"  # 修改为3001
```

### 2. 数据库连接失败

检查 `DATABASE_URL` 是否正确，确保PostgreSQL服务已启动。

### 3. 前端无法访问API

检查前端环境变量 `VITE_API_BASE_URL` 是否正确配置。

## 生产环境建议

1. **安全**
   - 修改默认的JWT密钥
   - 启用HTTPS
   - 配置防火墙规则

2. **性能**
   - 启用Redis缓存
   - 配置CDN加速静态资源
   - 数据库索引优化

3. **监控**
   - 配置日志收集 (ELK/Loki)
   - 设置告警规则
   - 监控API响应时间

## 技术栈

- **前端**: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
- **后端**: NestJS + TypeScript
- **数据库**: PostgreSQL 15
- **缓存**: Redis 7
- **部署**: Docker + Docker Compose
