# HUB FRATE — Recovery Rapide

Ce document sert de procédure de secours locale en cas d'incident.

---

## 1. Symptômes fréquents

**Cas A — Le HUB est allumé mais inaccessible**
Causes possibles :
- Tunnel WireGuard absent ou tombé
- Service SSH cassé
- UFW (Pare-feu) trop restrictif
- Réseau local (Box internet) modifié

**Cas B — Le VPN fonctionne mais les services ne répondent pas**
Causes possibles :
- Conteneurs Docker arrêtés
- Pi-hole ou NPM en erreur (Crash)
- Problème de port (Bind address) ou de daemon Docker

**Cas C — Le HUB remonte mal dans le monitoring central**
Causes possibles :
- Timer Systemd du Heartbeat non exécuté
- Problème d'accès à l'API du VPS (Réseau)
- Tunnel WireGuard dégradé

---

## 2. Check rapide minimum

**Vérifier WireGuard :**
```bash
sudo wg
ip a show wg0
ping -c 2 10.10.10.1
```
*(Si `wg0` n'existe pas ou ne ping plus le VPS, le problème est probablement lié au réseau, au provisioning ou à la configuration WireGuard).*

**Vérifier Docker et les conteneurs :**
```bash
systemctl status docker --no-pager
docker compose -f /opt/hub/core/compose/core/docker-compose.yml ps
```

**Vérifier les services locaux (Script de santé) :**
```bash
/opt/hub/scripts/hub_status.sh
```

---

## 3. Relancer les services Docker

Si les conteneurs sont arrêtés ou dégradés :
```bash
cd /opt/hub/core/compose/core
docker compose up -d
docker compose ps
```

Si un service reste `unhealthy`, consultez ses logs :
```bash
docker logs pihole --tail 100
docker logs npm --tail 100
```

---

## 4. Réappliquer le pare-feu du HUB

En cas de doute sur UFW (Attention : ce script suppose que `wg0` existe, ne pas le lancer à l'aveugle si le tunnel n'est pas monté) :
```bash
sudo /opt/hub/scripts/ufw_apply.sh
sudo ufw status verbose
```

---

## 5. Rejouer le provisioning WireGuard

Si le tunnel est cassé et que le token d'installation est disponible :
```bash
sudo /opt/hub/scripts/wg_provision.sh <TOKEN>
```
*(À utiliser avec prudence, uniquement si le diagnostic confirme un problème critique WireGuard).*

---

## 6. Vérifier la télémétrie / Heartbeat

**Vérifier les unités systemd liées au heartbeat :**
```bash
systemctl list-timers | grep hub-heartbeat
systemctl status hub-heartbeat.timer --no-pager
systemctl status hub-heartbeat.service --no-pager
```

---

## 7. Rollback (Retour Arrière)

Si une mise à jour récente (Upgrade) a dégradé le Hub, vous pouvez revenir instantanément à la version stable précédente. Le rollback préserve vos données et votre connexion WireGuard.

**Lancer le retour arrière :**
```bash
sudo /opt/hub/scripts/hub-rollback.sh
```
*(Le script sélectionnera automatiquement la release précédente. Vous pouvez aussi cibler une version : `sudo /opt/hub/scripts/hub-rollback.sh 2.0.2`. Pour vérifier les versions disponibles avant, tapez : `sudo /opt/hub/scripts/hub-list-releases.sh`).*

---

## 8. Crash Majeur (Le HUB est totalement cassé)

Les dossiers critiques à préserver ou restaurer sont :
- `/opt/hub/`
- `/etc/`

Après restauration complète du dossier `/opt/hub/`, relancez la stack Docker :
```bash
cd /opt/hub/core/compose/core
docker compose up -d
```

---

## 9. Escalade (Diagnostic côté VPS)

Si le HUB semble réseau-sain mais ne fonctionne pas, le problème vient potentiellement de l'API Centrale.
Connectez-vous au VPS et lancez ces vérifications :

**1. Vérifier que le service tourne :**
```bash
systemctl status provision-api --no-pager
```

**2. Vérifier la santé de l'API (Ping interne) :**
```bash
curl http://127.0.0.1:8000/health
```

**3. Consulter les logs en temps réel pour traquer l'erreur :**
```bash
journalctl -u provision-api -f
```
---