Actualiza Uptime Kuma de la versión 1.x a 2.x y aprende cómo resolver los posibles errores que pueden aparecer durante el proceso de actualización.


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:

Integra Uptime Kuma en Home Assistant
Supervisa el estado de tus servicios en Home Assistant con Uptime Kuma y recibe alertas ante fallos para mejorar la monitorización y automatización.

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 progress

Así 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 start

Este 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 malformed

Aquí 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.service

Luego 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/data

En 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.db

Tras 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 start

Iniciará 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 3001

Ya tendremos la actualización finalizada y ya podremos parar el comando con Control + D e iniciar el servicio como normalmente:

systemctl start uptime-kuma

Como 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-dist

Si accedemos ahora a través del navegador, veremos que se ha actualizado la versión de nuestro Uptime Kuma!


Más sobre ./voidNull

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación