Volver a la wiki

Runbook — Relanzar los proxies socat de NetBird tras un deploy

Propósito

Relanzar los proxies socat que exponen servicios internos del stack de CreaRack a la VPN NetBird, re-resolviendo las direcciones IP de los contenedores. Debe ejecutarse tras cada docker compose up que recree los contenedores, especialmente después de despliegues vía Dokploy.

Por qué existe

Los proxies socat escuchan en la interfaz NetBird (wt0) y redirigen tráfico a direcciones IP internas de contenedores Docker. Estas IPs cambian en cada recreate/deploy. Sin relanzar el script después del despliegue, el acceso NetBird queda apuntando a IPs obsoletas.

Footgun conocido: En el Hito A de observabilidad (mayo 2026), al recrear la VM de PROD, el acceso a VictoriaMetrics por NetBird se rompió porque los proxies socat apuntaban a la IP antigua del contenedor. Se detectó después de intentar consultar métricas remotamente.

Desde el 25-09-2026 (mega-auditoría B-45)

8428 y 9093 ya NO apuntan directos a VictoriaMetrics ni a Alertmanager: pasan por dos contenedores vmauth que piden usuario y contraseña (decisión completa: [[decision—20260925—vmauth-auth-netbird-b45]]). El script:

Servicios expuestos

Puerto NetBirdContenedor:puerto internoUso
8428vmauth:18428Consultas PromQL a VictoriaMetrics — pide usuario y contraseña desde B-45
5432db:5432Acceso directo a PostgreSQL (desarrollo/auditoría) — sin cambios
9093vmauth-am:19093Panel de Alertmanager; enlaces del email de alarmas — pide usuario y contraseña desde B-45

Ejecución

Requisitos previos

Pasos

# 1. En el servidor PROD o STAGE, acceder por SSH
ssh user@crearack-prod.example.com

# 2. Ejecutar el script
sudo bash /etc/dokploy/compose/<app>/code/scripts/netbird-proxies.sh

Donde <app> es el nombre de la aplicación en Dokploy (ej: crearack-prod).

Salida esperada:

NetBird IP (wt0): 100.64.X.X
proxy 100.64.X.X:8428 -> crearack-prod-vmauth-1 (172.XX.X.XX:18428)
proxy 100.64.X.X:5432 -> crearack-prod-db-1 (172.XX.X.XX:5432)
proxy 100.64.X.X:9093 -> crearack-prod-vmauth-am-1 (172.XX.X.XX:19093)
OK. Proxies NetBird relanzados.

Idempotencia

El script es idempotente:

Verificación post-ejecución

Desde un cliente conectado a la VPN NetBird:

# Verificar accesibilidad a cada puerto (salud real del servicio, no del panel)
curl -s -o /dev/null -w '%{http_code}\n' http://crearack-prod.netbird.cloud:8428/backend-health   # 200
curl -s -o /dev/null -w '%{http_code}\n' http://crearack-prod.netbird.cloud:9093/backend-health   # 200
nc -zv crearack-prod.netbird.cloud 5432

Acceder al panel de Alertmanager pide ahora usuario y contraseña del equipo (ver la decisión enlazada arriba):

http://crearack-prod.netbird.cloud:9093/

Si alguno responde con Connection refused o timeout, el script no ejecutó exitosamente o el contenedor se cayó (con vmauth: revisar si arrancó — ver la sección “Si vmauth arrancó sin su fichero” en context/INFRA.md).

Automatización futura

Actualmente el script se lanza manualmente post-deploy. Candidatos para automatizar:

Debugging

Si el script falla:

  1. Interfaz wt0 no encontrada: NetBird no está activo. Iniciar NetBird en el servidor.

    sudo systemctl start netbird
  2. Contenedor no encontrado: Verificar que existe y está corriendo.

    docker ps | grep vmauth  # ejemplo
  3. Error de permisos en socat: Asegurar que ejecutas como sudo y que socat está instalado.

    which socat
    sudo apt install socat  # si no existe
  4. Puerto ya en uso: Si socat no puede bindear, algo otro está usando ese puerto en wt0.

    netstat -tuln | grep 8428  # ejemplo
    # O matar manualmente:
    sudo pkill -f "socat.*TCP-LISTEN:8428"
  5. vmauth en bucle de reinicio: no es un fallo de este script — vmauth no arranca sin sus ficheros de contraseña. Ver context/INFRA.md, sección vmauth.

Véase también

Subir