29b0634c6d
Rebalance swap to AUTO_TRANSFER_AMOUNT at Beijing hour: top up from funding or sweep excess back. Skip and WeChat notify when active positions exist. Co-authored-by: Cursor <cursoragent@cursor.com>
114 lines
4.0 KiB
Markdown
114 lines
4.0 KiB
Markdown
# 环境一键部署
|
||
|
||
为仓库内各子项目创建 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
|
||
python scripts/sync_four_exchange_transfer_env.py
|
||
# 缺 AUTO_TRANSFER_AMOUNT 时会沿用该文件中的 DAILY_START_CAPITAL
|
||
pm2 restart crypto-monitor-binance crypto-monitor-okx crypto-monitor-gate crypto-monitor-gate-bot
|
||
```
|
||
|
||
## 四所 `.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 中)。
|