Panel de control no visible en la LAN

Mi Gladys funciona bien, pero solo en el localhost. Otros servicios de Docker son perfectamente accesibles en la LAN, pero no Gladys. Además, ningún otro Docker está utilizando ese puerto, también probé otros puertos. Los registros están bien.

¿Alguna idea?

services:
  gladys:
    logging:
      driver: json-file
      options:
        max-size: 10m
    cgroup: host
    restart: always
    privileged: true
    network_mode: host
    container_name: gladys
    environment:
      - NODE_ENV=production
      - SERVER_PORT=8001
      - TZ=Europe/Amsterdam
      - SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/gladysassistant:/var/lib/gladysassistant
      - /dev:/dev
      - /run/udev:/run/udev:ro
    image: gladysassistant/gladys:v4

¿Con qué dirección intentas contactar a Gladys?

http://MACHINE_IP:8001

?

Sí, uso la IP:8001, estándar http.

¡Debería funcionar! ¿Estás seguro de que no se necesita configuración para tu red?

Sí, porque los demás funcionan sin necesidad de configuración.

Edición: también probé una instalación nueva. La página de configuración tampoco era accesible.

Si ejecutas:

ss -lntp | grep 8001

¿Qué ves?

LISTEN 0 511 *:8001 : users:((« node »,pid=1876873,fd=29))

Si uso los puertos en el archivo de configuración yaml y comento la línea network=host, funciona en la LAN.
Luego obtengo esto:
LISTEN 0 4096 0.0.0.0:8001 0.0.0.0:* users:((« docker-proxy »,pid=1879103,fd=7))
LISTEN 0 4096 [::]:8001 [::]:* users:((« docker-proxy »,pid=1879109,fd=7))

La pregunta sigue en pie. ¿Es este un parche sólido y por qué no funciona de la otra manera?

Si introduzco esta conversación en ChatGPT, al parecer es un problema de IPv6.

Veo recomendaciones como añadir esto a docker-compose, pero honestamente no lo he probado ^^

environment:
  - NODE_OPTIONS=--dns-result-order=ipv4first

No estoy usando docker-compose para mi configuración personal, siempre hay cosas raras como esa, solo estoy usando el docker run raw del sitio web.

Si no usas network=host, tendrás problemas al usar integraciones que necesiten estar en la red (por ejemplo, Matter, Philips Hue, escaneo de red, etc.).

Así que depende de ti, pero no es una configuración recomendada :slight_smile:

solo proporcionar los puertos en lugar de usar network=host da un entorno que no funciona, de hecho

Lo he investigado más a fondo. Parece que debido a network=host los puertos no son accesibles automáticamente para los dispositivos de la LAN. Esto se debe a reglas más estrictas en Debian 13.

Podría configurar un Macvlan, un proxy inverso, pero en su lugar opté por la solución fácil y añadí los puertos (8001 y 8089 en mi caso para Z2M) a UFW al principio de la lista. En mi iptables todo desde la LAN está desactivado por defecto.

sudo ufw insert 1 allow from <LAN IP>/24 to any port <port> proto tcp

Funciona como un encanto.