# 环境一键部署 为仓库内各子项目创建 Python 虚拟环境、安装依赖、初始化 `.env` 与静态目录。 ## Windows(推荐) 双击仓库根目录 **`一键部署.bat`**,或在 PowerShell 中: ```powershell cd C:\path\to\crypto_monitor .\deploy\setup_env.ps1 ``` 仅部署部分项目: ```powershell .\deploy\setup_env.ps1 -Only binance,gate_bot ``` 重建虚拟环境: ```powershell .\deploy\setup_env.ps1 -RecreateVenv ``` 跳过 PM2、跳过复制 `.env`: ```powershell .\deploy\setup_env.ps1 -SkipPm2 -SkipEnvCopy ``` ## Linux / macOS **Ubuntu / Debian 首次部署**(若 `python -m venv` 报 `ensurepip is not available`): ```bash apt update apt install -y python3.10-venv python3-pip curl # 版本号与 python3 --version 一致 bash deploy/setup_env.sh ``` 脚本在 **root** 下会自动尝试 `apt install python*-venv`;非 root 请先装系统包或使用: ```bash sudo bash deploy/setup_env.sh --install-system-deps ``` ```bash cd /opt/crypto_monitor bash deploy/setup_env.sh bash deploy/setup_env.sh --only binance,gate bash deploy/setup_env.sh --recreate-venv ``` 若在 Windows 编辑过脚本后在 Linux 报错 `set: pipefail: invalid option name`,先去掉 CRLF 再执行: ```bash sed -i 's/\r$//' deploy/setup_env.sh # 或: apt install -y dos2unix && dos2unix deploy/setup_env.sh bash deploy/setup_env.sh ``` ## 脚本会做什么 | 步骤 | 说明 | |------|------| | 检查 Python | 需要 **3.10+** | | `crypto_monitor_*` | 各目录 `.venv` + `pip install -r ../requirements.txt` | | `manual_trading_hub` | 独立 `requirements.txt` | | `.env` | 若不存在则从 `.env.example` 复制(**不覆盖**已有) | | 目录 | 创建 `static/images`、`static/images/order_charts` | | PM2 | 若已装 Node.js 且未 `-SkipPm2`,尝试 `npm install -g pm2` | ## 部署之后 1. 编辑各子目录 **`.env`**(API、登录密码、SOCKS 代理、**AI 复盘** 等)。AI 默认走 OpenAI 兼容网关 `https://op.bz121.com/v1`(`AI_PROVIDER=openai`,`OPENAI_API_KEY` 等),详见根目录 [AI复盘与模型配置说明.md](../AI复盘与模型配置说明.md)。 2. 本地试运行(以 Binance 为例): ```bash cd crypto_monitor_binance source .venv/bin/activate # Windows: .\.venv\Scripts\activate python app.py ``` 3. 服务器长期运行见各目录 **《部署文档.md》**(SSH SOCKS、PM2)。 4. **多账户中控**(`manual_trading_hub`):编辑 `manual_trading_hub/.env`(`HUB_PASSWORD`、`HUB_BRIDGE_TOKEN` 等与四实例一致),再 `pm2 start ecosystem.config.cjs`;验收 `bash manual_trading_hub/scripts/verify_hub_deploy.sh`。详见 [manual_trading_hub/部署文档.md](../manual_trading_hub/部署文档.md)、[常见问题.md](../manual_trading_hub/常见问题.md)。 ## 四所 `.env` 同步脚本(已有 .env 时) 在仓库根目录用 Python 脚本**补全或更新**四所 `crypto_monitor_*` 下的 `.env`(不覆盖 API 密钥;无 `.env` 的目录会跳过)。 ```bash cd /path/to/crypto_monitor git pull # 推荐:计仓 + 自动划转 一次补全 python scripts/sync_four_exchange_env.py # 预览 python scripts/sync_four_exchange_env.py --dry-run # 常见:划转目标 50U 并开启 + 计仓补全 python scripts/sync_four_exchange_env.py --set-transfer-amount 50 --enable-auto-transfer # 无仓后切全仓杠杆 python scripts/sync_four_exchange_env.py --set-mode full_margin pm2 restart crypto-monitor-binance crypto-monitor-okx crypto-monitor-gate crypto-monitor-gate-bot ``` | 脚本 | 作用 | |------|------| | `scripts/sync_four_exchange_env.py` | 一键:计仓 + 划转 | | `scripts/sync_four_exchange_transfer_env.py` | 仅自动划转 | | `scripts/sync_four_exchange_position_sizing_env.py` | 仅计仓模式 | **完整参数、缺项默认值与示例**见 **[docs/env-sync-scripts.md](../docs/env-sync-scripts.md)**。 功能说明:[计仓模式](../docs/position-sizing-mode.md)、[每日自动划转](../docs/auto-transfer-daily.md)。 ## 依赖说明 - 四个监控子项目共用仓库根目录 **[requirements.txt](../requirements.txt)**。 - 走 SOCKS 代理时必须安装 **PySocks**(已包含在 requirements 中)。