Files
crypto_trading/docker-compose.local.yml
T
matitos 7b97f010c9 Self-heal a stale cached bundle via a build version
Phones kept running old JS because their cached index.html pointed at an old
hashed asset. Both images now bake the commit SHA as BUILD_VERSION; the backend
exposes it at GET /api/version and the client reloads once with a cache-busting
query when its own baked version differs. Guarded by sessionStorage so it cannot
loop. /api/version is unauthenticated like /api/health.
2026-09-21 00:16:43 +00:00

56 lines
1.8 KiB
YAML

# Local / self-contained stack: no Traefik, publishes ports directly.
# Usage: docker compose -f docker-compose.local.yml up --build
# Dashboard: http://localhost:8080 API docs: http://localhost:8000/docs
name: crypto_trading_local
services:
backend:
build:
context: ./backend
args:
BUILD_VERSION: ${BUILD_VERSION:-unknown}
container_name: crypto-trading-backend-local
restart: unless-stopped
environment:
- MODE=${MODE:-paper}
- EXCHANGE=${EXCHANGE:-binance}
- SYMBOL=${SYMBOL:-BTC/USDT}
- TIMEFRAME=${TIMEFRAME:-5m}
- POLL_INTERVAL=${POLL_INTERVAL:-5}
- STARTING_BALANCE=${STARTING_BALANCE:-10000}
- FEE_BPS=${FEE_BPS:-10}
- SLIPPAGE_BPS=${SLIPPAGE_BPS:-5}
- DATABASE_URL=sqlite:////data/trader.db
- CORS_ORIGINS=*
- EXCHANGE_API_KEY=${EXCHANGE_API_KEY:-}
- EXCHANGE_API_SECRET=${EXCHANGE_API_SECRET:-}
- EXCHANGE_SANDBOX=${EXCHANGE_SANDBOX:-false}
- MAX_DAILY_LOSS=${MAX_DAILY_LOSS:-0}
- MAX_DRAWDOWN_PCT=${MAX_DRAWDOWN_PCT:-0}
- MAX_POSITION_PCT=${MAX_POSITION_PCT:-1.0}
- MAX_TRADES_PER_DAY=${MAX_TRADES_PER_DAY:-0}
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
- TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-}
- NOTIFY_WEBHOOK_URL=${NOTIFY_WEBHOOK_URL:-}
- API_TOKEN=${API_TOKEN:-}
- API_TOKEN_HEADER=${API_TOKEN_HEADER:-X-API-Token}
volumes:
- ./data:/data
ports:
- "8000:8000"
frontend:
build:
context: ./frontend
args:
BUILD_VERSION: ${BUILD_VERSION:-unknown}
container_name: crypto-trader-frontend-local
restart: unless-stopped
depends_on:
- backend
environment:
- API_TOKEN=${API_TOKEN:-}
- API_TOKEN_HEADER=${API_TOKEN_HEADER:-X-API-Token}
ports:
- "8080:80"