Arquitectura general
Cómo se relacionan Traefik, cada panel y sus contenedores de aplicación.
Visión general
Los tres productos comparten el mismo patrón de infraestructura: un único Traefik en el servidor hace de puerta de entrada HTTPS y enruta cada subdominio hacia el contenedor correcto. Cada instancia de panel corre en su propia red Docker interna y nunca expone puertos directamente al host.
flowchart LR
U[Usuario] -->|HTTPS| T[Traefik]
T -->|panel-*.urrahosting.cl| WP[Web Hosting]
T -->|cloud-*.urrahosting.cl| CL[Cloud]
T -->|game-*.urrahosting.cl| GP[Game Hosting]
T -->|docs.urrahosting.cl| DOCS[UrraHosting Docs]
WP --> WPD[(MySQL / PostgreSQL opcional)]
WP --> WPA[Contenedor de la app del usuario]
CL --> CLD[(PostgreSQL)]
GP --> GPR[Contenedor del servidor de juego]
Web Hosting: separación entre dashboard y orquestador
Web Hosting divide deliberadamente el panel (lo que ves y usas) del componente que realmente habla con Docker:
flowchart TB
D[Dashboard Flask] -->|red interna 'control'| O[Orquestador]
O -->|Docker API acotada| P1[docker-proxy-orchestrator]
D -->|Docker API mínima<br/>solo start/stop/restart| P2[docker-proxy]
O --> APP[Contenedor de la app]
O --> DB[(Base de datos administrada)]
P1 -.acceso Docker.-> APP
P1 -.acceso Docker.-> DB
P2 -.acceso Docker.-> APP
El dashboard nunca construye imágenes ni tiene acceso amplio al socket de
Docker: solo puede iniciar, detener y reiniciar el contenedor de su
propia instancia. Todo el build y el ciclo de vida completo pasa por el
orquestador, que aplica siempre el mismo endurecimiento de seguridad
(cap_drop: ALL, no-new-privileges, sin puertos publicados, límites de
CPU/memoria) a cada contenedor que crea.
Dominios
Cada instancia usa subdominios predecibles bajo urrahosting.cl:
| Producto | Panel | Aplicación / recurso |
|---|---|---|
| Web Hosting | panel-<instancia>.urrahosting.cl |
<instancia>.urrahosting.cl (o un dominio propio, ver dominios personalizados) |
| Cloud | cloud-<instancia>.urrahosting.cl |
mismo dominio, ruta /dav para WebDAV |
| Game Hosting | panel-<instancia>.urrahosting.cl |
conexión directa al puerto del juego (no HTTP) |
| Docs | docs.urrahosting.cl |
(este sitio) |
Todo el tráfico va cifrado con TLS emitido automáticamente vía Let's
Encrypt a través del certresolver configurado en Traefik.