trading-platform/docker-compose.yml
rckrdmrd a7cca885f0 feat: Major platform documentation and architecture updates
Changes include:
- Updated architecture documentation
- Enhanced module definitions (OQI-001 to OQI-008)
- ML integration documentation updates
- Trading strategies documentation
- Orchestration and inventory updates
- Docker configuration updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:33:35 -06:00

267 lines
8.0 KiB
YAML

version: '3.8'
# =============================================================================
# ORBIQUANT IA TRADING PLATFORM - Docker Compose Configuration
# =============================================================================
# Este archivo define todos los servicios del proyecto para desarrollo
# Fecha: 2025-12-05
# =============================================================================
services:
# ===========================================================================
# INFRASTRUCTURE SERVICES
# ===========================================================================
postgres:
image: postgres:16-alpine
container_name: orbiquantia-postgres
restart: unless-stopped
environment:
POSTGRES_DB: orbiquantia_platform
POSTGRES_USER: orbiquantia
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-orbiquantia_dev_2025}
POSTGRES_INITDB_ARGS: "-E UTF8"
ports:
- "${POSTGRES_PORT:-5433}:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./apps/database/schemas:/docker-entrypoint-initdb.d:ro
networks:
- orbiquant-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U orbiquantia -d orbiquantia_platform"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: orbiquant-redis
restart: unless-stopped
command: redis-server --appendonly yes
ports:
- "${REDIS_PORT:-6379}:6379"
volumes:
- redis_data:/data
networks:
- orbiquant-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
# ===========================================================================
# BACKEND SERVICES
# ===========================================================================
backend:
build:
context: ./apps/backend
dockerfile: Dockerfile
container_name: orbiquant-backend
restart: unless-stopped
environment:
NODE_ENV: ${NODE_ENV:-development}
PORT: ${BACKEND_API_PORT:-3081}
DB_HOST: postgres
DB_PORT: 5432
DB_NAME: orbiquantia_platform
DB_USER: orbiquantia
DB_PASSWORD: ${POSTGRES_PASSWORD:-orbiquantia_dev_2025}
REDIS_HOST: redis
REDIS_PORT: 6379
ML_ENGINE_URL: http://ml-engine:3083
FRONTEND_URL: http://localhost:${FRONTEND_WEB_PORT:-3080}
JWT_ACCESS_SECRET: ${JWT_ACCESS_SECRET}
JWT_REFRESH_SECRET: ${JWT_REFRESH_SECRET}
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY}
ports:
- "${BACKEND_API_PORT:-3081}:3081"
- "${BACKEND_WS_PORT:-3082}:3082"
volumes:
- ./apps/backend/src:/app/src
- backend_node_modules:/app/node_modules
networks:
- orbiquant-network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
command: npm run dev
# ===========================================================================
# FRONTEND SERVICES
# ===========================================================================
frontend:
build:
context: ./apps/frontend
dockerfile: Dockerfile
container_name: orbiquant-frontend
restart: unless-stopped
environment:
VITE_API_URL: http://localhost:${BACKEND_API_PORT:-3081}/api/v1
VITE_WS_URL: ws://localhost:${BACKEND_WS_PORT:-3082}
VITE_STRIPE_PUBLISHABLE_KEY: ${STRIPE_PUBLISHABLE_KEY}
ports:
- "${FRONTEND_WEB_PORT:-3080}:3080"
volumes:
- ./apps/frontend/src:/app/src
- ./apps/frontend/public:/app/public
- frontend_node_modules:/app/node_modules
networks:
- orbiquant-network
depends_on:
- backend
command: npm run dev -- --host 0.0.0.0 --port 3080
# ===========================================================================
# PYTHON SERVICES
# ===========================================================================
ml-engine:
build:
context: ./apps/ml-engine
dockerfile: Dockerfile
container_name: orbiquant-ml-engine
restart: unless-stopped
environment:
PYTHONUNBUFFERED: 1
DB_HOST: postgres
DB_PORT: 5432
DB_NAME: orbiquantia_platform
DB_USER: orbiquantia
DB_PASSWORD: ${POSTGRES_PASSWORD:-orbiquantia_dev_2025}
REDIS_HOST: redis
REDIS_PORT: 6379
PORT: ${ML_ENGINE_PORT:-3083}
LOG_LEVEL: INFO
ports:
- "${ML_ENGINE_PORT:-3083}:3083"
volumes:
- ./apps/ml-engine/src:/app/src
- ./apps/ml-engine/models:/app/models
- ml_models:/app/trained_models
networks:
- orbiquant-network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
command: uvicorn src.api.main:app --host 0.0.0.0 --port 3083 --reload
data-service:
build:
context: ./apps/data-service
dockerfile: Dockerfile
container_name: orbiquant-data-service
restart: unless-stopped
environment:
PYTHONUNBUFFERED: 1
DB_HOST: postgres
DB_PORT: 5432
DB_NAME: orbiquantia_platform
DB_USER: orbiquantia
DB_PASSWORD: ${POSTGRES_PASSWORD:-orbiquantia_dev_2025}
POLYGON_API_KEY: ${POLYGON_API_KEY}
METAAPI_TOKEN: ${METAAPI_TOKEN}
METAAPI_ACCOUNT_ID: ${METAAPI_ACCOUNT_ID}
SYNC_INTERVAL_MINUTES: 5
LOG_LEVEL: INFO
PORT: ${DATA_SERVICE_PORT:-3084}
ports:
- "${DATA_SERVICE_PORT:-3084}:3084"
volumes:
- ./apps/data-service/src:/app/src
networks:
- orbiquant-network
depends_on:
postgres:
condition: service_healthy
command: python -m src.main
# ===========================================================================
# DEVELOPMENT TOOLS (Optional)
# ===========================================================================
pgadmin:
image: dpage/pgadmin4:latest
container_name: orbiquant-pgadmin
restart: unless-stopped
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_EMAIL:-admin@orbiquant.io}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD:-admin}
PGADMIN_CONFIG_SERVER_MODE: 'False'
ports:
- "${PGADMIN_PORT:-5050}:80"
volumes:
- pgadmin_data:/var/lib/pgadmin
networks:
- orbiquant-network
depends_on:
- postgres
profiles:
- dev-tools
mailhog:
image: mailhog/mailhog:latest
container_name: orbiquant-mailhog
restart: unless-stopped
ports:
- "${MAILHOG_SMTP_PORT:-1025}:1025" # SMTP
- "${MAILHOG_WEB_PORT:-8025}:8025" # Web UI
networks:
- orbiquant-network
profiles:
- dev-tools
# =============================================================================
# VOLUMES
# =============================================================================
volumes:
postgres_data:
driver: local
redis_data:
driver: local
backend_node_modules:
driver: local
frontend_node_modules:
driver: local
ml_models:
driver: local
pgadmin_data:
driver: local
# =============================================================================
# NETWORKS
# =============================================================================
networks:
orbiquant-network:
driver: bridge
name: orbiquant-network
# =============================================================================
# USAGE INSTRUCTIONS
# =============================================================================
# Start all services:
# docker-compose up -d
#
# Start with development tools:
# docker-compose --profile dev-tools up -d
#
# View logs:
# docker-compose logs -f [service-name]
#
# Stop all services:
# docker-compose down
#
# Reset everything (including volumes):
# docker-compose down -v
#
# Rebuild a service:
# docker-compose up -d --build [service-name]
# =============================================================================