# DataOps Platform 发布包 本目录是 **生产一键部署发布包**,包含应用源码、配置模板、运维脚本与部署文档。部署人员无需克隆完整 Git 仓库,上传本目录或打包后的 `tar.gz` 即可部署。 --- ## 目录结构 ```text deployment/ ├── app/ # Flask 应用源码(与仓库 app/ 同步) ├── database/ # PostgreSQL 初始化/迁移 SQL ├── config/ # Nginx / Supervisor 配置模板 │ ├── nginx-dataops-platform.conf │ └── supervisor-dataops-platform.conf ├── scripts/ # 运维脚本(启停、重启、诊断) │ ├── dataops-common.sh # 公共函数 │ ├── deploy_dataops.sh # 已安装后的增量部署(可选) │ ├── run_dataops.sh # Supervisor 启动 Gunicorn │ ├── start_dataops.sh │ ├── stop_dataops.sh │ └── restart_dataops.sh ├── dataops.env # 生产环境变量模板(首次部署复制到 /etc) ├── .env.production.example # 环境变量说明副本 ├── requirements.txt # Python 依赖(固定版本) ├── wsgi.py # Gunicorn WSGI 入口 ├── gunicorn_config.py # Gunicorn 配置(含日志初始化) ├── deploy_dataops.sh # ★ 一键部署入口 ├── sync_release.sh # 开发侧:从仓库同步最新代码到本目录 ├── package_release.sh # 开发侧:打包 tar.gz ├── README.md # 本文件(快速开始) ├── DEPLOYMENT_GUIDE.md # 完整部署与运维手册 ├── CHECKLIST.md # 部署前后检查清单 └── MANIFEST.md # 文件清单与版本说明 ``` --- ## 快速部署(3 步) ### 1. 上传到 Ubuntu 服务器 ```bash # 方式 A:直接上传 deployment/ 目录 scp -r deployment/ ubuntu@your-server:/tmp/dataops-platform # 方式 B:使用打包文件(开发机先执行 package_release.sh) scp dist/dataops-platform-release-*.tar.gz ubuntu@your-server:/tmp/ ssh ubuntu@your-server 'cd /tmp && tar -xzf dataops-platform-release-*.tar.gz' ``` ### 2. 首次部署(生成环境变量文件) ```bash cd /tmp/dataops-platform # 或解压后的 dataops-platform 目录 chmod +x deploy_dataops.sh scripts/*.sh sudo bash deploy_dataops.sh ``` 脚本会安装 `/etc/dataops-platform/dataops.env` 并 **退出**,提示编辑配置。 ### 3. 填写配置后再次部署 ```bash sudo vim /etc/dataops-platform/dataops.env # 必改: SECRET_KEY, DEEPSEEK_API_KEY, N8N_API_KEY # 核对: DATABASE_URL, NEO4J_*, MINIO_*, API_BASE_URL sudo bash deploy_dataops.sh ``` ### 可选:同时配置 Nginx ```bash sudo ENABLE_NGINX=1 \ NGINX_SERVER_NAME=company.citupro.com \ NGINX_LISTEN_PORT=18183 \ bash deploy_dataops.sh ``` SSL 证书路径见 `config/nginx-dataops-platform.conf`,部署后按实际证书修改。 --- ## 部署结果 | 项目 | 默认值 | |------|--------| | 应用目录 | `/opt/dataops-platform` | | 环境变量 | `/etc/dataops-platform/dataops.env` | | 监听地址 | `0.0.0.0:5500`(Gunicorn) | | 进程管理 | Supervisor `dataops-platform` | | 应用日志 | `/opt/dataops-platform/logs/flask_production.log` | | Supervisor 日志 | `/var/log/supervisor/dataops-platform.log` | --- ## 日常运维 ```bash # 健康检查 curl http://127.0.0.1:5500/api/system/health # 启停 sudo /opt/dataops-platform/scripts/start_dataops.sh sudo /opt/dataops-platform/scripts/stop_dataops.sh sudo /opt/dataops-platform/scripts/restart_dataops.sh # 查看日志 tail -f /opt/dataops-platform/logs/flask_production.log tail -f /var/log/supervisor/dataops-platform.log ``` --- ## 开发侧:更新发布包 在仓库根目录执行: ```bash bash deployment/sync_release.sh # 同步 app/、database/、scripts/ 等 bash deployment/package_release.sh # 生成 dist/dataops-platform-release-YYYYMMDD.tar.gz ``` --- ## 详细文档 - [DEPLOYMENT_GUIDE.md](./DEPLOYMENT_GUIDE.md) — 完整部署手册(依赖、配置项、故障排查) - [CHECKLIST.md](./CHECKLIST.md) — 部署检查清单 - [MANIFEST.md](./MANIFEST.md) — 发布包文件说明 --- ## 外部依赖(需提前安装) | 服务 | 说明 | |------|------| | Python 3.8+ | 含 venv、pip | | Supervisor | 进程守护 | | PostgreSQL 14+ | 关系数据库 | | Neo4j 5.x | 图数据库 | | MinIO | 对象存储 | | n8n | 工作流(可选 API) | | Nginx | 反向代理(可选) | | DeepSeek API | LLM 翻译、DDL 解析等 | 脚本会自动安装 `python3-venv`(Ubuntu apt),其余服务需运维提前部署并保证网络可达。