Instalar Gladys con Docker en Debian, Ubuntu y más
En este tutorial repasamos los pasos para instalar Gladys Assistant con Docker. Funciona en cualquier sistema (mini-PC, NAS, servidor Linux, VM...), y los pasos son los mismos en Debian y en Ubuntu.
Instalar Docker
curl y sudoUbuntu incluye curl y sudo, pero una instalación mínima de Debian a menudo no trae ninguno de los dos, y los comandos siguientes necesitan ambos. Inicia sesión como root con su - y ejecuta:
apt update && apt install -y curl sudo
usermod -aG sudo tu-usuario
Sustituye tu-usuario por tu nombre de usuario, cierra la sesión, vuelve a entrar y continúa abajo. El resto de esta guía es idéntico en Debian y en Ubuntu.
Para instalar Docker, simplemente ejecuta este comando:
curl -sSL https://get.docker.com | sh
Para comprobar que Docker funciona correctamente, escribe:
sudo docker ps
Debería mostrarse una lista vacía de contenedores en ejecución.
Si tienes algún problema al instalar Docker, echa un vistazo a la documentación de Docker y busca las instrucciones correspondientes a tu sistema.
Iniciar Gladys
Puedes iniciar un contenedor de Gladys con este comando:
sudo docker run -d \
--log-driver json-file \
--log-opt max-size=10m \
--cgroupns=host \
--restart=always \
--privileged \
--network=host \
--name gladys \
-e NODE_ENV=production \
-e SERVER_PORT=80 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
-v /run/udev:/run/udev:ro \
-v /run/dbus:/run/dbus:ro \
gladysassistant/gladys:v5
Notas:
-d=> Ejecuta el contenedor en segundo plano--log-driver json-file=> Configura los registros (logs) del contenedor--log-opt max-size=10m=> Limita el tamaño del archivo de registro a 10 MB--cgroupns=host=> Usa el espacio de nombres cgroup del host--restart=always=> Reinicia el contenedor automáticamente--privileged=> Concede privilegios ampliados al contenedor--network=host=> Usa la pila de red del host-e=> Define variables de entorno-v=> Monta volúmenes-v /run/dbus:/run/dbus:ro=> Da a Gladys acceso al bus del sistema del host. Es lo que te permite reiniciar o apagar la máquina desde los ajustes del sistema, y es el requisito previo para el Bluetooth: tanto vincular un dispositivo Matter por BLE como leer sensores Bluetooth pasan por BlueZ, al que solo se puede acceder a través de ese bus. El host necesita tener BlueZ instalado (sudo apt install bluezen Debian y Ubuntu).TZ=Europe/Paris=> Zona horaria que usa el contenedor. Si necesitas cambiar este valor, consulta esta lista en Wikipedia.
Actualizar Gladys automáticamente con Watchtower
Puedes usar Watchtower para actualizar Gladys automáticamente cuando haya una nueva versión disponible. Para ello, inicia un contenedor de Watchtower:
sudo docker run -d \
--name watchtower \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
nickfedor/watchtower \
--cleanup --include-restarting
Acceder a Gladys
Abre http://gladysassistant.local en tu navegador. Gladys anuncia ese nombre en tu red local mediante mDNS, así que puedes acceder a él desde cualquier dispositivo de la misma red sin tener que buscar nunca una dirección IP.
Debes estar en la misma red que la máquina.
Si tienes varias instancias de Gladys en casa, puedes cambiar el nombre de cada una en Ajustes → Sistema → Dirección local (mDNS). El cambio se aplica de inmediato, sin necesidad de reiniciar.
Si gladysassistant.local no se abre
mDNS viene integrado en macOS, iOS y Windows 10 o posterior, y funciona en la mayoría de las redes domésticas. Aun así, algunas configuraciones lo bloquean: ciertas versiones de Android, las redes de invitados y los routers con el aislamiento de clientes activado. Además, Gladys solo se anuncia cuando se ejecuta en la red del host, que es justo lo que hace el comando anterior.
En ese caso, usa la dirección IP de la máquina en tu navegador. Para encontrarla en tu red local, puedes usar aplicaciones como:
- Network Scanner en Android
- iNet - Network Scanner en iOS
El comando anterior usa TZ=Europe/Paris. Sustitúyelo por tu propio valor (por ejemplo Europe/Madrid, America/Mexico_City o America/Argentina/Buenos_Aires) de la lista de zonas horarias para que las escenas y las programaciones se ejecuten a la hora local correcta.
Preguntas frecuentes
¿En qué sistemas puedo ejecutar Gladys con Docker?
La instalación con Docker funciona en cualquier sistema que ejecute Docker: un mini-PC, un NAS (Synology, Unraid), un servidor Linux, una Raspberry Pi o una máquina virtual. El mismo comando único inicia Gladys en todos ellos. En un servidor Proxmox, sigue la guía de Proxmox.
¿Cómo actualizo Gladys cuando se ejecuta en Docker?
La forma más sencilla es ejecutar el contenedor de Watchtower que se muestra arriba. Detecta las nuevas imágenes de Gladys y actualiza tu contenedor automáticamente cuando se publica una nueva versión, así que no tienes que actualizar a mano.
¿Puedo ejecutar Gladys en un NAS Synology o Unraid?
Sí. Siempre que tu NAS pueda ejecutar contenedores Docker, puedes ejecutar Gladys en él con el mismo comando. Es una forma muy popular de autoalojar Gladys en un hardware que ya tienes.
¿Puedo instalar Gladys en Debian o Ubuntu?
Sí, y los pasos son los mismos en ambos: instala Docker con el script oficial y luego inicia el contenedor de Gladys con el comando de arriba. Funciona cualquier versión de Debian o Ubuntu compatible con Docker, en un mini-PC, un servidor o una máquina virtual. En una instalación mínima de Debian, instala primero curl y sudo (consulta el consejo al principio de esta página).
Gladys no se abre después de la instalación: ¿qué debo comprobar?
- ¿El contenedor está en marcha?
sudo docker psdebería mostrargladyscon el estadoUp. Si no aparece o se reinicia sin parar, lee sus registros consudo docker logs gladys --tail=100(consulta cómo descargar los registros de Gladys). - ¿El puerto 80 ya está ocupado? Gladys escucha en el puerto 80 de la máquina. Si otro servidor web (Apache, Nginx…) ya lo usa, Gladys no puede arrancar. Detén ese servidor o mueve Gladys a otro puerto: elimina el contenedor con
sudo docker rm -f gladys(tus datos en/var/lib/gladysassistantse conservan), vuelve a ejecutar el comando de instalación con-e SERVER_PORT=8080en lugar de-e SERVER_PORT=80y abrehttp://IP-DE-LA-MAQUINA:8080. - ¿Lo bloquea un cortafuegos? Si
ufwestá activado, abre el puerto que usa Gladys:sudo ufw allow 80/tcp(o8080/tcpsi lo has cambiado). - ¿
gladysassistant.localno se abre? Usa en su lugar la dirección IP de la máquina, como se explica más arriba.