-
Notifications
You must be signed in to change notification settings - Fork 262
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
105 lines (98 loc) · 3.54 KB
/
docker-compose.yml
File metadata and controls
105 lines (98 loc) · 3.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
services:
postgres:
image: postgres:14
container_name: hyper-arena-postgres
environment:
POSTGRES_USER: alpha_user
POSTGRES_PASSWORD: alpha_pass
POSTGRES_DB: alpha_arena
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh:ro
ports:
- "127.0.0.1:5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U alpha_user -d alpha_arena"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
app:
build:
context: .
dockerfile: Dockerfile
args:
# Pass through host proxy settings (empty if host has none)
http_proxy: ${http_proxy-}
https_proxy: ${https_proxy-}
HTTP_PROXY: ${HTTP_PROXY-}
HTTPS_PROXY: ${HTTPS_PROXY-}
ALL_PROXY: ${ALL_PROXY-}
container_name: hyper-arena-app
environment:
# Database connection
DATABASE_URL: postgresql://alpha_user:alpha_pass@postgres:5432/alpha_arena
SNAPSHOT_DATABASE_URL: postgresql://alpha_user:alpha_pass@postgres:5432/alpha_snapshots
# Hyperliquid Builder Fee Configuration
HYPERLIQUID_BUILDER_ADDRESS: "0x012E82f81e506b8f0EF69FF719a6AC65822b5924"
HYPERLIQUID_BUILDER_FEE: "30"
# Binance Broker Configuration
BINANCE_BROKER_ID: "tbyPbcd9"
# Factor Engine
FACTOR_ENGINE_ENABLED: "true"
# Hyper Insight login-based integration
HYPER_INSIGHT_API_BASE_URL: ${HYPER_INSIGHT_API_BASE_URL:-https://hyper.akooi.com}
# Explicitly disable all proxy settings in container
HTTP_PROXY: ""
HTTPS_PROXY: ""
http_proxy: ""
https_proxy: ""
ALL_PROXY: ""
NO_PROXY: ""
no_proxy: ""
ports:
- "127.0.0.1:8802:8802"
depends_on:
postgres:
condition: service_healthy
volumes:
# ========== Selective Backend Mounts for Hot Reload ==========
# Mount individual directories and files to enable hot reload while preserving
# the built frontend static files in the container image.
#
# IMPORTANT: Do NOT mount ./backend:/app/backend as it will override the
# /app/backend/static directory that contains the built frontend files,
# causing "Frontend not built yet" errors.
#
# If you add new directories or important Python files under backend/,
# remember to add corresponding volume mounts here to enable hot reload.
# Backend subdirectories
- ./backend/api:/app/backend/api
- ./backend/backtest:/app/backend/backtest
- ./backend/config:/app/backend/config
- ./backend/database:/app/backend/database
- ./backend/factors:/app/backend/factors
- ./backend/program_trader:/app/backend/program_trader
- ./backend/repositories:/app/backend/repositories
- ./backend/routes:/app/backend/routes
- ./backend/schemas:/app/backend/schemas
- ./backend/services:/app/backend/services
- ./backend/utils:/app/backend/utils
# Backend root files (frequently modified during development)
- ./backend/main.py:/app/backend/main.py
- ./backend/models.py:/app/backend/models.py
# DO NOT mount ./backend/static - it must remain from the Docker image build
# ===============================================================
# Mount logs
- ./logs:/app/logs
# Mount data for encryption key persistence
- app_data:/app/data
restart: unless-stopped
volumes:
postgres_data:
driver: local
app_data:
driver: local
networks:
default:
name: hyper-arena-network