Files
xau-ai-trading-bot/DOCKER-INTEGRATION.md
T
buckybonez 82eca84230 feat: apply #28B smart breakeven + #31B H1 EMA20 filter, add backtests #26-#32
Live trading optimizations (cumulative: $2,807 net, 81.8% WR, Sharpe 3.97):
- #28B: Smart breakeven locks profit at entry + 0.5x ATR instead of fixed $2
- #31B: H1 Price vs EMA20 filter — BUY only when H1 bullish, SELL only when bearish

Backtests #26-#32 (7 scripts testing sell improvement, regime-aware entry,
confluence scoring, dynamic RR, multi-TF H1, and ML exit optimizer).
Winners: #28B (+$229), #31B (+$343). Failed: #26, #27, #29, #30, #32.

Also includes: web dashboard redesign, Docker setup, startup scripts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 10:33:24 +07:00

256 lines
6.3 KiB
Markdown

# Dashboard Integration with Existing Docker Setup
## 🎯 Overview
Dashboard dan API telah diintegrasikan ke dalam Docker setup yang **sudah ada**. Database PostgreSQL yang sudah running **TIDAK AKAN DIGANGGU**.
## ✅ Existing Setup (Tidak Berubah)
Yang sudah jalan dan **tetap aman**:
-`trading_bot_db` - PostgreSQL database
-`trading_bot_network` - Docker network
- ✅ Database schema dengan 7 tables (trades, signals, dll)
- ✅ Volume `postgres_data` untuk persistence
## 🆕 New Services Added
Layanan baru yang ditambahkan:
1. **trading-api** - FastAPI backend untuk dashboard
2. **dashboard** - Next.js web interface
3. **pgadmin** - Database management (optional)
## 🚀 Quick Start
### Option 1: Gunakan Helper Script (Recommended)
```cmd
# Tambahkan dashboard ke setup yang sudah ada
docker-add-dashboard.bat
```
Script ini akan:
1. Check database yang sudah running
2. Build API & Dashboard services
3. Start kedua services baru
4. Connect ke database & network yang sudah ada
### Option 2: Manual Docker Compose
```cmd
# Build hanya services baru
docker-compose build trading-api dashboard
# Start hanya services baru
docker-compose up -d trading-api dashboard
```
## 📊 Access Points
Setelah services running:
- **Dashboard:** http://localhost:3000
- **API:** http://localhost:8000
- **API Docs:** http://localhost:8000/docs
- **Database:** localhost:5432 (sudah running)
## 🔧 Service Management
### Check Status
```cmd
# Lihat status semua services
docker-status.bat
# Atau manual
docker-compose ps
```
### View Logs
```cmd
# Logs dashboard
docker-compose logs -f dashboard
# Logs API
docker-compose logs -f trading-api
# Logs database
docker-compose logs -f postgres
```
### Restart Services
```cmd
# Restart hanya dashboard
docker-compose restart dashboard
# Restart hanya API
docker-compose restart trading-api
# Restart semua (termasuk database)
docker-compose restart
```
### Remove Dashboard (Keep Database)
```cmd
# Hapus dashboard tapi tetap keep database
docker-remove-dashboard.bat
# Atau manual
docker-compose stop trading-api dashboard
docker-compose rm -f trading-api dashboard
```
## 🔗 Service Architecture
```
┌─────────────────────────────────────────────┐
│ trading_bot_network │
├─────────────────────────────────────────────┤
│ │
│ 📊 Dashboard (NEW) │
│ Port: 3000 │
│ └─> http://trading-api:8000 │
│ │
│ 🔌 Trading API (NEW) │
│ Port: 8000 │
│ └─> postgres:5432 │
│ │
│ 🗄️ PostgreSQL (EXISTING - NO CHANGE) │
│ Port: 5432 │
│ Status: Already Running │
│ Volume: postgres_data │
│ │
└─────────────────────────────────────────────┘
```
## 📝 Environment Variables
Edit `.env` untuk konfigurasi:
```env
# MT5 (Required for API)
MT5_LOGIN=your_login
MT5_PASSWORD=your_password
MT5_SERVER=your_server
MT5_PATH=C:/Program Files/MetaTrader 5/terminal64.exe
# Trading
SYMBOL=XAUUSD
CAPITAL=10000
# Database (Already configured)
DB_USER=trading_bot
DB_PASSWORD=trading_bot_2026
DB_NAME=trading_db
# Ports
API_PORT=8000
DASHBOARD_PORT=3000
DB_PORT=5432
```
## 🐛 Troubleshooting
### Dashboard tidak bisa connect ke API
**Check API health:**
```cmd
curl http://localhost:8000/api/health
```
**View API logs:**
```cmd
docker-compose logs -f trading-api
```
### API tidak bisa connect ke database
**Check database:**
```cmd
docker exec trading_bot_db pg_isready -U trading_bot
```
**Check network:**
```cmd
docker network inspect trading_bot_network
```
### Port conflict
Edit `.env` untuk ganti port:
```env
API_PORT=8001
DASHBOARD_PORT=3001
```
Then restart:
```cmd
docker-compose down trading-api dashboard
docker-compose up -d trading-api dashboard
```
## 💾 Data Persistence
**Database data tetap aman:**
- Volume `postgres_data` tetap ada
- Hapus container tidak hapus data
- Data tersimpan di Docker volume
**Check volume:**
```cmd
docker volume ls | findstr postgres
docker volume inspect trading_bot_postgres_data
```
## 🔄 Updates
**Update code dan rebuild:**
```cmd
# Pull latest code
git pull
# Rebuild services baru
docker-compose build trading-api dashboard
# Restart
docker-compose up -d trading-api dashboard
```
**Database tidak perlu rebuild** karena schema sudah ada.
## ⚠️ Important Notes
1. **Database tidak boleh dihapus** - Data trades ada di sini
2. **Jangan run `docker-compose down -v`** - Ini akan hapus volumes
3. **Untuk stop semua:** `docker-compose stop` (data aman)
4. **Untuk restart:** `docker-compose restart` atau `docker-compose up -d`
## 📚 Files Structure
```
xaubot-ai/
├── docker-compose.yml # Main orchestration (UPDATED)
├── Dockerfile # API image (NEW)
├── .env # Environment config
├── .dockerignore # Build exclusions
├── docker-add-dashboard.bat # Add dashboard script (NEW)
├── docker-remove-dashboard.bat # Remove dashboard script (NEW)
├── docker-status.bat # Status check script (NEW)
├── docker/
│ └── init-db/
│ └── 01-schema.sql # Database schema (EXISTING)
└── web-dashboard/
├── Dockerfile # Dashboard image (NEW)
└── .dockerignore # Build exclusions
```
## 🎯 Summary
**Database tetap jalan** - Tidak ada perubahan
**Services baru ditambahkan** - API & Dashboard
**Data aman** - Volume persistence
**Easy management** - Helper scripts
**Independent** - Bisa start/stop tanpa ganggu database
---
**Integration completed:** Feb 6, 2026
**Status:** Dashboard integrated with existing Docker setup ✨