- Move 7 non-standard folders to _archive/ - Create 5 missing obligatory files - Update _MAP.md with standardized structure Standard: SIMCO-ESTANDAR-ORCHESTRATION v1.0.0 Level: CONSUMER (L2) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
416 lines
11 KiB
YAML
416 lines
11 KiB
YAML
# =============================================================================
|
|
# ENVIRONMENT-INVENTORY.yml - TRADING-PLATFORM
|
|
# =============================================================================
|
|
# Inventario de Entorno de Desarrollo
|
|
# Generado por: @PERFIL_DEVENV
|
|
# Basado en: orchestration/templates/TEMPLATE-ENVIRONMENT-INVENTORY.yml
|
|
# =============================================================================
|
|
|
|
version: "1.0.0"
|
|
fecha_creacion: "2026-01-04"
|
|
fecha_actualizacion: "2026-01-04"
|
|
responsable: "@PERFIL_DEVENV"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# IDENTIFICACION DEL PROYECTO
|
|
# -----------------------------------------------------------------------------
|
|
|
|
proyecto:
|
|
nombre: "Trading Platform"
|
|
alias: "trading"
|
|
nivel: "NIVEL_2A"
|
|
tipo: "standalone"
|
|
estado: "desarrollo"
|
|
descripcion: "Plataforma de trading algoritmico con ML"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# HERRAMIENTAS Y RUNTIME
|
|
# -----------------------------------------------------------------------------
|
|
|
|
herramientas:
|
|
runtime:
|
|
node:
|
|
version: "20.x"
|
|
requerido: true
|
|
notas: "Para backend NestJS y frontend React"
|
|
python:
|
|
version: "3.11"
|
|
requerido: true
|
|
notas: "Para servicios ML y trading agents"
|
|
|
|
package_managers:
|
|
npm:
|
|
version: "10.x"
|
|
requerido: true
|
|
pip:
|
|
version: "23.x"
|
|
requerido: true
|
|
poetry:
|
|
version: "1.7.x"
|
|
requerido: false
|
|
notas: "Opcional para servicios Python"
|
|
|
|
build_tools:
|
|
- nombre: "Vite"
|
|
version: "5.x"
|
|
uso: "Frontend build"
|
|
- nombre: "TypeScript"
|
|
version: "5.x"
|
|
uso: "Compilacion TS"
|
|
- nombre: "NestJS CLI"
|
|
version: "10.x"
|
|
uso: "Backend build"
|
|
|
|
linters:
|
|
- nombre: "ESLint"
|
|
version: "8.x"
|
|
config: ".eslintrc.js"
|
|
- nombre: "Prettier"
|
|
version: "3.x"
|
|
config: ".prettierrc"
|
|
- nombre: "Ruff"
|
|
version: "0.1.x"
|
|
config: "pyproject.toml"
|
|
uso: "Python linting"
|
|
|
|
testing:
|
|
- nombre: "Jest"
|
|
version: "29.x"
|
|
tipo: "unit backend"
|
|
config: "jest.config.js"
|
|
- nombre: "Vitest"
|
|
version: "1.x"
|
|
tipo: "unit frontend"
|
|
config: "vitest.config.ts"
|
|
- nombre: "Pytest"
|
|
version: "7.x"
|
|
tipo: "unit python"
|
|
config: "pytest.ini"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# SERVICIOS Y PUERTOS
|
|
# -----------------------------------------------------------------------------
|
|
|
|
servicios:
|
|
frontend:
|
|
nombre: "trading-frontend"
|
|
framework: "React"
|
|
version: "18.x"
|
|
puerto: 3080
|
|
comando_dev: "npm run dev"
|
|
ubicacion: "apps/frontend/"
|
|
url_local: "http://localhost:3080"
|
|
|
|
backend:
|
|
nombre: "trading-backend"
|
|
framework: "NestJS"
|
|
version: "10.x"
|
|
puerto: 3081
|
|
comando_dev: "npm run start:dev"
|
|
ubicacion: "apps/backend/"
|
|
url_local: "http://localhost:3081"
|
|
api_prefix: "/api/v1"
|
|
|
|
websocket:
|
|
nombre: "trading-websocket"
|
|
puerto: 3082
|
|
uso: "Real-time market data"
|
|
|
|
ml_engine:
|
|
nombre: "ml-engine"
|
|
framework: "FastAPI"
|
|
puerto: 3083
|
|
comando_dev: "uvicorn main:app --reload --port 3083"
|
|
ubicacion: "apps/ml-engine/"
|
|
url_local: "http://localhost:3083"
|
|
|
|
data_service:
|
|
nombre: "data-service"
|
|
framework: "FastAPI"
|
|
puerto: 3084
|
|
comando_dev: "uvicorn main:app --reload --port 3084"
|
|
ubicacion: "apps/data-service/"
|
|
url_local: "http://localhost:3084"
|
|
|
|
llm_agent:
|
|
nombre: "llm-agent"
|
|
framework: "FastAPI"
|
|
puerto: 3085
|
|
comando_dev: "uvicorn main:app --reload --port 3085"
|
|
ubicacion: "apps/llm-agent/"
|
|
url_local: "http://localhost:3085"
|
|
|
|
trading_agents:
|
|
nombre: "trading-agents"
|
|
framework: "FastAPI"
|
|
puerto: 3086
|
|
comando_dev: "uvicorn main:app --reload --port 3086"
|
|
ubicacion: "apps/trading-agents/"
|
|
url_local: "http://localhost:3086"
|
|
|
|
ollama_webui:
|
|
nombre: "ollama-webui"
|
|
puerto: 3087
|
|
url_local: "http://localhost:3087"
|
|
|
|
ollama:
|
|
nombre: "ollama"
|
|
puerto: 11434
|
|
url_local: "http://localhost:11434"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# BASE DE DATOS
|
|
# -----------------------------------------------------------------------------
|
|
|
|
base_de_datos:
|
|
principal:
|
|
engine: "PostgreSQL"
|
|
version: "15"
|
|
host: "localhost"
|
|
puerto: 5432
|
|
|
|
ambientes:
|
|
development:
|
|
nombre: "trading_platform"
|
|
usuario: "trading_user"
|
|
password_ref: "DB_PASSWORD en .env"
|
|
|
|
test:
|
|
nombre: "trading_test"
|
|
usuario: "trading_user"
|
|
password_ref: "DB_PASSWORD en .env"
|
|
|
|
schemas:
|
|
- nombre: "public"
|
|
descripcion: "Schema principal"
|
|
- nombre: "trading"
|
|
descripcion: "Trading data y estrategias"
|
|
- nombre: "analytics"
|
|
descripcion: "Analisis y reportes"
|
|
|
|
conexion_ejemplo: "postgresql://trading_user:{password}@localhost:5432/trading_platform"
|
|
|
|
secundaria:
|
|
nombre: "trading_trading"
|
|
uso: "data-service historical data"
|
|
usuario: "trading_user"
|
|
puerto: 5432
|
|
|
|
redis:
|
|
host: "localhost"
|
|
puerto: 6379
|
|
uso: "cache, sessions, real-time data"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# VARIABLES DE ENTORNO
|
|
# -----------------------------------------------------------------------------
|
|
|
|
variables_entorno:
|
|
archivo_ejemplo: "apps/backend/.env.example"
|
|
|
|
variables:
|
|
- nombre: "NODE_ENV"
|
|
descripcion: "Ambiente de ejecucion"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "development"
|
|
|
|
- nombre: "PORT"
|
|
descripcion: "Puerto del servidor backend"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "3081"
|
|
|
|
- nombre: "DATABASE_URL"
|
|
descripcion: "Connection string de PostgreSQL"
|
|
requerido: true
|
|
sensible: true
|
|
ejemplo: "postgresql://trading_user:password@localhost:5432/trading_platform"
|
|
|
|
- nombre: "REDIS_URL"
|
|
descripcion: "Connection string de Redis"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "redis://localhost:6379"
|
|
|
|
- nombre: "JWT_SECRET"
|
|
descripcion: "Secreto para JWT"
|
|
requerido: true
|
|
sensible: true
|
|
ejemplo: ""
|
|
|
|
- nombre: "OLLAMA_HOST"
|
|
descripcion: "Host de Ollama para LLM"
|
|
requerido: false
|
|
sensible: false
|
|
ejemplo: "http://localhost:11434"
|
|
|
|
- nombre: "FRONTEND_URL"
|
|
descripcion: "URL del frontend"
|
|
requerido: true
|
|
sensible: false
|
|
ejemplo: "http://localhost:3080"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# CONTENEDORES DOCKER
|
|
# -----------------------------------------------------------------------------
|
|
|
|
docker:
|
|
compose_file: "docker-compose.yml"
|
|
|
|
services:
|
|
- nombre: "db"
|
|
imagen: "postgres:15-alpine"
|
|
puerto_host: 5432
|
|
puerto_container: 5432
|
|
volumes:
|
|
- "postgres_data:/var/lib/postgresql/data"
|
|
|
|
- nombre: "redis"
|
|
imagen: "redis:7-alpine"
|
|
puerto_host: 6379
|
|
puerto_container: 6379
|
|
|
|
- nombre: "ollama"
|
|
imagen: "ollama/ollama"
|
|
puerto_host: 11434
|
|
puerto_container: 11434
|
|
volumes:
|
|
- "ollama_data:/root/.ollama"
|
|
|
|
volumes:
|
|
- nombre: "postgres_data"
|
|
descripcion: "Datos de PostgreSQL"
|
|
- nombre: "ollama_data"
|
|
descripcion: "Modelos de Ollama"
|
|
|
|
networks:
|
|
- nombre: "trading_network"
|
|
driver: "bridge"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# SCRIPTS DE DESARROLLO
|
|
# -----------------------------------------------------------------------------
|
|
|
|
scripts:
|
|
setup:
|
|
descripcion: "Configurar entorno desde cero"
|
|
pasos:
|
|
- "npm install"
|
|
- "pip install -r requirements.txt"
|
|
- "cp .env.example .env"
|
|
- "docker-compose up -d db redis"
|
|
- "npm run migration:run"
|
|
|
|
desarrollo:
|
|
frontend: "cd apps/frontend && npm run dev"
|
|
backend: "cd apps/backend && npm run start:dev"
|
|
ml_engine: "cd apps/ml-engine && uvicorn main:app --reload --port 3083"
|
|
all_python: "./scripts/start-python-services.sh"
|
|
|
|
testing:
|
|
unit_ts: "npm run test"
|
|
unit_python: "pytest"
|
|
e2e: "npm run test:e2e"
|
|
|
|
build:
|
|
frontend: "cd apps/frontend && npm run build"
|
|
backend: "cd apps/backend && npm run build"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# INSTRUCCIONES DE SETUP
|
|
# -----------------------------------------------------------------------------
|
|
|
|
setup_instrucciones: |
|
|
## Setup del Entorno de Desarrollo - Trading Platform
|
|
|
|
### Prerequisitos
|
|
- Node.js 20.x
|
|
- Python 3.11
|
|
- PostgreSQL 15 (o Docker)
|
|
- Redis 7 (o Docker)
|
|
- npm 10.x, pip
|
|
|
|
### Pasos
|
|
|
|
1. Clonar repositorio:
|
|
```bash
|
|
git clone <url_repo>
|
|
cd trading-platform
|
|
```
|
|
|
|
2. Instalar dependencias Node:
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
3. Instalar dependencias Python:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
4. Configurar variables de entorno:
|
|
```bash
|
|
cp .env.example .env
|
|
# Editar .env con valores locales
|
|
```
|
|
|
|
5. Levantar servicios Docker:
|
|
```bash
|
|
docker-compose up -d db redis ollama
|
|
```
|
|
|
|
6. Ejecutar migraciones:
|
|
```bash
|
|
npm run migration:run
|
|
```
|
|
|
|
7. Iniciar desarrollo:
|
|
```bash
|
|
# Terminal 1 - Backend
|
|
cd apps/backend && npm run start:dev
|
|
|
|
# Terminal 2 - Frontend
|
|
cd apps/frontend && npm run dev
|
|
|
|
# Terminal 3 - ML Engine
|
|
cd apps/ml-engine && uvicorn main:app --reload --port 3083
|
|
```
|
|
|
|
### Verificar
|
|
- Frontend: http://localhost:3080
|
|
- Backend: http://localhost:3081/api/v1
|
|
- ML Engine: http://localhost:3083/docs
|
|
- WebSocket: ws://localhost:3082
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# TROUBLESHOOTING
|
|
# -----------------------------------------------------------------------------
|
|
|
|
troubleshooting:
|
|
- problema: "Puertos en rango 3080-3087 en uso"
|
|
solucion: "Verificar con lsof -i :308X. Terminar proceso conflictivo"
|
|
|
|
- problema: "Error de conexion a BD"
|
|
solucion: "Verificar que PostgreSQL esta corriendo. Revisar credenciales en .env"
|
|
|
|
- problema: "Ollama no responde"
|
|
solucion: "docker-compose logs ollama. Verificar que el modelo esta descargado"
|
|
|
|
- problema: "Servicios Python fallan"
|
|
solucion: "Verificar version Python 3.11. pip install -r requirements.txt"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# REFERENCIAS
|
|
# -----------------------------------------------------------------------------
|
|
|
|
referencias:
|
|
perfil_devenv: "orchestration/agents/perfiles/PERFIL-DEVENV.md"
|
|
inventario_master: "orchestration/inventarios/DEVENV-MASTER-INVENTORY.yml"
|
|
inventario_puertos: "orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml"
|
|
contexto_proyecto: "orchestration/00-guidelines/CONTEXTO-PROYECTO.md"
|
|
|
|
# =============================================================================
|
|
# FIN DE INVENTARIO
|
|
# =============================================================================
|