Introduccion

Qué hace el addon

PawProxy agrega una pestaña Proxy a cada servidor del panel. Desde ahí, el usuario puede asignar un dominio propio (por ejemplo play.misitio.com) que apunte a su servidor, con reverse proxy automático manejado por nginx en el nodo, y elegir cómo se maneja el SSL: sin cifrar, detrás de Cloudflare, con un certificado gratuito de Let's Encrypt emitido automáticamente, o con un certificado propio pegado a mano.

Si el servidor tiene más de una allocation (IP:puerto), cada dominio puede apuntar a una distinta, así que un mismo servidor puede exponer varias apps independientes bajo dominios diferentes. Si el nodo tiene activada la verificación de propiedad de dominio, el dominio queda a la espera de un registro TXT antes de aplicarse (ver Uso: usuario final).

Todo el trabajo pesado (escribir la config de nginx, recargarla, pedir el certificado) lo hace Wings en el nodo correspondiente. El panel solo orquesta y guarda estado.

Piezas involucradas

  • Panel (Laravel): interfaz, validaciones, permisos, y la cola de tareas en segundo plano que orquesta cada cambio.
  • Wings (Go): el agente que ya corre en cada nodo, autenticado con el panel a través del token del nodo. El addon le suma un puñado de endpoints propios para gestionar dominios.
  • nginx: el motor de proxy real. Wings mantiene un archivo de configuración por dominio y lo recarga cuando hace falta.
  • certbot: emite y revoca certificados Let's Encrypt cuando el usuario elige ese modo.

Cómo fluye la creación de un dominio, a grandes rasgos

  1. El usuario completa el formulario en la pestaña Proxy y lo envía.
  2. El panel valida el formato del dominio y el permiso del usuario, revisa la configuración del nodo (si el proxy está habilitado, qué modos SSL permite, límites de dominios por servidor), y resuelve a qué allocation del servidor apunta.
  3. Si el nodo exige verificación de propiedad de dominio, el dominio queda en espera de un registro DNS (ver la sección siguiente) y recién ahí sigue el resto del flujo.
  4. El panel encola una tarea en segundo plano que le pide a Wings, sobre una conexión autenticada, que configure el dominio.
  5. Wings valida que el nombre de dominio sea un hostname público seguro (rechaza cualquier cosa que pudiera romper la config de nginx), escribe el archivo de configuración correspondiente, y recarga nginx.
  6. Según el modo elegido: emite un certificado Let's Encrypt, escribe el certificado que mandó el panel (modo propio), o genera uno autofirmado si el dominio está detrás de Cloudflare.
  7. Wings confirma que nginx realmente cargó el nuevo dominio (no solo que aceptó la config) antes de reportar éxito.
  8. El panel marca el dominio como activo; la pestaña Proxy lo refleja automáticamente en los segundos siguientes.

El borrado sigue el camino inverso: el panel libera el nombre de inmediato y encola una tarea que le pide a Wings borrar la configuración y revocar el certificado que corresponda.

Verificación de propiedad de dominio (cuando el nodo la exige)

El dominio se crea en un estado de espera con un token generado al azar. El usuario tiene que publicar ese token como un registro TXT en el DNS del dominio y confirmar desde la pestaña Proxy. El panel resuelve el DNS y compara el valor de forma segura; si coincide, recién ahí el dominio sigue el flujo normal de aplicación. Esta verificación se resuelve enteramente desde el panel, sin ningún cambio del lado de Wings.

Siguiente: Requisitos →