Aller au contenu

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.fr et tous les *.cavalmanager.fr ré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)