wsl-labs GitHub

📊 Project Status#

Versión: v0.3.0 Estado general: 🟢 Operativo — panel + motor WSLC + launcher + 12 casos de contenedores Alcance actual: 🐳 12 casos portados de docker-labs, levantados con wslc, verificados corriendo Última actualización: 2026-07-06

🧭 Resumen ejecutivo#

WSL Container Center levanta y controla contenedores reales con wslc, el motor de contenedores nativo de WSL 2.9+ (preview). El panel (Node.js, :9092) construye imágenes, levanta contenedores y monitorea su estado; un launcher Go abre todo con un doble clic; y containers/containers.config.json es la fuente única de verdad del catálogo de 12 casos portados de docker-labs, todos verificados corriendo.

wslc se obtiene con wsl --update --pre-release y vive en C:\Program Files\WSL\wslc.exe. El modelo es tipo Docker: imágenes OCI, contenedores, redes y puertos — sin necesidad de Docker Desktop.

🚀 Matriz de componentes#

ComponenteEstadoDetalle
🧭 Panel WSL Container Center (Node.js :9092)GET /api/wslc/overview, POST /api/wslc/{build,up,down,logs}
🖥️ UI web (index.html + css + js)Botones Construir / Levantar / Bajar / Logs por caso
🐳 Motor WSLCC:\Program Files\WSL\wslc.exe (WSL 2.9+ preview)
🚀 Launcher Windows (Go)Verifica WSL, arranca el panel, abre el browser
📇 Catálogo containers.config.jsonFuente única de verdad — 12 casos
🐳 12 casos de contenedores4 starter + 4 platform + 4 infra, todos corriendo
🔨 Imágenes custom (wslc build)Desde Dockerfiles; 10-go-api multi-stage
🌐 Multi-contenedor por red wslcCasos platform + observabilidad
⚙️ CI/CD (GitHub Actions)docs · dashboard · build-windows
⚖️ Licencia Apache-2.0Alineada con la línea de repos

📡 Estado de los 12 casos#

Los 12 casos se construyen/levantan con wslc y responden desde el localhost de Windows. El criterio de "sano" depende del servicio (no todo es HTTP 200): los stacks con base de datos verifican además que el backend sea reachable.
CasoCategoríaPuertoImagen(es)VerificaciónEstado
01-node-api🟢 starter8101node:20-alpine (custom)HTTP 200
03-python-api🟢 starter8102python:3.12-alpine (custom)HTTP 200
10-go-api🟢 starter8103Go multi-stage (custom)HTTP 200
06-nginx-web🟢 starter8104nginx:alpine (custom)HTTP 200
04-redis-cache🧩 platform8105redis:7-alpine + appHTTP 200 + Redis reachable
05-postgres-api🧩 platform8106postgres:15 + appHTTP 200 + PostgreSQL reachable
02-php-lamp🧩 platform8107mariadb:10.6 + PHP/ApacheHTTP 200 + MariaDB reachable
09-multi-service🧩 platform8112mongo:7 + backendHTTP 200 + MongoDB reachable
07-rabbitmq🏗️ infra8109rabbitmq:3-managementHTTP 200/302
08-prometheus-grafana🏗️ infra8110/8111prom/prometheus + grafana/grafanaGrafana 302 / Prometheus 200
11-elasticsearch🏗️ infra8113elasticsearch:8.11.0HTTP 200 (JSON)
12-jenkins🏗️ infra8114jenkins/jenkins:ltsHTTP 403 (setup → vivo)

Resultado verificado (v0.3.0): 12/12 casos corriendo con wslc.


✅ Lo consolidado#

POST /api/wslc/{build,up,down,logs}


🚧 Lo que sigue en evolución#


⚠️ Riesgos o límites actuales#

RiesgoImpacto
wslc está en preview (WSL 2.9+)API y comportamiento pueden cambiar entre builds de WSL
Sin wslc composeEl multi-contenedor se arma a mano con red wslc + varios wslc run
11-elasticsearch y 12-jenkins pesan (JVM)Requieren RAM extra; no levantarlos junto a varios casos platform
Instalador sin firma digital (v0.x)Windows SmartScreen puede advertir
wslc no detectado en otra rutaEl panel lo busca en C:\Program Files\WSL\wslc.exe

📚 Recomendación de lectura#

Si quieres…Abre
Entender la historia principalREADME.md
Evaluar el repo rápidoRECRUITER.md
Entender el enfoque de contenedoresdocs/wslc-contenedores.md
Ver el catálogo de casosdocs/LABS_CATALOG.md
Ver el detalle operativo por casodocs/LABS_RUNTIME_REFERENCE.md
Ver el historial de cambiosCHANGELOG.md
Ver la dirección futuraROADMAP.md

📖 Ver también: README.md · ROADMAP.md · docs/technical-audit.md

Fuente: PROJECT_STATUS.md