*(Méthode basée sur l’installation via le script communautaire Proxmox : [https://community-scripts.github.io/ProxmoxVE/scripts?id=uptimekuma](https://community-scripts.github.io/ProxmoxVE/scripts?id=uptimekuma))*

Lorsque Uptime Kuma rencontre des problèmes de démarrage, des erreurs dans la base SQLite, ou des comportements anormaux après une mise à jour, il peut être nécessaire d’effectuer une série de vérifications et de corrections. Le guide ci-dessous détaille les étapes recommandées pour diagnostiquer et réparer votre instance Uptime Kuma tout en minimisant les risques de perte de données.

---

## 1. Arrêt du service Uptime Kuma

Avant toute manipulation sur les fichiers de données, il est indispensable d’arrêter correctement le service :

```bash
systemctl stop uptime-kuma
```

L’arrêt garantit que la base SQLite ne subit aucune écriture pendant la maintenance. Sans cela, on risque d’aggraver les corruptions ou de provoquer des pertes de données.

---

## 2. Accéder au dossier de l’application

Le script communautaire installe généralement Uptime Kuma dans `/opt/uptime-kuma` :

```bash
cd /opt/uptime-kuma
```

Ce répertoire contient le code de Kuma ainsi que le dossier `data`, qui renferme toutes les données utilisateur, les paramètres, les historiques de monitoring et la base de données `kuma.db`.

---

## 3. Sauvegarde des données avant intervention

Avant toute réparation, il est impératif de créer une copie de la base SQLite :

```bash
cp -r data data-backup-$(date +%Y%m%d)
```

Cette sauvegarde permet de revenir en arrière en cas de problème.
Elle inclut notamment :

* la base de données `kuma.db`
* les historiques de monitoring
* les configurations des sondes
* les paramètres de l’interface

⚠️ **Ne jamais sauter cette étape**, surtout si vous modifiez la base à la main.

---

## 4. Vérification de l’intégrité de la base SQLite

On se rend ensuite dans le dossier des données :

```bash
cd data/
```

Puis on effectue une vérification complète :

```bash
sqlite3 kuma.db "PRAGMA integrity_check;"
```

Cette commande retourne :

* **ok** → la base est saine
* un ou plusieurs messages d’erreur → corruption ou index endommagé

Selon le résultat, il faudra peut-être appliquer une des corrections suivantes.

---

## 5. Suppression d’un paramètre problématique dans la base

Certaines versions d’Uptime Kuma ont rencontré un problème lié à l’entrée `migrateAggregateTableState` dans la table `setting`.
Si cette clé est corrompue ou mal migrée, elle peut empêcher le service de démarrer.

La correction consiste à supprimer cette entrée :

```bash
sqlite3 kuma.db "DELETE FROM setting WHERE key = 'migrateAggregateTableState';"
```

Cette action force Uptime Kuma à recréer proprement l’état de migration au prochain démarrage.

---

## 6. Solution extrême : vider toute la table `heartbeat`

Si les problèmes concernent uniquement les historiques (table heartbeat corrompue), une solution radicale consiste à vider la table :

```bash
sqlite3 kuma.db "DELETE FROM heartbeat;"
```

⚠️ Cette commande supprime **tout l’historique des sondes**, mais ne touche pas aux sondes ni aux paramètres.
À utiliser uniquement en dernier recours si :

* la vérification SQLite échoue
* Uptime Kuma ne démarre plus
* l’historique est corrompu

---

## 7. Redémarrage du service

Une fois les corrections effectuées :

```bash
systemctl start uptime-kuma
```

Si la base est correcte, Uptime Kuma devrait redémarrer normalement.

---

## 8. Consultation des journaux pour valider les corrections

Pour suivre en temps réel les messages du service et détecter d’éventuelles anomalies persistantes :

```bash
journalctl -u uptime-kuma -f
```

Points à surveiller dans les logs :

* erreurs SQLite
* migrations bloquées
* permissions incorrectes
* modules Node.js manquants
* services stoppés subitement

Les journaux permettent de confirmer que la base est stable et que le service démarre correctement.
