# DesignerCEP 部署前检查清单

## ✅ 部署前准备（本地）

### 前端配置

- [ ] 创建 `Designer/.env.production` 文件
  ```env
  VITE_API_BASE_URL=https://your-domain.com/api/v1
  VITE_API_SERVER=https://your-domain.com
  ```

- [ ] 修改 `Designer/src/main.ts` 添加日志控制
  ```typescript
  import { logger } from '@/utils/logger';
  
  if (import.meta.env.PROD) {
      logger.disable();  // 生产环境关闭日志
  } else {
      logger.enable();   // 开发环境开启日志
  }
  ```

- [ ] 检查 `Designer/src/config.ts` 是否使用环境变量
  ```typescript
  apiBaseUrl: import.meta.env.VITE_API_BASE_URL || 'http://127.0.0.1:8000/api/v1'
  ```

- [ ] 测试构建命令
  ```bash
  cd Designer
  npm run build
  ```

- [ ] 检查构建产物（应该在 `Designer/dist/` 目录）
  - `dist/Shell/` - Shell 登录壳
  - `dist/Designer/` - Core 核心应用

### 后端配置

- [ ] 创建生产环境配置文件（用于上传到服务器）
  ```bash
  cp Server/.env.example Server/.env.production
  ```

- [ ] 修改 `Server/.env.production`：
  - [ ] 修改 `SECRET_KEY` 为强随机密钥
  - [ ] 设置 `DEBUG=False`
  - [ ] 配置 `ALLOWED_ORIGINS`（你的域名）
  - [ ] 配置数据库连接（如使用 PostgreSQL/MySQL）

- [ ] 检查 `Server/requirements.txt` 包含所有依赖

- [ ] 打包 Shell（供用户下载）
  ```bash
  cd Designer/dist
  zip -r shell-1.0.0.zip Shell/
  # 将 shell-1.0.0.zip 准备上传到服务器
  ```

---

## 🖥️ 服务器准备

### 基础环境

- [ ] 服务器已购买（推荐：阿里云、腾讯云、AWS）
- [ ] 操作系统：Ubuntu 20.04+ 或 CentOS 7+
- [ ] 配置：最低 1核2G，推荐 2核4G
- [ ] 已安装 Python 3.9+
  ```bash
  python3 --version
  ```
- [ ] 已安装 Nginx
  ```bash
  nginx -v
  ```
- [ ] 已安装 Git
  ```bash
  git --version
  ```

### 域名和 SSL

- [ ] 域名已购买
- [ ] DNS 已解析到服务器 IP
  ```bash
  # 验证 DNS 解析
  ping your-domain.com
  ```
- [ ] 准备申请 SSL 证书（Let's Encrypt 免费）

### 网络配置

- [ ] 服务器防火墙已开放端口：
  - [ ] 22 (SSH)
  - [ ] 80 (HTTP)
  - [ ] 443 (HTTPS)
  
- [ ] 安全组规则已配置（云服务器）

---

## 📤 文件上传

### 上传后端代码

- [ ] 方式 1: 使用 Git（推荐）
  ```bash
  ssh user@your-server
  cd /var/www
  git clone https://your-repo-url.git DesignerCEP
  ```

- [ ] 方式 2: 使用 SCP
  ```bash
  scp -r Server/ user@your-server:/var/www/DesignerCEP/
  ```

### 上传前端构建产物

- [ ] 上传 Shell 在线登录页
  ```bash
  scp -r Designer/dist/Shell/* \
    user@your-server:/var/www/DesignerCEP/Server/static/shell/
  ```

- [ ] 上传 Core（核心应用）
  ```bash
  scp -r Designer/dist/Designer/* \
    user@your-server:/var/www/DesignerCEP/Server/static/core/1.0.0/
  ```

- [ ] 打包并上传 Shell（供 CEP 扩展下载）
  ```bash
  # 本地打包
  cd Designer/dist
  zip -r shell-1.0.0.zip Shell/
  
  # 上传到服务器
  scp shell-1.0.0.zip \
    user@your-server:/var/www/DesignerCEP/Server/static/downloads/
  ```

---

## 🔧 服务器配置

### Python 环境

- [ ] 创建虚拟环境
  ```bash
  cd /var/www/DesignerCEP/Server
  python3 -m venv venv
  source venv/bin/activate
  ```

- [ ] 安装依赖
  ```bash
  pip install -r requirements.txt
  pip install gunicorn uvicorn[standard]
  ```

### 环境变量

- [ ] 上传 `.env.production` 并重命名为 `.env`
  ```bash
  scp Server/.env.production user@your-server:/var/www/DesignerCEP/Server/.env
  ```

- [ ] 验证配置
  ```bash
  cat /var/www/DesignerCEP/Server/.env
  ```

### 目录结构

- [ ] 验证目录结构正确
  ```
  /var/www/DesignerCEP/Server/
    ├── app/
    ├── static/
    │   ├── shell/              # Shell 在线登录页
    │   │   ├── index.html
    │   │   └── assets/
    │   ├── downloads/          # 下载文件
    │   │   └── shell-1.0.0.zip
    │   └── core/
    │       └── 1.0.0/
    │           ├── index.html
    │           └── assets/
    ├── .env
    ├── requirements.txt
    └── venv/
  ```

- [ ] 创建日志目录
  ```bash
  mkdir -p /var/www/DesignerCEP/Server/logs
  ```

### Systemd 服务

- [ ] 创建服务文件
  ```bash
  sudo nano /etc/systemd/system/designer-cep.service
  ```

- [ ] 启动服务
  ```bash
  sudo systemctl daemon-reload
  sudo systemctl start designer-cep
  sudo systemctl enable designer-cep
  ```

- [ ] 验证服务状态
  ```bash
  sudo systemctl status designer-cep
  ```

### Nginx 配置

- [ ] 创建 Nginx 配置文件
  ```bash
  sudo nano /etc/nginx/sites-available/designer-cep
  ```

- [ ] 启用配置
  ```bash
  sudo ln -s /etc/nginx/sites-available/designer-cep /etc/nginx/sites-enabled/
  ```

- [ ] 测试 Nginx 配置
  ```bash
  sudo nginx -t
  ```

- [ ] 重启 Nginx
  ```bash
  sudo systemctl restart nginx
  ```

### SSL 证书

- [ ] 安装 Certbot
  ```bash
  sudo apt install certbot python3-certbot-nginx
  ```

- [ ] 申请证书
  ```bash
  sudo certbot --nginx -d your-domain.com -d www.your-domain.com
  ```

- [ ] 验证自动续期
  ```bash
  sudo certbot renew --dry-run
  ```

---

## 🧪 测试验证

### 后端 API 测试

- [ ] 健康检查
  ```bash
  curl https://your-domain.com/api/v1/health
  ```

- [ ] 登录接口
  ```bash
  curl -X POST https://your-domain.com/api/v1/client/login \
    -H "Content-Type: application/json" \
    -d '{"username":"test","password":"test123","device_id":"test-device"}'
  ```

### 前端访问测试

- [ ] 访问 Shell 在线登录页
  ```
  https://your-domain.com/shell/
  或
  https://your-domain.com/shell/index.html
  ```

- [ ] 访问 Core 首页
  ```
  https://your-domain.com/core/1.0.0/index.html
  ```

- [ ] 检查静态资源加载（F12 查看 Network）

- [ ] Shell 下载链接（供 CEP 扩展下载）
  ```
  https://your-domain.com/downloads/shell-1.0.0.zip
  ```

### 功能测试

- [ ] 用户注册功能
- [ ] 用户登录功能
- [ ] 自动登录功能
- [ ] 版本检查和更新
- [ ] Photoshop 插件功能（创建图层等）
- [ ] 退出登录功能

### 性能测试

- [ ] 页面加载速度
  ```bash
  curl -w "@curl-format.txt" -o /dev/null -s https://your-domain.com/core/1.0.0/
  ```

- [ ] API 响应时间

- [ ] 并发测试（可选）
  ```bash
  ab -n 1000 -c 10 https://your-domain.com/api/v1/health
  ```

---

## 🔒 安全检查

- [ ] 防火墙已启用
  ```bash
  sudo ufw status
  ```

- [ ] 仅开放必要端口（22, 80, 443）

- [ ] `SECRET_KEY` 已修改为强随机值

- [ ] `DEBUG=False` 已设置

- [ ] CORS 配置正确（`ALLOWED_ORIGINS`）

- [ ] 数据库密码强度检查（如使用数据库）

- [ ] 文件权限检查
  ```bash
  # .env 文件应该仅所有者可读
  chmod 600 /var/www/DesignerCEP/Server/.env
  ```

- [ ] 定期更新系统和依赖
  ```bash
  sudo apt update && sudo apt upgrade
  ```

---

## 📊 监控配置（可选）

- [ ] 配置日志轮转
  ```bash
  sudo nano /etc/logrotate.d/designer-cep
  ```

- [ ] 设置系统监控（推荐工具）
  - [ ] Prometheus + Grafana
  - [ ] Zabbix
  - [ ] Datadog

- [ ] 配置错误追踪（推荐）
  - [ ] Sentry
  - [ ] Bugsnag

- [ ] 配置服务告警（推荐）
  - [ ] 邮件告警
  - [ ] 短信告警
  - [ ] 企业微信/钉钉告警

---

## 📝 文档和备份

- [ ] 记录服务器信息
  - 服务器 IP: __________________
  - SSH 用户名: __________________
  - SSH 密钥位置: __________________
  - 域名: __________________

- [ ] 记录部署信息
  - 部署日期: __________________
  - 当前版本: __________________
  - 数据库位置: __________________

- [ ] 设置定期备份
  - [ ] 数据库备份（每天）
  - [ ] 配置文件备份
  - [ ] 用户数据备份

- [ ] 编写故障恢复文档

---

## 🎉 上线后操作

- [ ] 通知用户新版本上线

- [ ] 更新 CEP 插件配置（如需要）
  - 修改 API 地址指向生产环境

- [ ] 监控服务器资源使用情况
  ```bash
  htop
  df -h
  ```

- [ ] 检查错误日志
  ```bash
  sudo journalctl -u designer-cep -f
  sudo tail -f /var/log/nginx/designer-cep-error.log
  ```

- [ ] 第一周密切关注系统运行状况

---

## 🆘 应急预案

### 服务无法访问

1. 检查服务状态
   ```bash
   sudo systemctl status designer-cep
   sudo systemctl status nginx
   ```

2. 查看错误日志
   ```bash
   sudo journalctl -u designer-cep -n 100 --no-pager
   ```

3. 重启服务
   ```bash
   sudo systemctl restart designer-cep
   sudo systemctl restart nginx
   ```

### 回滚到上一版本

1. 切换 Core 版本（修改后端 API 返回的版本号）

2. 或直接替换静态文件
   ```bash
   rm -rf /var/www/DesignerCEP/Server/static/core/1.0.1
   # 恢复旧版本
   ```

3. 重启服务

---

**检查完成日期**: _______________  
**检查人**: _______________  
**备注**: _______________

