Files
Hydra-Engine/docker-compose.expert.yml
2026-03-30 13:19:11 +09:00

186 lines
4.1 KiB
YAML

version: "3.9"
services:
hydra-core:
build: .
command: uvicorn hydra.main:app --host 127.0.0.1 --port 8000 --workers 2
mem_limit: 8g
cpus: 8
restart: always
ports:
- "127.0.0.1:8000:8000"
environment:
- HYDRA_PROFILE=expert
- REDIS_URL=redis://redis:6379
- DB_URL=postgresql://hydra:${DB_PASSWORD}@timescaledb:5432/hydra
env_file:
- .env
volumes:
- ./config:/app/config
depends_on:
- redis
- timescaledb
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
redis:
image: redis:7-alpine
mem_limit: 4g
restart: always
volumes:
- redis-data:/data
command: redis-server --appendonly yes --maxmemory 3gb --maxmemory-policy allkeys-lru
timescaledb:
image: timescale/timescaledb:latest-pg16
mem_limit: 8g
shm_size: 512m
restart: always
environment:
- POSTGRES_USER=hydra
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=hydra
volumes:
- db-data:/var/lib/postgresql/data
hydra-collector:
build: .
command: python -m hydra.data.collector
mem_limit: 2g
restart: always
env_file:
- .env
environment:
- HYDRA_PROFILE=expert
- REDIS_URL=redis://redis:6379
- DB_URL=postgresql://hydra:${DB_PASSWORD}@timescaledb:5432/hydra
volumes:
- ./config:/app/config
depends_on:
- redis
- timescaledb
hydra-indicator:
build: .
command: python -m hydra.indicator.engine
restart: always
mem_limit: 2g
env_file:
- .env
environment:
- HYDRA_PROFILE=expert
- REDIS_URL=redis://redis:6379
- DB_URL=postgresql://hydra:${DB_PASSWORD}@timescaledb:5432/hydra
volumes:
- ./config:/app/config
depends_on:
- redis
- timescaledb
- hydra-collector
hydra-regime:
build: .
command: python -m hydra.regime.engine
restart: always
mem_limit: 1g
env_file:
- .env
environment:
- HYDRA_PROFILE=expert
- REDIS_URL=redis://redis:6379
- DB_URL=postgresql://hydra:${DB_PASSWORD}@timescaledb:5432/hydra
volumes:
- ./config:/app/config
depends_on:
- redis
- timescaledb
- hydra-indicator
hydra-strategy:
build: .
command: python -m hydra.strategy.engine
restart: always
mem_limit: 1g
env_file:
- .env
environment:
- HYDRA_PROFILE=expert
- REDIS_URL=redis://redis:6379
- DB_URL=postgresql://hydra:${DB_PASSWORD}@timescaledb:5432/hydra
- STRATEGY_DRY_RUN=true
- STRATEGY_TRADE_AMOUNT_USD=100
volumes:
- ./config:/app/config
depends_on:
- redis
- timescaledb
- hydra-regime
hydra-orderbook:
build: .
command: python -m hydra.supplemental.orderbook
restart: always
mem_limit: 128m
env_file:
- .env
environment:
- HYDRA_PROFILE=expert
- REDIS_URL=redis://redis:6379
- DB_URL=postgresql://hydra:${DB_PASSWORD}@timescaledb:5432/hydra
volumes:
- ./config:/app/config
depends_on:
- redis
- timescaledb
- hydra-indicator
hydra-events:
build: .
command: python -m hydra.supplemental.events
restart: always
mem_limit: 128m
env_file:
- .env
environment:
- HYDRA_PROFILE=expert
- REDIS_URL=redis://redis:6379
- COINMARKETCAL_API_KEY=${COINMARKETCAL_API_KEY:-}
volumes:
- ./config:/app/config
depends_on:
- redis
hydra-sentiment:
build: .
command: python -m hydra.supplemental.sentiment
restart: always
mem_limit: 256m
env_file:
- .env
environment:
- HYDRA_PROFILE=expert
- REDIS_URL=redis://redis:6379
- CRYPTOPANIC_API_KEY=${CRYPTOPANIC_API_KEY:-}
volumes:
- ./config:/app/config
depends_on:
- redis
- hydra-indicator
telegram-bot:
build: .
command: python -m hydra.notify.telegram
mem_limit: 512m
restart: always
env_file:
- .env
depends_on:
- hydra-core
volumes:
redis-data:
db-data: