| name | webui-csrf-origin |
| description | Fix CSRF origin mismatch when Hermes WebUI is proxied through NaN.builders or other reverse proxies. |
WebUI CSRF Origin Mismatch
Cuándo aplicar
Si el WebUI de Hermes (puerto 8787) funciona por Telegram pero da server error / 500 / "Cross-origin mismatch" desde la web de NaN.builders (https://webui-ntizar-ntizar.apps.nan.builders/), el problema es CSRF.
Causa
El WebUI valida Origin/Referer contra Host en cada POST. Cuando NaN.builders hace proxy, el Origin del navegador es https://webui-ntizar-ntizar.apps.nan.builders pero el Host interno del contenedor es diferente → el WebUI rechaza la petición.
Diagnóstico
cat /proc/199/environ 2>/dev/null | tr '\0' '\n' | grep -i ALLOWED_ORIGINS
Solución
kubectl set env deployment/ntizar-agent \
HERMES_WEBUI_ALLOWED_ORIGINS=https://webui-ntizar-ntizar.apps.nan.builders
kubectl edit deployment ntizar-agent
Después de cambiar la variable, el contenedor se reinicia automáticamente (rolling update).
Notas
- El valor debe incluir el esquema (
https://), no solo el dominio.
- Si se usan múltiples dominios, separar por comas:
https://a.com,https://b.com.
- El WebUI también respeta
X-Forwarded-Host y X-Real-Host como fallback para proxies reverso.
- Esta protección existe para prevenir CSRF en despliegues públicos.