🐳 docker-labs GitHub ↗

🏗️ Arquitectura — Docker Labs#

Versión: 1.5.0 Estado: 🟢 Activo Audiencia: 👥 Técnico, DevOps, full stack Objetivo: Visión técnica del workspace y relación entre sus componentes

📌 Objetivo de arquitectura#

La arquitectura del repositorio busca equilibrar tres cosas:

📊 Estado arquitectónico#

CapaEstadoRol
dashboard-control🟢 OperativoControl del workspace y diagnóstico
05-postgres-api🟢 OperativoCore transaccional
09-multi-service-app🟢 OperativoPortal operativo
06-nginx-proxy🟢 OperativoGateway
Labs complementarios🟡 ParcialCapacidades e infraestructura

🧱 Capas del sistema#

flowchart LR
    Browser["Browser / User"] --> Control["Control Center :9090"]
    Browser --> Gateway["Platform Gateway :8085"]
    Gateway --> Core["Inventory Core :8000"]
    Gateway --> Portal["Operations Portal :8083"]
    Portal --> Core
    Control --> Docker["Docker Engine / Docker Desktop"]
    Control --> Repo["Repo Metadata + Docs"]
    Core --> Postgres[("PostgreSQL")]
    Portal --> Mongo[("MongoDB")]

🧠 Componentes principales#

1. Control Center#

AtributoDetalle
Componentedashboard-control/server.js
Puerto9090
TecnologíaNode.js + Express

Responsabilidades:


2. Inventory Core#

AtributoDetalle
Componente05-postgres-api/README.md
Puerto8000
TecnologíaFastAPI + PostgreSQL 15

Responsabilidades:


3. Operations Portal#

AtributoDetalle
Componente09-multi-service-app/README.md
Puerto8083
TecnologíaExpress.js + MongoDB + Nginx

Responsabilidades:


4. Platform Gateway#

AtributoDetalle
Componente06-nginx-proxy/README.md
Puerto8085
TecnologíaNginx

Responsabilidades:

🗂️ Taxonomía del repositorio#

TipoQué incluyeIntención
platform05, 06, 09, dashboard-controlExperiencia principal
infra04, 07, 08, 11, 12Capacidades complementarias
starter01, 02, 03, 10Aprendizaje y base de futuros productos

🔄 Flujo operativo principal#

flowchart TD
    A["Levantar Control Center"] --> B["Revisar diagnostics"]
    B --> C["Elegir lab o plataforma"]
    C --> D["Levantar entorno"]
    D --> E["Abrir sistema"]
    E --> F["Revisar logs / healthchecks"]
    F --> G["Bajar o eliminar entornos"]

🧩 Principios de diseño#

PrincipioDescripción
Problema concretoCada lab debe resolver un caso real, no ser un hello world
Documentación honestaLos docs deben coincidir con lo que realmente entrega el sistema
Panel explicativoEl Control Center explica el entorno, no solo lo controla
Plataforma integradaLos servicios principales deben sentirse como una plataforma, no como puertos aislados

📚 Documentos relacionados#