# AI Contract Platform 部署说明 ## 部署架构 与 hyburk.com 部署方式一致,采用前后端分离部署: | 组件 | 部署位置 | 目录 | 说明 | |------|---------|------|------| | 前端 Next.js | 阿里云 ECS | `/opt/apps/ai-contract-web` | nginx gateway + Next.js 容器 | | 后端 FastAPI | 192.168.3.90 | `/opt/apps/ai-contract-platform` | backend + worker + redis | | 后端 Gateway | 192.168.3.90 | `/opt/apps/ai-contract-platform-gateway` | nginx 代理 API | | 共享 PostgreSQL | 192.168.3.90 | - | 端口 5432 | | 共享 Redis | 192.168.3.90 | - | 端口 6379 | | 共享 MinIO | 192.168.3.90 | - | 端口 9000 | **域名**: `contact.yuqei.com` **流量路径**: ``` contact.yuqei.com → 阿里云 nginx (127.0.0.1:18083) ├── /api/ → 后端服务器 10.20.0.11:18083 → backend:8000 ├── /health → 后端服务器 health check └── 其他 → 阿里云 Next.js 容器:3000 ``` ## 配置文件说明 | 文件 | 用途 | |------|------| | `docker-compose.server.yml` | 后端服务器部署(192.168.3.90) | | `docker-compose.frontend.aliyun.yml` | 前端阿里云部署模板 | | `deploy/web-gateway.conf` | 阿里云 nginx 配置(前端 gateway) | | `.env.example` | 后端环境变量模板 | ## 阿里云前端部署目录结构 ``` /opt/apps/ai-contract-web/ ├── releases/ │ └── YYYYMMDDHHMMSS/ │ ├── docker-compose.yml # 使用 docker-compose.frontend.aliyun.yml │ ├── nginx/ │ │ └── web-gateway.conf # nginx 配置 │ └── app/ # 前端代码(从 frontend/ 复制) │ ├── Dockerfile │ └── ... (Next.js 项目文件) ├── current → releases/YYYYMMDDHHMMSS # 软链接指向当前版本 └── logs/ └── nginx/ ``` ## 后端服务器部署目录结构 ``` /opt/apps/ai-contract-platform/ ├── docker-compose.server.yml ├── .env ├── backend/ │ ├── Dockerfile │ └── ... (FastAPI 项目文件) └── frontend/ # 可选,本地开发用 ``` ## 部署步骤 ### 1. 后端部署(192.168.3.90) ```bash cd /opt/apps/ai-contract-platform git pull docker compose -f docker-compose.server.yml up -d --build ``` ### 2. 前端部署(阿里云) ```bash # 创建发布目录 TIMESTAMP=$(date +%Y%m%d%H%M%S) mkdir -p /opt/apps/ai-contract-web/releases/$TIMESTAMP cd /opt/apps/ai-contract-web/releases/$TIMESTAMP # 复制配置和代码 cp docker-compose.yml . # 来自项目 docker-compose.frontend.aliyun.yml mkdir -p nginx app cp web-gateway.conf nginx/ # 来自项目 deploy/web-gateway.conf cp -r frontend/* app/ # 复制前端代码 # 构建和启动 docker compose up -d --build # 更新软链接 ln -sfn /opt/apps/ai-contract-web/releases/$TIMESTAMP /opt/apps/ai-contract-web/current ``` ### 3. 验证 ```bash # 后端健康检查 curl http://10.20.0.11:18083/health # 前端健康检查 curl http://127.0.0.1:18083/healthz # 完整检查 curl http://contact.yuqei.com/health ``` ## 端口说明 | 端口 | 服务 | 位置 | |------|------|------| | 18083 | 前端 nginx gateway | 阿里云 127.0.0.1 | | 18083 | 后端 nginx gateway | 192.168.3.90 10.20.0.11 | | 8001 | 后端 FastAPI | 192.168.3.90 | | 5432 | PostgreSQL | 192.168.3.90 | | 6379 | Redis | 192.168.3.90 | | 9000 | MinIO | 192.168.3.90 |