Files
crypto_monitor/deploy/README.md
T
dekun e6e79215fc chore: add unified four-exchange env sync scripts
sync_four_exchange_env runs position sizing + transfer sync; transfer script preserves existing values and supports --set-amount/--enable-auto-transfer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 09:59:33 +08:00

118 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 环境一键部署
为仓库内各子项目创建 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 时)
`AUTO_TRANSFER_AMOUNT` 等为交易账户目标余额(北京时间 8 点自动划入/划出,**持仓中不划转**并微信通知),与 `DAILY_START_CAPITAL` **独立**。若服务器上已有 `.env`,可合并写入(不覆盖 API 密钥):
```bash
# 计仓 + 划转一次同步(缺项补全,不覆盖已有 API 与自定义值)
python scripts/sync_four_exchange_env.py
# 或仅划转:缺 AUTO_TRANSFER_AMOUNT 时默认 50(否则沿用已有 / DAILY_START_CAPITAL
python scripts/sync_four_exchange_transfer_env.py --set-amount 50 --enable-auto-transfer
pm2 restart crypto-monitor-binance crypto-monitor-okx crypto-monitor-gate crypto-monitor-gate-bot
```
详见 [docs/auto-transfer-daily.md](../docs/auto-transfer-daily.md)。
## 四所 `.env` 计仓模式项(已有 .env 时)
`POSITION_SIZING_MODE` / `FULL_MARGIN_BUFFER_RATIO` 仅能通过 env 切换;切换模式前须**无持仓**:
```bash
python scripts/sync_four_exchange_position_sizing_env.py
# 无仓后切全仓:python scripts/sync_four_exchange_position_sizing_env.py --set-mode full_margin
pm2 restart crypto-monitor-binance crypto-monitor-okx crypto-monitor-gate crypto-monitor-gate-bot
```
详见 [docs/position-sizing-mode.md](../docs/position-sizing-mode.md)。
## 依赖说明
- 四个监控子项目共用仓库根目录 **[requirements.txt](../requirements.txt)**。
- 走 SOCKS 代理时必须安装 **PySocks**(已包含在 requirements 中)。