# DEVENV-PORT-STANDARDS **Version:** 1.0.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 BASE El proyecto **gamilit** define el estandar base de asignacion de puertos: | Servicio | Puerto | Patron | |----------|--------|--------| | Frontend | 3005 | base + 5 | | Backend | 3006 | base + 6 | Este patron se replica en todos los proyectos del workspace. --- ## RANGOS POR PROYECTO Cada proyecto tiene un bloque de 100 puertos reservado: | Proyecto | Rango | Base | Frontend | Backend | |----------|-------|------|----------|---------| | gamilit | 3000-3099 | 3000 | 3005 | 3006 | | erp-suite | 3100-3199 | 3100 | 3105 | 3106 | | trading-platform | 3200-3299* | 3200 | 3100** | 4000** | | betting-analytics | 3300-3399 | 3300 | 3305 | 3306 | | inmobiliaria-analytics | 3400-3499 | 3400 | 3405 | 3406 | | platform_marketing_content | 3500-3599 | 3500 | 3505 | 3506 | *Trading-platform tiene rangos extendidos para servicios Python (5000-5099) **Trading-platform ya tenia puertos asignados antes de este estandar --- ## OFFSETS ESTANDAR Dentro de cada rango de proyecto, se aplican estos offsets: ```yaml OFFSETS: frontend_web: +5 # Aplicacion web principal backend_api: +6 # API principal frontend_admin: +7 # Panel de administracion backend_ws: +8 # WebSocket server backend_workers: +9 # Workers/Jobs auxiliary: +10-19 # Servicios auxiliares ``` ### Ejemplo para un nuevo proyecto "mi-proyecto" (base 3700): ```yaml mi-proyecto: frontend_web: 3705 backend_api: 3706 frontend_admin: 3707 backend_ws: 3708 backend_workers: 3709 ``` --- ## 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 | | 5433 | erp-suite/construccion / trading-platform test | | 5434 | erp-suite/vidrio-templado | | 5436 | erp-suite/retail | | 5437 | erp-suite/clinicas | | 5438 | betting-analytics (reservado) | | 5439 | inmobiliaria-analytics (reservado) | | 5440 | platform_marketing_content | --- ## 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 rango disponible (bloques de 100) 2. Asignar puertos segun offsets estandar 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 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..3100}; 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_CREACION} # Rango asignado: {RANGO} # ============================================================================= # FRONTEND FRONTEND_PORT={BASE+5} FRONTEND_ADMIN_PORT={BASE+7} # BACKEND BACKEND_API_PORT={BASE+6} BACKEND_WS_PORT={BASE+8} BACKEND_WORKERS_PORT={BASE+9} # DATABASES (si son especificos del proyecto) POSTGRES_PORT={ASIGNADO} REDIS_PORT={ASIGNADO} # ============================================================================= # NOTAS # ============================================================================= # - Estos puertos estan registrados en @DEVENV_PORTS # - Cualquier cambio debe ser coordinado con DevEnv Agent # - No modificar sin actualizar el inventario central # ============================================================================= ``` --- ## ERP-SUITE: Sub-Rangos para Verticales El proyecto erp-suite tiene sub-rangos para cada vertical: ```yaml erp-suite: base: 3100 verticales: erp-core: range: "3100-3119" backend: 3100 construccion: range: "3120-3139" backend: 3120 postgresql: 5433 vidrio-templado: range: "3140-3159" backend: 3140 frontend: 5175 postgresql: 5434 mecanicas-diesel: range: "3160-3179" backend: 3160 retail: range: "3180-3199" backend: 3180 frontend: 5177 postgresql: 5436 clinicas: range: "3200-3219" # Extension del rango backend: 3200 frontend: 5178 dicom: 4242 postgresql: 5437 ``` --- ## TRADING-PLATFORM: Rangos Extendidos Trading-platform tiene una estructura especial con servicios Python: ```yaml trading-platform: frontend_services: "3100-3199" frontend_web: 3100 frontend_admin: 3101 frontend_preview: 4173 backend_node: "4000-4099" backend_api: 4000 backend_ws: 4001 backend_webhooks: 4002 python_services: "5000-5099" ml_engine: 5000 data_service: 5001 llm_agent: 5002 portfolio_manager: 5003 ``` --- ## 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" ``` --- ## RESUMEN VISUAL ``` PUERTOS ASIGNADOS POR PROYECTO ============================== 3000 ----[GAMILIT]---- 3099 |-- FE: 3005 |-- BE: 3006 3100 ----[ERP-SUITE]---- 3219 |-- core: 3100-3119 |-- construccion: 3120-3139 |-- vidrio-templado: 3140-3159 |-- mecanicas: 3160-3179 |-- retail: 3180-3199 |-- clinicas: 3200-3219 3200 ----[TRADING-PLATFORM]---- (extendido) |-- FE: 3100-3199 |-- BE Node: 4000-4099 |-- Python: 5000-5099 3300 ----[BETTING-ANALYTICS]---- 3399 |-- FE: 3305 (reservado) |-- BE: 3306 (reservado) 3400 ----[INMOBILIARIA-ANALYTICS]---- 3499 |-- FE: 3405 (reservado) |-- BE: 3406 (reservado) 3500 ----[PLATFORM-MARKETING]---- 3599 |-- FE: 3505 |-- BE: 3506 BASES DE DATOS ============== 5432-5449: PostgreSQL (por proyecto) 6379-6389: Redis (por proyecto) ``` --- **Version:** 1.0.0 | **Sistema:** SIMCO + DevEnv | **Tipo:** Referencia