Desde hace algún tiempo ya, estoy utilizando Uptime Kuma en Home Assistant para saber el estado del resto de servicios que tengo en mi HomeLab. Básicamente el uso que le doy es saber si está activo o no algún servicio y en función a eso algunas automatizaciones funcionan de una manera u otra.
Si quieres saber como integrar Uptime Kuma en Home Assistant te dejo este tutorial que hicimos hace algún tiempo para que aprendas a integrarlo:

Hace unos días me di cuenta de que la instancia de Uptime Kuma que tengo ejecutándose en un contenedor LXC no se estaba actualizando a la última versión. Al intentar actualizarla manualmente me encontré con un problema durante el proceso, así que he decidido documentar los pasos que seguí para resolverlo por si a alguien más le ocurre lo mismo.
El problema
La versión de mi Uptime Kuma era una 1.23.16 y por lo que entendí después, de la versión 1.x a la 2.x hay muchas migraciones de la base de datos.
Al intentar hacer la actualización de la 1.23.16 directamente a la última disponible que era la 2.2.1 tal y como explica la documentación oficial, me di cuenta de que la base de datos no arrancaba correctamente.
Me di cuenta de que estaba haciendo una migración con la base de datos:
Mar 11 12:16:31 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-21 [22.80%][3/11]
Mar 11 12:16:31 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-22 [22.85%][3/11]
Mar 11 12:16:31 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-23 [22.90%][3/11]
Mar 11 12:16:32 uptimekuma [DON'T STOP] Migrating monitor data 3 - 2025-11-24 [22.95%][3/11]
Mar 11 12:16:32 uptimekuma [DON'T STOP] Migrating monitor data 3 - 2025-11-25 [23.00%][3/11]
Mar 11 12:16:32 uptimekuma [DON'T STOP] Migrating monitor data 3 - 2025-11-26 [23.05%][3/11]
Mar 11 12:16:33 uptimekuma [DON'T STOP] Migrating monitor data 3 - 2025-11-27 [23.10%][3/11]
Mar 11 12:16:33 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-28 [23.15%][3/11]
Mar 11 12:16:33 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-29 [23.20%][3/11]
Mar 11 12:16:34 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-30 [23.25%][3/11]Pero que al rato desaparecía la migración y daba este error:
Mar 11 12:18:17 uptimekuma [SERVER] INFO: Connected to the database
Mar 11 12:18:17 uptimekuma [DB] WARN: Aggregate table migration is already in progress, or it was interrupted
Mar 11 12:18:17 uptimekuma [DB] ERROR: Database migration failed
Mar 11 12:18:17 uptimekuma [SERVER] ERROR: Failed to prepare your database: Aggregate table migration is already in progressAsí que decidí restaurar backup del contenedor en Proxmox y volver a empezar, esta vez más poco a poco y revisando bien todo el procedimiento.
Esta vez en vez de iniciar el servicio de systemD, lo que hice fue levantar la aplicación a mano usando npm:
npm startEste comando levanta la aplicación y en este momento me di cuenta de todo el procedimiento de la migración de la base de datos y el motivo del fallo:
2026-03-11T12:26:23+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-07 [28.10%][3/11]
2026-03-11T12:26:24+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-08 [28.15%][3/11]
2026-03-11T12:26:24+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-09 [28.20%][3/11]
2026-03-11T12:26:25+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-10 [28.25%][3/11]
2026-03-11T12:26:26+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-11 [28.30%][3/11]
2026-03-11T12:26:26+01:00 [DB] ERROR: Database migration failed
2026-03-11T12:26:26+01:00 [SERVER] ERROR: Failed to prepare your database:
SELECT DISTINCT DATE(time) AS date
FROM heartbeat
WHERE monitor_id = 4
ORDER BY date ASC
- SQLITE_CORRUPT: database disk image is malformedAquí entendí que la base de datos se encontraba corrupta, por lo que había que buscar una solución antes para resolver este problema.
La solución
La solución es sencilla: reparar la base de datos. Para ello tenemos que hacer lo siguiente antes de actualizar a la versión 2.0.0 de Uptime Kuma.
Paramos el servicio primero:
systemctl stop uptime-kuma.serviceLuego vamos al directorio donde se encuentra la instalación de la aplicación que si has usado los scripts de Proxmox el directorio suele ser /opt/uptime-kuma/data.
cd /opt/uptime-kuma/dataEn este directorio deberemos de tener una base de datos llamada kuma.db que es una base de datos en formato SQLite, por lo que tendremos que ejecutar los siguientes comandos para repararla:
sqlite3 kuma.db .dump > dump.sql
sqlite3 kuma-new.db < dump.sql
mv kuma.db kuma-original-corrupted.db
mv kuma-new.db kuma.dbTras estos comandos, ya podemos hacer la actualización a la versión 2.0.0 sin problemas con la migración de la base de datos.
Cómo actualizar de versión
Nos vamos al directorio donde se encuentra la aplicación instalada y hacer un fetch de las ramas disponibles del repositorio:
cd /opt/uptime-kuma/
git fetch --all --tags
Con el último comando obtendremos este resultado:
* [new tag] 1.23.14 1.23.14
* [new tag] 1.23.15 1.23.15
* [new tag] 1.23.16 1.23.16
* [new tag] 1.23.17 1.23.17
* [new tag] 2.0.0 2.0.0
...Nos posicionamos a la rama con la versión 2.0.0:
git checkout 2.0.0 --force Instalamos las dependencias y hacemos del prebuilt:
npm install --omit dev --no-audit
npm run download-dist Y antes de iniciar el servicio de nuevo de SystemD, iniciamos la aplicación a mano para revisar que la migración de la base de datos se completa correctamente:
npm startIniciará Uptime Kuma y la migración:
Welcome to Uptime Kuma
Your Node.js version: 22.20.0
2026-03-11T12:37:10+01:00 [SERVER] INFO: Env: production
2026-03-11T12:37:11+01:00 [SERVER] INFO: Uptime Kuma Version: 2.0.0
2026-03-11T12:37:11+01:00 [SERVER] INFO: Loading modules
2026-03-11T12:37:12+01:00 [SERVER] INFO: Creating express and socket.io instance
2026-03-11T12:37:12+01:00 [SERVER] INFO: Server Type: HTTP
2026-03-11T12:37:12+01:00 [SERVER] INFO: Data Dir: ./data/
2026-03-11T12:37:12+01:00 [DB] INFO: Database Type: sqlite
2026-03-11T12:37:12+01:00 [SERVER] INFO: Connected to the database
2026-03-11T12:37:12+01:00 [MIGRATION] INFO: Migration server is running on http://localhost:3001
2026-03-11T12:37:12+01:00 [DB] INFO: Migrating Aggregate Table
2026-03-11T12:37:12+01:00 [DB] INFO: Getting list of unique monitors
2026-03-11T12:37:13+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-04 [0.00%][1/11]
2026-03-11T12:37:13+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-05 [0.05%][1/11]
2026-03-11T12:37:14+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-06 [0.10%][1/11]
2026-03-11T12:37:14+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-07 [0.15%][1/11]
2026-03-11T12:37:15+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-08 [0.20%][1/11]
2026-03-11T12:37:15+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-09 [0.25%][1/11]Esperamos a que finalice, esto llevará tiempo, así que como siempre, aprovecha el tiempo para hacerte un café o achuchar a tu fiel amigo peludo.
Al cabo de un rato obtendremos el siguiente resultado:
2026-03-11T12:50:22+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-06 [100.00%][11/11]
2026-03-11T12:50:22+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-07 [100.00%][11/11]
2026-03-11T12:50:23+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-08 [100.00%][11/11]
2026-03-11T12:50:23+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-09 [100.00%][11/11]
2026-03-11T12:50:23+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-10 [100.00%][11/11]
2026-03-11T12:50:24+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-11 [100.00%][11/11]
2026-03-11T12:50:24+01:00 [DB] INFO: Clearing non-important heartbeats
2026-03-11T12:51:03+01:00 [DB] INFO: Aggregate Table Migration Completed
2026-03-11T12:51:03+01:00 [SERVER] INFO: Listening on 3001Ya tendremos la actualización finalizada y ya podremos parar el comando con Control + D e iniciar el servicio como normalmente:
systemctl start uptime-kumaComo actualizar el resto de versiones
En este punto, ya podemos saltar directamente a la última versión disponible, pero el procedimiento ya es parecido al que hemos realizado anteriormente y como recomienda hacerlo la documentación oficial:
cd /opt/uptime-kuma/
# Update from git
git fetch --all --tags
git checkout 2.2.1 --force
# Install dependencies and prebuilt
npm install --omit dev --no-audit
npm run download-distSi accedemos ahora a través del navegador, veremos que se ha actualizado la versión de nuestro Uptime Kuma!

Más sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.

Comentarios