# DataOps Platform 部署检查清单

## 部署前

- [ ] 服务器为 Ubuntu 20.04/22.04，可 sudo
- [ ] Python 3.8+ 已安装（`python3 --version`）
- [ ] Supervisor 已安装并运行（`systemctl status supervisor`）
- [ ] PostgreSQL 可连接（`DATABASE_URL` 测试通过）
- [ ] Neo4j 可连接（Bolt 7687 / HTTP 7474）
- [ ] MinIO 可访问，bucket `dataops-bucket` 已创建
- [ ] MinIO access key / secret key 与 `dataops.env` 一致
- [ ] n8n 可访问，API Key 有效
- [ ] DeepSeek API Key 已申请且有余额
- [ ] 发布包已上传（`deployment/` 或 `dataops-platform-release-*.tar.gz`）
- [ ] `/data/upload`、`/data/archive` 磁盘空间充足

## 首次部署

- [ ] `chmod +x deploy_dataops.sh scripts/*.sh`
- [ ] `sudo bash deploy_dataops.sh`（首次会生成 env 并退出）
- [ ] 编辑 `/etc/dataops-platform/dataops.env`
  - [ ] `SECRET_KEY` 已改为长随机字符串
  - [ ] `DEEPSEEK_API_KEY` 已填入真实密钥
  - [ ] `N8N_API_KEY` 已填入真实密钥
  - [ ] `DATABASE_URL` / `NEO4J_*` / `MINIO_*` 与生产环境一致
  - [ ] `LLM_BASE_URL=https://api.deepseek.com`（无 `/v1` 后缀）
  - [ ] `LLM_MODEL_NAME=deepseek-v4-pro`（或实际使用模型）
  - [ ] `LOG_FILE` 为绝对路径
- [ ] `sudo chown root:ubuntu /etc/dataops-platform/dataops.env`
- [ ] `sudo chmod 640 /etc/dataops-platform/dataops.env`
- [ ] 再次执行 `sudo bash deploy_dataops.sh`

## 部署后验证

- [ ] `supervisorctl status dataops-platform` 为 RUNNING
- [ ] `curl http://127.0.0.1:5500/api/system/health` 返回 200
- [ ] 日志无 ERROR：`tail -50 /opt/dataops-platform/logs/flask_production.log`
- [ ] 日志含 DeepSeek 加载信息（base_url、model）
- [ ] 翻译 API 返回英文标识符：
  ```bash
  curl -X POST http://127.0.0.1:5500/api/system/translate \
    -H "Content-Type: application/json" \
    -d '{"node_name":"测试宁波数据加工"}'
  ```
- [ ] MinIO 上传接口正常（业务域上传测试）
- [ ] DDL 解析接口不 504（若走 Nginx，确认 ddlparse 超时 300s）

## Nginx / HTTPS（可选）

- [ ] `config/nginx-dataops-platform.conf` 证书路径已修改
- [ ] `nginx -t` 通过
- [ ] 公网 `https://company.citupro.com:18183/api/system/health` 可达

## 安全

- [ ] `dataops.env` 权限为 640，属主 root:ubuntu
- [ ] 未将 API Key 提交到 Git
- [ ] 防火墙仅开放必要端口（18183 / 22 等）

## 回滚准备

- [ ] 已备份上一版 `/opt/dataops-platform/app`
- [ ] 已备份 `/etc/dataops-platform/dataops.env`
- [ ] 知晓回滚命令：`sudo supervisorctl stop dataops-platform` + 恢复目录
