drl-trading-bot-dev2 / DEPLOY_LOG.md
DRL Trading Bot
Feature: HTF Agent integration β€” live trading, API endpoints, UI tab
fc115d5
|
Raw
History Blame Contribute Delete
4.73 kB
# Deploy Log β€” HF Dev Space (Chen4700/drl-trading-bot-dev)
**Date:** 2026-03-19
**Goal:** Switch HF Space from Docker (full trading stack) to Streamlit SDK (client-only UI)
---
## What Was Done
### 1. README.md frontmatter updated
Changed from Docker SDK to Streamlit SDK:
```yaml
# Before
sdk: docker
app_port: 7860
# After
sdk: streamlit
sdk_version: 1.42.0
app_file: src/ui/app.py
```
### 2. Created requirements-hf.txt
New lightweight requirements file for HF UI-only deployment:
- `streamlit>=1.42.0`
- `streamlit-lightweight-charts>=0.1.0`
- `pandas`, `numpy`, `requests`, `plotly`
- `python-dotenv`, `pymongo`, `dnspython`, `certifi`
**Why pymongo is needed:** `src/data/storage.py` has a bare `import pymongo` at the top level (not guarded). The app falls back to `JsonFileStorage` if `STORAGE_TYPE` is not set to `mongo`, but the import must succeed.
### 3. Created `hf-deploy` branch
- `main` stays untouched (full requirements for local dev)
- `hf-deploy` branch replaces `requirements.txt` with lightweight HF version
- Force-pushed `hf-deploy β†’ main` on `huggingface` remote
### 4. Build Result
- Build completed in ~21 seconds (pip install phase)
- All 11 lightweight deps installed cleanly
- No errors in build log
### 5. Runtime Result
- Stage: **RUNNING**
- SDK: **streamlit** (confirmed via HF API)
- Streamlit startup confirmed: "You can now view your Streamlit app in your browser."
---
## API Tunnel Status
**Tunnel URL:** `https://advertise-refined-doom-bicycle.trycloudflare.com`
**Test:** `curl -s .../api/ping`
**Result:** `{"ok":true,"timestamp":"2026-03-19T13:21:45.580803"}` βœ“
The HF Space needs `API_SERVER_URL` set to this tunnel URL as a HF Space variable.
**Check:** Go to the dev space Settings β†’ Variables and verify `API_SERVER_URL = https://advertise-refined-doom-bicycle.trycloudflare.com`
---
## Known Issues / Notes
1. **Cloudflare Tunnel is ephemeral** β€” The tunnel URL changes every time `cloudflared tunnel` is restarted. When that happens, update `API_SERVER_URL` in the HF Space variables.
2. **storage.py import** β€” `import pymongo` is at module level in `src/data/storage.py`. Must be in requirements. If the space should truly be API-only with no local storage, this import can be guarded later.
3. **LFS files** β€” The HF space still contains model `.zip`/`.pkl` files (883 MB via Git LFS). These aren't needed for a client-only space. To save space, consider adding them to `.gitattributes` as not-LFS on the deploy branch, or using `.hfignore`.
4. **Production space** β€” NOT touched. Only `Chen4700/drl-trading-bot-dev` was modified.
---
## Git State
- Branch `hf-deploy` pushed to `huggingface` remote as `main` (force push)
- `origin` (GitHub) `main` branch unchanged
- Commit: `3857657` β€” "Deploy: Switch HF Space to Streamlit SDK (client-only)"
---
# Session 2 β€” 2026-03-19
**Goal:** Fix testnet `/api/testnet/status` hang + push to HF dev space
## Fixes Applied
### 1. BinanceConnector timeout (`src/api/binance.py`)
- Added `'timeout': 10000` (10s) to ccxt config β€” prevents indefinite hangs on slow/blocked proxy
- Added `'fetchMarkets': False` and `'loadMarketsAlways': False` β€” disables ccxt's lazy market-loading which could block on testnet's limited exchange info
### 2. Load dotenv in API server (`src/ui/api_server.py`)
- Added `load_dotenv()` at module startup β€” ensures `.env` vars (incl. `BINANCE_TESTNET_PROXY_URL`) are available for local dev
### 3. Testnet symbol whitelist (`src/ui/api_server.py`)
- Binance spot testnet only supports ~10 pairs (BTC, ETH, BNB, LTC, TRX, XRP, SOL, ADA, DOGE vs USDT)
- When iterating wallet balances, skip ticker fetch for currencies not in this whitelist
- Fixes "binance Invalid symbol" errors that accumulated and made the endpoint appear to hang
## Build Result
- Build logs: CACHED (all deps unchanged, only app files copied) β€” completed in ~7s
- Streamlit confirmed running: "You can now view your Streamlit app in your browser."
- Commit: `75e6612`
## Verification Results
- **HF Space stage:** PAUSED β€” flagged as abusive by HF moderation (not a code issue)
- Space must be manually unpaused at huggingface.co/spaces/Chen4700/drl-trading-bot-dev
- **Cloudflare tunnel:** DOWN (error 1033) β€” `cloudflared` is not running locally
- Restart tunnel: `cloudflared tunnel --url http://localhost:5001`
- Update `API_SERVER_URL` HF Space variable after restart
- **Integration tests:** **22/22 PASSED** (71s) β€” all endpoints, testnet structure, app.py API migration verified
## Git State
- Branch `hf-deploy` (commit `75e6612`) force-pushed to `huggingface` remote as `main`
- `origin` (GitHub) `main` branch unchanged β€” fixes remain on `hf-deploy` only