Reprise après panne
Diagnostic rapide (30 secondes)
Section intitulée « Diagnostic rapide (30 secondes) »# État généraluptime && free -h && df -h /
# Containersdocker ps -a --format "table {{.Names}}\t{{.Status}}"
# Erreurs récentesjournalctl -p err -n 10 --no-pagerScénarios courants
Section intitulée « Scénarios courants »Un site ne répond plus (502 Bad Gateway)
Section intitulée « Un site ne répond plus (502 Bad Gateway) »Symptôme : Le navigateur affiche “502 Bad Gateway” ou “Service Unavailable”.
Cause probable : Le container est arrêté ou a crashé.
# 1. Vérifier l'état du containerdocker ps -a | grep <nom>
# 2. Voir les logs d'erreurdocker logs <container> --tail 50
# 3. Redémarrercd /docker/<projet>docker compose restart
# 4. Si le problème persiste, rebuilderdocker compose up -d --buildUn container est en statut “Restarting”
Section intitulée « Un container est en statut “Restarting” »Symptôme : docker ps affiche Restarting (1) 5 seconds ago.
Cause probable : Erreur au démarrage (variable manquante, port occupé, migration échouée).
# Voir l'erreur exactedocker logs <container> --tail 30
# Solutions fréquentes :# → Variable .env manquante : vérifier le fichier .env# → Port occupé : docker ps -a (un ancien container bloque le port)# → Erreur migration Laravel : entrer dans le container et lancer manuellementdocker exec -it kamctrl shphp artisan migrate --forceCertificat SSL expiré / Invalid certificate
Section intitulée « Certificat SSL expiré / Invalid certificate »Symptôme : Le navigateur affiche “Votre connexion n’est pas sécurisée”.
Cause : Traefik n’a pas pu renouveler le certificat Let’s Encrypt.
# Vérifier les logs Traefikdocker logs traefik-lr9j-traefik-1 --since 2h 2>&1 | grep -i "cert\|renew\|error"
# Forcer le renouvellement (supprimer le fichier acme.json — ATTENTION)# ⚠️ Cela supprime TOUS les certificats, ils seront régénérés automatiquementdocker exec traefik-lr9j-traefik-1 rm /letsencrypt/acme.jsondocker compose -f /docker/traefik-lr9j/docker-compose.yml restartn8n ne répond plus
Section intitulée « n8n ne répond plus »# Vérifier le containerdocker ps | grep n8ndocker logs n8n-rkaf-n8n-1 --tail 30
# Redémarrercd /docker/n8n-rkafdocker compose restart
# L'IP interne peut avoir changé après redémarragedocker inspect n8n-rkaf-n8n-1 --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'rclone-agent ne répond plus
Section intitulée « rclone-agent ne répond plus »# Statut systemdsystemctl status rclone-agent
# Logsjournalctl -u rclone-agent --since "1 hour ago" --no-pager
# Redémarrersudo systemctl restart rclone-agent
# Vérifier qu'il répondcurl -s http://localhost:<PORT_AGENT>/health \ -H "Authorization: Bearer <TOKEN>"WF-B en erreur répétée
Section intitulée « WF-B en erreur répétée »# 1. Vérifier les dernières exécutionsN8N_IP=$(docker inspect n8n-rkaf-n8n-1 --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}')curl -s "http://${N8N_IP}:5678/api/v1/executions?workflowId=<ID_WF_B>&limit=5" \ -H "X-N8N-API-KEY: <TOKEN>"
# 2. Vérifier rclone-agentcurl -s http://localhost:<PORT_AGENT>/health -H "Authorization: Bearer <TOKEN>"
# 3. Relancer rclone-agent si nécessairesudo systemctl restart rclone-agentDisque plein
Section intitulée « Disque plein »# Identifier ce qui prend de la placedf -h /docker system df
# Nettoyage prioritaire (safe)docker builder prune -f
# Nettoyage plus agressif (supprime images non utilisées)docker system prune -f
# Logs Docker volumineuxdocker system events --since '24h' | grep -i sizeLe VPS est inaccessible (SSH KO)
Section intitulée « Le VPS est inaccessible (SSH KO) »Utilise la console KVM de ton hébergeur (Hostinger VPS ou OVH) pour accéder au serveur même sans SSH. Depuis cette console :
# Vérifier le service SSHsystemctl status ssh
# Vérifier le firewallufw status
# Redémarrer SSH si nécessairesudo systemctl restart sshProcédure de reprise complète (VPS perdu)
Section intitulée « Procédure de reprise complète (VPS perdu) »Si le VPS est définitivement perdu et qu’il faut tout recréer :
- Créer un nouveau VPS (Linux (Ubuntu LTS))
- Installer Docker :
curl -fsSL https://get.docker.com | sh - Créer le réseau :
docker network create traefik-public - Cloner tous les repos depuis GitHub (sidy-coder ou Sidking01)
- Recréer les fichiers secrets (
.env, tokens rclone, etc.) - Démarrer dans l’ordre : traefik → n8n → autres services
- Pointer les DNS vers la nouvelle IP
- Vérifier chaque service