Table of Contents
- Actualización
- Estrategia de Versionado
- Actualización Manual
- Actualización Automática (Watchtower)
- Rollback (Volver a Versión Anterior)
- Actualización a Nueva Versión Mayor (v1 → v2)
- Verificación Post-Actualización
- Problemas Comunes
- Base de datos corrupta tras actualización
- Contenedor no inicia tras actualización
- Monitores se marcan como "down" tras actualización
- Notificaciones de Actualización
- Estrategia Recomendada
- Siguiente Paso
Actualización
Guía para mantener Uptime Kuma actualizada de forma segura.
Estrategia de Versionado
Uptime Kuma usa versionado semántico: MAJOR.MINOR.PATCH
Tags Docker:
latest: Última versión (no recomendado en producción)2: Última versión 2.x (recomendado)2.0: Última versión 2.0.x2.0.2: Versión específica
Recomendación: Usar tag 2 para recibir actualizaciones automáticas dentro de v2.x (compatibles).
Actualización Manual
1. Backup Previo (CRÍTICO)
# Backup base de datos
docker compose exec uptime-kuma sqlite3 /app/data/kuma.db ".backup /app/data/kuma-pre-update.db"
# Copiar al host
docker compose cp uptime-kuma:/app/data/kuma-pre-update.db ./backup/kuma-$(date +%Y%m%d)-pre-update.db
2. Pull Nueva Imagen
cd /path/to/uptime-kuma
docker compose pull uptime-kuma
Salida esperada:
Pulling uptime-kuma ... done
3. Recrear Contenedor
docker compose up -d uptime-kuma
Docker Compose:
- Detiene contenedor actual
- Crea nuevo contenedor con imagen actualizada
- Mantiene volumen de datos (no se pierde nada)
4. Verificar
# Ver logs
docker compose logs -f uptime-kuma
# Verificar versión
docker compose exec uptime-kuma cat /app/package.json | grep version
Logs esperados:
✅ Server is ready
Listening on http://0.0.0.0:3001
5. Probar Acceso
- Navegar a
https://uptime.example.com - Login
- Verificar que monitores funcionan
- Verificar notificaciones activas
Actualización Automática (Watchtower)
Watchtower monitoriza cambios en imágenes Docker y actualiza contenedores automáticamente.
Configuración
Añadir a docker-compose.yml:
services:
uptime-kuma:
# ... configuración existente ...
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower-uptime-kuma
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_CLEANUP=true # Eliminar imágenes antiguas
- WATCHTOWER_INCLUDE_STOPPED=false
- WATCHTOWER_MONITOR_ONLY=false
- WATCHTOWER_SCHEDULE=0 0 4 * * * # 4 AM diario
- WATCHTOWER_NOTIFICATIONS=email
- WATCHTOWER_NOTIFICATION_EMAIL_FROM=watchtower@example.com
- WATCHTOWER_NOTIFICATION_EMAIL_TO=admin@example.com
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=tu_email@gmail.com
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password
command: uptime-kuma # Solo monitorizar uptime-kuma
Desplegar:
docker compose up -d watchtower
Horario de Actualización
Formato cron: segundos minutos horas día_mes mes día_semana
Ejemplos:
# Diario a las 4 AM
WATCHTOWER_SCHEDULE=0 0 4 * * *
# Cada lunes a las 3 AM
WATCHTOWER_SCHEDULE=0 0 3 * * MON
# Cada 12 horas
WATCHTOWER_SCHEDULE=0 0 */12 * * *
Rollback (Volver a Versión Anterior)
Si actualización causa problemas:
Opción 1: Restaurar desde Backup
# Detener
docker compose stop uptime-kuma
# Restaurar base de datos
docker compose cp ./backup/kuma-pre-update.db uptime-kuma:/app/data/kuma.db
# Reiniciar
docker compose start uptime-kuma
Opción 2: Usar Versión Específica
Editar docker-compose.yml:
services:
uptime-kuma:
image: louislam/uptime-kuma:2.0.1 # Versión específica anterior
Desplegar:
docker compose pull
docker compose up -d uptime-kuma
Actualización a Nueva Versión Mayor (v1 → v2)
⚠️ Importante: Actualizaciones mayores pueden tener cambios incompatibles.
Antes de Actualizar
- Leer Changelog: GitHub Releases
- Backup completo
- Probar en entorno de desarrollo primero
Proceso
# Backup
docker compose exec uptime-kuma sqlite3 /app/data/kuma.db ".backup /tmp/kuma-v1.db"
docker compose cp uptime-kuma:/tmp/kuma-v1.db ./backup/
# Cambiar a v2
nano docker-compose.yml
# image: louislam/uptime-kuma:2
# Actualizar
docker compose pull
docker compose up -d uptime-kuma
# Verificar logs para errores de migración
docker compose logs -f uptime-kuma
Verificación Post-Actualización
Checklist
- ✅ Uptime Kuma inicia sin errores
- ✅ Login funciona
- ✅ Monitores siguen activos
- ✅ Notificaciones funcionan (enviar test)
- ✅ Status Pages accesibles
- ✅ WebSockets funcionan (actualización en tiempo real)
Verificar Base de Datos
# Integridad
docker compose exec uptime-kuma sqlite3 /app/data/kuma.db "PRAGMA integrity_check;"
# Debe devolver: ok
Verificar Versión
# Desde Docker
docker compose exec uptime-kuma cat /app/package.json | grep version
# O desde UI
# Settings → About → Version
Problemas Comunes
Base de datos corrupta tras actualización
Síntoma: Error al iniciar, monitores desaparecen.
Solución:
# Restaurar desde backup
docker compose stop uptime-kuma
docker compose cp ./backup/kuma-pre-update.db uptime-kuma:/app/data/kuma.db
docker compose start uptime-kuma
Contenedor no inicia tras actualización
Ver logs:
docker compose logs uptime-kuma
Errores comunes:
EACCES: permission denied→ Permisos del volumendocker compose exec uptime-kuma chown -R 1000:1000 /app/dataDatabase locked→ Asegurar que no hay múltiples contenedoresdocker ps -a | grep uptime-kuma docker rm -f <container_id_antiguo>
Monitores se marcan como "down" tras actualización
Causa: Cambio en lógica de checks (raro).
Solución:
- Editar monitor problemático
- Click en Test
- Ajustar configuración si necesario
- Save
Notificaciones de Actualización
Uptime Kuma NO notifica automáticamente cuando hay actualizaciones.
Alternativas:
1. Watchtower con Notificaciones
(Ver sección Actualización Automática)
2. Monitorizar GitHub Releases
Usar servicio como:
- Newreleases.io - Notificaciones de releases GitHub
- RSS Feed - Suscribirse con lector RSS
3. Docker Hub Webhooks
Configurar webhook en Docker Hub que envíe notificación cuando louislam/uptime-kuma:2 se actualiza.
Estrategia Recomendada
Producción:
- Tag:
2(actualizaciones automáticas de parches/minor) - Watchtower: Deshabilitado (actualizaciones manuales programadas)
- Backup: Automático diario
- Testing: Probar actualizaciones en entorno dev primero
Desarrollo/Testing:
- Tag:
latest - Watchtower: Habilitado
- Backup: Antes de actualización manual
Siguiente Paso
Continúa con Solución de Problemas para resolver errores comunes.