Runbook — NPM (Nginx Proxy Manager) down¶
Sévérité : Critique (TOUS les sites inaccessibles)
Temps de résolution attendu : 5 à 20 min
Symptômes¶
cavalmanager.fr,admin.cavalmanager.fret tous les*.cavalmanager.frrépondent timeout/502- Cloudflare affiche "Origin server unreachable"
- Uptime Kuma alerte sur TOUS les checks d'un coup
Diagnostic immédiat¶
```bash
Le serveur NPM (.117) répond ?¶
ping -c 2 192.168.1.117
SSH¶
ssh lcdm@192.168.1.117 'uptime; sudo docker ps --filter name=nginx-proxy-manager' ```
Procédure¶
Cas 1 : Container NPM crashé¶
```bash ssh lcdm@192.168.1.117 sudo docker logs nginx-proxy-manager-app-1 --tail 50 sudo docker compose -f /opt/npm/docker-compose.yml restart
Attendre 30s puis re-tester¶
curl -I https://cavalmanager.fr ```
Cas 2 : Configuration Nginx invalide¶
```bash sudo docker exec nginx-proxy-manager-app-1 nginx -t
Si erreur : NPM web UI → Proxy Hosts → trouver l'host fautif → désactiver¶
Reload : sudo docker exec nginx-proxy-manager-app-1 nginx -s reload¶
```
Cas 3 : VM .117 down complètement¶
- Proxmox UI → VM npm → Console NoVNC → vérifier l'état
- Stop/Start si nécessaire
Cas 4 : Disque NPM plein (logs énormes)¶
```bash ssh lcdm@192.168.1.117 'sudo du -sh /opt/npm/data/logs/'
Si >1 Go : truncate les access.log¶
sudo find /opt/npm/data/logs -name "*.log" -size +100M -exec truncate -s 0 {} \; ```
Vérification¶
bash
for host in cavalmanager.fr admin.cavalmanager.fr demo.cavalmanager.fr; do
echo "$host : $(curl -sL -o /dev/null -w '%{http_code}' https://$host)"
done
Communication¶
Si downtime > 15 min : poster sur https://cavalmanager.fr/etat-des-services (manuel via admin) et envoyer email aux clients depuis admin → Tenants → bulk email.
Prévention¶
- Snapshot Proxmox automatique de .117 chaque semaine (configurer si pas fait)
- Le mois prochain : étudier déploiement NPM HA (2 instances + VIP keepalived)