Pérdida de cuenta después de actualización

Hola,

¿Es normal que después de la actualización me encuentre con una página « crear tu cuenta Gladys »?
Ya no tengo acceso a mi cuenta.

Hola @Olivier.L57,

He movido tu tema a la categoría correcta :slight_smile:

No te preocupes por el principio: una actualización de Gladys no elimina los datos. Si vuelves a la pantalla «Crear tu cuenta», generalmente es porque Gladys ya no encuentra su base de datos.

Lo que probablemente pasó

Con Docker, un contenedor es desechable: en cada actualización, el antiguo se elimina y se crea uno nuevo. Para que tus datos sobrevivan, deben almacenarse fuera del contenedor, en tu disco. Esa es la función de esta opción en el comando de instalación:

-v /var/lib/gladysassistant:/var/lib/gladysassistant

Si Gladys se inició sin esta opción, la base de datos estaba dentro del contenedor y desapareció con él durante la actualización.

¿Puedes verificar?

  1. ¿Instalaste Gladys con el comando oficial de la documentación? Installation avec Docker | Gladys Assistant
  2. ¿Puedes enviarme el resultado de estos comandos?
    • docker ps -a (para ver si el contenedor antiguo aún existe)
    • docker inspect --format '{{json .Mounts}}' gladys (para ver dónde Gladys almacena sus datos)
  3. ¿Cómo hiciste la actualización: automáticamente (Watchtower) o manualmente?

Las pistas para recuperar tus datos

  • Si el contenedor antiguo aún aparece en docker ps -a, tus datos pueden estar todavía dentro, y podremos recuperarlos. ¡No lo elimines!
  • Si tienes Gladys Plus, puedes restaurar tu última copia de seguridad directamente al crear la cuenta.

Si ninguna de las dos opciones se aplica, lo siento, pero no habrá forma de recuperar los datos. En ese caso, reinstala Gladys con el comando de la documentación y esto no volverá a ocurrir en las próximas actualizaciones.

Gracias por tu respuesta. Hice clic en actualizar y seguí el tutorial en línea con Docker para la instalación.

olivier@serveurgladys:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5ad05e4636a eclipse-mosquitto:2.0.15 « /docker-entrypoint.… » 25 minutes ago Up 25 minutes eclipse-mosquitto
2cb88417b8b2 gladysassistant/gladys:v5 « docker-entrypoint.s… » 25 minutes ago Up 4 minutes gladys
30566e574c77 koenkk/zigbee2mqtt:2.14.2 « docker-entrypoint.s… » 26 hours ago Up 26 hours gladys-z2m-zigbee2mqtt
9c7976f669c2 eclipse-mosquitto:2.0.15 « /docker-entrypoint.… » 26 hours ago Up 26 hours gladys-z2m-mqtt
56452c1aceff nickfedor/watchtower:latest « /watchtower --clean… » 28 hours ago Up 28 hours (healthy) 8080/tcp watchtower
75a86d7c6f69 nodered/node-red:5.0 « ./entrypoint.sh » 3 days ago Up 2 days (healthy) 0.0.0.0:1881->1880/tcp, [::]:1881->1880/tcp gladys-node-red

sudo docker inspect --format ‹ {{json .Mounts}} › gladys
[{« Type »:« bind »,« Source »:« /var/lib/gladysassistant »,« Destination »:« /var/lib/gladysassistant »,« Mode »:«  »,« RW »:true,« Propagation »:« rprivate »},{« Type »:« bind »,« Source »:« /var/run/docker.sock »,« Destination »:« /var/run/docker.sock »,« Mode »:«  »,« RW »:true,« Propagation »:« rprivate »}]

ls -la /var/lib/gladysassistant
total 1148
drwxr-xr-x 7 root root 4096 Oct 18 09:22 .
drwxr-xr-x 55 root root 4096 Oct 17 22:49 ..
drwxr-xr-x 8 root root 4096 Oct 22 16:06 external-integrations
-rw-r–r-- 1 root root 872448 Oct 17 20:42 gladys-production.db
-rw-r–r-- 1 root root 274432 Oct 17 20:29 gladys-production.duckdb
drwxr-xr-x 2 root root 4096 Oct 25 15:03 homekit
drwxr-xr-x 2 1883 1883 4096 Oct 18 06:09 mosquitto
drwxr-xr-x 4 olivier olivier 4096 Oct 21 16:23 node-red
drwxr-xr-x 4 root root 4096 Oct 18 09:22 zigbee2mqtt

¡Gracias por los comentarios, es muy útil!

Buenas noticias: tu base de datos sigue en tu disco :slightly_smiling_face: El archivo /var/lib/gladysassistant/gladys-production.db está ahí.

Sin embargo, dos cosas me intrigan:

  • este archivo no ha sido modificado desde el 17 de octubre a las 20:42, aunque Gladys escribe en él permanentemente cuando lo usa;
  • no hay un archivo gladys-production.db-wal al lado, aunque debería existir cuando Gladys está en funcionamiento.

Mi conclusión: tu contenedor Gladys no está utilizando este archivo. Probablemente le falta la variable SQLITE_FILE_PATH. Sin ella, Gladys guarda su base dentro del contenedor, que se elimina en cada actualización. De hecho, tu contenedor solo tiene 2 volúmenes, mientras que el comando actual de la documentación tiene 5: probablemente fue creado con otro comando, quizás alrededor del 17 de octubre?

Para confirmar, ¿puedes enviarme el resultado de:

sudo docker inspect --format '{{json .Config.Env}}' gladys

Si SQLITE_FILE_PATH no aparece en la lista, es eso.

Para recuperar tu base (si se confirma):

  1. Primero haz una copia de seguridad:

    sudo cp -a /var/lib/gladysassistant/gladys-production.db /var/lib/gladysassistant/gladys-production.db.bak
    sudo cp -a /var/lib/gladysassistant/gladys-production.duckdb /var/lib/gladysassistant/gladys-production.duckdb.bak
    
  2. Elimina el contenedor actual. Tus datos en el disco no se ven afectados:

    sudo docker stop gladys && sudo docker rm gladys
    
  3. Recrea el contenedor con el comando de la documentación (Installation avec Docker | Gladys Assistant), sin quitar nada. ¡Especialmente no la línea -e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db!

Gladys debería reiniciarse entonces con tu cuenta, tus dispositivos y tus escenas como estaban la noche del 17 de octubre.

Prefiero ser honesto: lo que hiciste entre el 17 de octubre y hoy estaba almacenado en el antiguo contenedor, que la actualización eliminó. Esas modificaciones están perdidas, a menos que tengas una copia de seguridad Gladys Plus más reciente. En ese caso, puedes restaurarla desde la pantalla de creación de cuenta.

Una vez que el contenedor se recrea correctamente, las próximas actualizaciones mantendrán tus datos.

~$ sudo docker inspect --format ‹ {{json .Config.Env}} › gladys
[« PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin »,« NODE_VERSION=24.22.1 »,« YARN_VERSION=1.22.22 »,« LD_LIBRARY_PATH=/lib »,« NODE_ENV=production »,« SERVER_PORT=80 »,« GLADYS_OFFICIAL_RELEASE_IMAGE=true »]

Gracias, está confirmado: SQLITE_FILE_PATH no está en la lista. Tu contenedor fue creado sin ninguna opción -e (también falta TZ), por lo que no fue creado con el comando de la documentación. Gladys almacenaba su base de datos dentro del contenedor, y la actualización la borró al recrear el contenedor.

Ahora podemos recrearlo correctamente para que utilice tu base de datos del 17 de octubre:

1. Copia de seguridad (por si acaso):

sudo cp -a /var/lib/gladysassistant/gladys-production.db /var/lib/gladysassistant/gladys-production.db.bak
sudo cp -a /var/lib/gladysassistant/gladys-production.duckdb /var/lib/gladysassistant/gladys-production.duckdb.bak

2. Eliminación del contenedor actual (tus archivos en /var/lib/gladysassistant no se verán afectados):

sudo docker stop gladys && sudo docker rm gladys

3. Creación del contenedor con el comando oficial:

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

4. Verificación: después de un minuto, ls -la /var/lib/gladysassistant debe mostrar un archivo gladys-production.db-wal y una fecha de modificación actualizada en gladys-production.db. Deberías poder iniciar sesión con tu cuenta habitual.

:warning: Si aún así te encuentras con la pantalla «Crear tu cuenta», no crees nada y vuelve a verme.

Lo que debes saber: encontrarás Gladys tal como estaba la noche del 17 de octubre. Según las fechas de tus carpetas, configuraste varias cosas después de esa fecha (Zigbee2MQTT, MQTT, integraciones externas…). Por lo tanto, no estarán configuradas en Gladys y tendrás que volver a hacerlas. Buena noticia, sin embargo: la carpeta zigbee2mqtt está en tu disco, por lo que tus dispositivos Zigbee ya emparejados deberían conservarse en Zigbee2MQTT. Normalmente, solo tendrás que reactivar la integración y volver a agregar los dispositivos en Gladys, sin volver a emparejarlos.

¡Lo siento por el problema! Una vez que el contenedor se recree con este comando, las actualizaciones no afectarán más tus datos.

No hay problema, puede servir a otros. Tuve principalmente problemas con un contenedor externo. Siempre y cuando Zigbee funcione.
Sigo en « /signup »

olivier@serveurgladys:~$ sudo cp -a /var/lib/gladysassistant/gladys-production.db /var/lib/gladysassistant/gladys-production.db.bak
olivier@serveurgladys:~$ sudo cp -a /var/lib/gladysassistant/gladys-production.duckdb /var/lib/gladysassistant/gladys-production.duckdb.bak
olivier@serveurgladys:~$ sudo docker stop gladys && sudo docker rm gladys
gladys
gladys
olivier@serveurgladys:~$ 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
8be09ef7542c877344fecfd3fdf6166d831c47ef0d463a02d4c83d9d07e87703
olivier@serveurgladys:~$ ls -la /var/lib/gladysassistant
total 2736
drwxr-xr-x 7 root root 4096 Oct 25 16:04 .
drwxr-xr-x 55 root root 4096 Oct 17 22:49 ..
drwxr-xr-x 8 root root 4096 Oct 22 16:06 external-integrations
-rw-r–r-- 1 root root 872448 Oct 17 20:42 gladys-production.db
-rw-r–r-- 1 root root 32768 Oct 25 16:04 gladys-production.db-shm
-rw-r–r-- 1 root root 440872 Oct 25 16:04 gladys-production.db-wal
-rw-r–r-- 1 root root 872448 Oct 17 20:42 gladys-production.db.bak
-rw-r–r-- 1 root root 274432 Oct 17 20:29 gladys-production.duckdb
-rw-r–r-- 1 root root 274432 Oct 17 20:29 gladys-production.duckdb.bak
drwxr-xr-x 2 root root 4096 Oct 25 15:03 homekit
drwxr-xr-x 2 1883 1883 4096 Oct 18 06:09 mosquitto
drwxr-xr-x 4 olivier olivier 4096 Oct 21 16:23 node-red
drwxr-xr-x 4 root root 4096 Oct 18 09:22 zigbee2mqtt
olivier@serveurgladys:~$

¡Gracias por el feedback! Gladys ahora usa correctamente la base de datos en tu disco: el problema principal está resuelto y las próximas actualizaciones conservarán tus datos.

Gladys puede haber necesitado unos segundos para arrancar. ¿Podrías esperar un poco y luego abrir http://<IP-de-tu-servidor>/login?

  • Si llegas a la página de inicio de sesión, inicia sesión con tus credenciales habituales: encontrarás a Gladys como estaba el 17 de octubre.
  • Si aún te redirige a «Crear tu cuenta», significa que la base de datos del 17 de octubre no contiene ninguna cuenta. Probablemente se creó durante un primer lanzamiento de Gladys, sin que fueras más allá. Luego, el contenedor se recreó sin las opciones correctas, quizás durante tus manipulaciones con el otro contenedor. Tu cuenta y tu configuración entonces se guardaron dentro del contenedor y desaparecieron con él durante la actualización. Lo siento, pero quedan dos posibilidades:
    • si tienes Gladys Plus, puedes restaurar tu última copia de seguridad desde la pantalla de creación de cuenta;
    • de lo contrario, tendrás que crear tu cuenta de nuevo. Todo lo que gira alrededor de Gladys está intacto (Zigbee2MQTT con tus dispositivos emparejados, Node-RED…). Una vez que la integración Zigbee2MQTT se reactiva en Gladys, tus dispositivos deberían volver a aparecer sin tener que emparejarlos de nuevo.

¡Gracias por documentar todo esto, será útil para otros!

He tenido que recrear una cuenta.
¿Qué opción elijo para la configuración de Z2M?
-Instalación desde Gladys
-Conectar a una instalación existente

Deberías elegir la opción que elegiste antes.