Plantilla agnóstica para docker-compose en producción con proxy inverso, incluyendo labels obligatorios para routing, validación, seguridad y best practices independientes de la infraestructura específica.
Cuando trabajas con proxy inversos gestionados (Traefik en Coolify, Nginx Ingress en Kubernetes, etc.), el docker-compose.yml no es solo orquestación de contenedores: es también configuración de enrutamiento.
Lección aprendida: Muchos despliegues fallan silenciosamente porque falta la capa de configuración de routing (labels). El proxy no sabe cómo acceder a tu servicio. El contenedor corre perfectamente, pero no es alcanzable desde internet.
Este skill previene ese problema proporcionando una estructura probada y agnóstica.
┌─────────────────────────────────────────┐
│ INTERNET / DNS / CDN │
│ (Cloudflare, Route53, etc.) │
└──────────────┬──────────────────────────┘
│ (Dominio + DNS records)
↓
┌─────────────────────────────────────────┐
│ PROXY INVERSO (Traefik, Nginx, etc.) │
│ - Lee labels de contenedores │
│ - Enruta tráfico por HOST/PATH │
│ - Gestiona SSL/TLS │
│ - Aplica middlewares (auth, redirect) │
└──────────────┬──────────────────────────┘
│ (Red interna)
↓
┌─────────────────────────────────────────┐
│ CONTENEDORES (docker-compose) │
│ - Escuchan en puerto interno │
│ - Exponen metadatos (labels) │
│ - Comunican entre sí por nombre │
└─────────────────────────────────────────┘
Conclusión clave: Sin labels, el proxy no entiende cómo rutear. Es como tener una dirección de casa pero no un número en la puerta.