Instalacion Wings
Este addon requiere un binario de Wings modificado (fork con las rutas /
agregadas). Repetí estos pasos en el código fuente de Wings antes de compilar, y después
distribuí el binario resultante a cada nodo, o compilalo directamente en cada uno.
Paso 1: Copiar los archivos nuevos
Importante: Wings es un binario compilado, no archivos que Wings lea en caliente. Estos
. van a la carpeta fuente de tu fork de Wings (donde tengas el código que después
compilás con go build), normalmente en tu compu o en un servidor de build, no
directamente en el nodo donde corre el daemon.
Opción A: arrastrando y soltando. Abrí el código fuente de tu Wings en tu explorador
de archivos (o VS Code) y arrastrá la carpeta proxy de wings/ dentro de
la carpeta proxy de tu Wings, y la carpeta router dentro de tu router, fusionando,
no reemplazando (tu Wings ya tiene otros archivos en esas mismas carpetas que hay que
conservar).
Opción B: por terminal:
cp -r wings/new-files/proxy/* /ruta/al/codigo-fuente-de/wings/proxy/
cp -r wings/new-files/router/* /ruta/al/codigo-fuente-de/wings/router/
Archivos que se copian (4 en total, todos son archivos nuevos, no pisan nada que ya exista):
proxy/: núcleo, escribemanager. go /, correetc/ nginx/ conf. d/ pawproxy/ <dominio>. conf nginx -y recargat proxy/: emisión (certbot. go certbot certonly -) y revocación de certificados Let's Encrypt- nginx proxy/: validación segura de nombres de dominio (anti path-traversal / anti-injection en la config de nginx)validator. go router/: handlersrouter_ proxy. go postProxyDomain,deleteProxyDomain,getProxyDomains,getProxyHealth,postProxyCheckConfig
Paso 2: Aplicar el fragmento inyectado
wings/ va dentro de Configure(), en el grupo
protected del router (justo después de la línea de /):
protected.POST("/api/proxy/domain", postProxyDomain)
protected.DELETE("/api/proxy/domain/:domain", deleteProxyDomain)
protected.GET("/api/proxy/domains", getProxyDomains)
protected.GET("/api/proxy/health", getProxyHealth)
protected.POST("/api/proxy/check-config", postProxyCheckConfig)
Estas rutas usan el mismo middleware de autenticación (Bearer token del nodo) que ya usa el resto de Wings, así que no hay que agregar nada de auth aparte.
Paso 3: Compilar
go build -o wings
Requiere Go 1. (toolchain 1.).
Paso 4: Preparar nginx en el nodo
mkdir -p /etc/nginx/conf.d/pawproxy
mkdir -p /etc/nginx/ssl/pawproxy
Y asegurate de que nginx. (o el bloque http {}) incluya el directorio de configs:
include /etc/nginx/conf.d/pawproxy/*.conf;
Paso 5: Instalar certbot (opcional, solo si vas a permitir Let's Encrypt)
apt install certbot python3-certbot-nginx
Paso 6: Reiniciar Wings
systemctl restart wings
Paso 7: Verificar
curl -H "Authorization: Bearer <token_del_nodo>" \
http://localhost:<daemon_port>/api/proxy/health
Respuesta esperada:
{"status":"ok","module":"pawproxy"}
Si esto responde bien pero el panel sigue mostrando "Could not reach the proxy module" en Admin → Nodes → (nodo) → Proxy, revisá que el panel esté apuntando a la URL/puerto correcto del daemon y que no haya un firewall bloqueando la conexión panel→nodo.
Siguiente: Configuración por nodo →

