# DEVENV-PORT-STANDARDS **Version:** 2.1.0 **Fecha:** 2025-12-08 **Mantenedor:** DevEnv Agent --- ## DIRECTIVA OBLIGATORIA > **TODOS los agentes DEBEN consultar al agente DevEnv antes de asignar puertos.** > > El inventario centralizado esta en: `@DEVENV_PORTS` > (`core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml`) --- ## ESTANDAR v2.0.0 (NUEVO) El proyecto **gamilit** define el estandar base de asignacion de puertos: | Servicio | Puerto | Patron | |----------|--------|--------| | Frontend | 3005 | base | | Backend | 3006 | base + 1 | **Regla principal:** Frontend y Backend tienen **1 numero de diferencia**. --- ## ASIGNACION OFICIAL DE PUERTOS Cada proyecto tiene una base y sigue el patron FE=base, BE=base+1: | Proyecto | Base | Frontend | Backend | Estado | |----------|------|----------|---------|--------| | gamilit | 3005 | 3005 | 3006 | PRODUCCION | | erp-core | 3010 | 3010 | 3011 | Activo | | construccion | 3020 | 3020 | 3021 | Activo | | vidrio-templado | 3030 | 3030 | 3031 | Activo | | mecanicas-diesel | 3040 | 3040 | 3041 | Activo | | retail | 3050 | 3050 | 3051 | Activo | | clinicas | 3060 | 3060 | 3061 | Activo | | pos-micro | 3070 | 3070 | 3071 | Activo | | trading-platform | 3080 | 3080 | 3081 | Activo | | betting-analytics | 3090 | 3090 | 3091 | Reservado | | inmobiliaria | 3100 | 3100 | 3101 | Reservado | | pmc | 3110 | 3110 | 3111 | Activo | **Rango disponible:** 3112-3199 para futuros proyectos. --- ## MAPA VISUAL DE PUERTOS ``` Puerto Proyecto Estado ──────────────────────────────────────── 3005/3006 gamilit PRODUCCION 3010/3011 erp-core Activo 3020/3021 construccion Activo 3030/3031 vidrio-templado Activo 3040/3041 mecanicas-diesel Activo 3050/3051 retail Activo 3060/3061 clinicas Activo 3070/3071 pos-micro Activo 3080-3087 trading-platform Activo (FE/BE/WS/ML/Data/LLM/Agents/WebUI) 3090/3091 betting-analytics Reservado 3100/3101 inmobiliaria Reservado 3110/3111 pmc Activo ──────────────────────────────────────── 3112-3199 [DISPONIBLE] Futuros proyectos ``` --- ## OFFSETS ESTANDAR Para servicios adicionales dentro de cada proyecto: ```yaml OFFSETS: frontend: +0 # Aplicacion web principal (base) backend_api: +1 # API principal backend_ws: +2 # WebSocket server backend_admin: +3 # Panel de administracion API backend_workers: +4 # Workers/Jobs auxiliary: +5-9 # Servicios auxiliares ``` ### Ejemplo para un nuevo proyecto "mi-proyecto" (base 3120): ```yaml mi-proyecto: frontend: 3120 backend_api: 3121 backend_ws: 3122 backend_admin: 3123 backend_workers: 3124 ``` --- ## BASES DE DATOS Los puertos de bases de datos se asignan secuencialmente: | Servicio | Rango | Default | |----------|-------|---------| | PostgreSQL | 5432-5449 | 5432 | | Redis | 6379-6389 | 6379 | | MySQL | 3306 | 3306 (legacy) | | MongoDB | 27017-27027 | 27017 | ### Asignacion actual de PostgreSQL: | Puerto | Proyecto | |--------|----------| | 5432 | Default / gamilit / erp-core / mecanicas / trading / pmc | | 5433 | construccion / pos-micro / trading-test | | 5434 | vidrio-templado | | 5436 | retail | | 5437 | clinicas | | 5438 | betting-analytics (reservado) | | 5439 | inmobiliaria-analytics (reservado) | ### Asignacion actual de Redis: | Puerto | Proyecto | |--------|----------| | 6379 | Default / shared | | 6380 | construccion | | 6381 | vidrio-templado | | 6383 | retail | | 6384 | clinicas | | 6385 | betting-analytics (reservado) | | 6386 | inmobiliaria-analytics (reservado) | --- ## PUERTOS RESERVADOS (NO USAR) Estos puertos estan reservados y no deben usarse: | Puerto | Razon | |--------|-------| | 22 | SSH | | 80 | HTTP estandar | | 443 | HTTPS estandar | | 3000 | Muy comun en desarrollo, conflictos frecuentes | | 8080 | Muy comun en desarrollo, conflictos frecuentes | --- ## PROCESO DE ASIGNACION ### 1. Nuevo Proyecto ```yaml Cuando: Se crea un proyecto nuevo Quien: Tech-Leader delega a DevEnv Proceso: 1. Identificar siguiente base disponible (multiplos de 10) 2. Asignar puertos: FE=base, BE=base+1 3. Registrar en DEVENV-PORTS-INVENTORY.yml 4. Crear archivo .env.ports en el proyecto 5. Comunicar puertos asignados al Tech-Leader ``` ### 2. Nuevo Servicio en Proyecto Existente ```yaml Cuando: Se agrega servicio a proyecto existente Quien: Agente de capa consulta a DevEnv Proceso: 1. Verificar puertos disponibles en rango del proyecto (base+2 a base+9) 2. Asignar siguiente puerto segun tipo de servicio 3. Actualizar DEVENV-PORTS-INVENTORY.yml 4. Actualizar .env.ports del proyecto 5. Comunicar configuracion al agente solicitante ``` ### 3. Verificacion de Conflictos ```bash # Verificar puerto especifico lsof -i :3005 # Verificar rango de puertos for port in {3000..3120}; do (echo >/dev/tcp/localhost/$port) 2>/dev/null && echo "Puerto $port en uso" done # Puertos en docker docker ps --format "{{.Ports}}" # Todos los puertos escuchando netstat -tlnp | grep LISTEN ``` --- ## TEMPLATE: .env.ports Cada proyecto debe tener un archivo `.env.ports` en su raiz: ```bash # ============================================================================= # {NOMBRE_PROYECTO} - PORT ASSIGNMENTS # ============================================================================= # Archivo centralizado de asignacion de puertos # Gestionado por: DevEnv Agent # Fecha: {FECHA} # Base: {BASE} # Estandar: FE=base, BE=base+1 # ============================================================================= # SERVICIOS PRINCIPALES FRONTEND_PORT={BASE} BACKEND_PORT={BASE+1} # SERVICIOS ADICIONALES (si aplica) BACKEND_WS_PORT={BASE+2} BACKEND_ADMIN_PORT={BASE+3} # BASES DE DATOS (si son especificos del proyecto) POSTGRES_PORT={ASIGNADO} REDIS_PORT={ASIGNADO} # ============================================================================= # NOTAS # ============================================================================= # - Estandar: Frontend = base, Backend = base + 1 # - Registrado en: @DEVENV_PORTS # - Cualquier cambio debe coordinarse con DevEnv Agent # ============================================================================= ``` --- ## SERVICIOS ESPECIALES ### Trading Platform - Todos los Servicios Trading-platform tiene servicios Python integrados en el rango 3080: ```yaml trading-platform: # Servicios principales (Node.js) frontend: 3080 backend: 3081 websocket: 3082 # Servicios Python (FastAPI) - ACTUALIZADO v3.1.0 ml_engine: 3083 data_service: 3084 llm_agent: 3085 trading_agents: 3086 ollama_webui: 3087 # Servicio externo ollama: 11434 # LLM server local (sin cambio) ``` ### Platform Marketing Content ```yaml pmc: frontend: 3110 backend: 3111 comfyui: 8188 # Servicio externo de IA ``` --- ## ALIAS RELEVANTES ```yaml @DEVENV_PORTS: "core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml" @DEVENV_STANDARDS: "core/orchestration/referencias/DEVENV-PORT-STANDARDS.md" @DEVENV_PROFILE: "core/orchestration/agents/perfiles/PERFIL-DEVENV.md" ``` --- ## CHANGELOG | Version | Fecha | Cambios | |---------|-------|---------| | 2.1.0 | 2025-12-08 | Trading-platform Python services actualizados a rango 3083-3087 | | 2.0.0 | 2025-12-08 | Nuevo estandar: FE=base, BE=base+1 (1 numero diferencia) | | 1.0.0 | 2025-12-08 | Estandar inicial: FE=base+5, BE=base+6 | --- **Version:** 2.1.0 | **Sistema:** SIMCO + DevEnv | **Tipo:** Referencia