7.4 KiB
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:
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):
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
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
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
# 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:
# =============================================================================
# {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:
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:
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
@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