Aller au contenu

Reprise après panne

Fenêtre de terminal
# État général
uptime && free -h && df -h /
# Containers
docker ps -a --format "table {{.Names}}\t{{.Status}}"
# Erreurs récentes
journalctl -p err -n 10 --no-pager

Symptôme : Le navigateur affiche “502 Bad Gateway” ou “Service Unavailable”.

Cause probable : Le container est arrêté ou a crashé.

Fenêtre de terminal
# 1. Vérifier l'état du container
docker ps -a | grep <nom>
# 2. Voir les logs d'erreur
docker logs <container> --tail 50
# 3. Redémarrer
cd /docker/<projet>
docker compose restart
# 4. Si le problème persiste, rebuilder
docker compose up -d --build

Symptôme : docker ps affiche Restarting (1) 5 seconds ago.

Cause probable : Erreur au démarrage (variable manquante, port occupé, migration échouée).

Fenêtre de terminal
# Voir l'erreur exacte
docker 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 manuellement
docker exec -it kamctrl sh
php artisan migrate --force

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.

Fenêtre de terminal
# Vérifier les logs Traefik
docker 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 automatiquement
docker exec traefik-lr9j-traefik-1 rm /letsencrypt/acme.json
docker compose -f /docker/traefik-lr9j/docker-compose.yml restart

Fenêtre de terminal
# Vérifier le container
docker ps | grep n8n
docker logs n8n-rkaf-n8n-1 --tail 30
# Redémarrer
cd /docker/n8n-rkaf
docker compose restart
# L'IP interne peut avoir changé après redémarrage
docker inspect n8n-rkaf-n8n-1 --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'

Fenêtre de terminal
# Statut systemd
systemctl status rclone-agent
# Logs
journalctl -u rclone-agent --since "1 hour ago" --no-pager
# Redémarrer
sudo systemctl restart rclone-agent
# Vérifier qu'il répond
curl -s http://localhost:<PORT_AGENT>/health \
-H "Authorization: Bearer <TOKEN>"

Fenêtre de terminal
# 1. Vérifier les dernières exécutions
N8N_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-agent
curl -s http://localhost:<PORT_AGENT>/health -H "Authorization: Bearer <TOKEN>"
# 3. Relancer rclone-agent si nécessaire
sudo systemctl restart rclone-agent

Fenêtre de terminal
# Identifier ce qui prend de la place
df -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 volumineux
docker system events --since '24h' | grep -i size

Utilise la console KVM de ton hébergeur (Hostinger VPS ou OVH) pour accéder au serveur même sans SSH. Depuis cette console :

Fenêtre de terminal
# Vérifier le service SSH
systemctl status ssh
# Vérifier le firewall
ufw status
# Redémarrer SSH si nécessaire
sudo systemctl restart ssh

Si le VPS est définitivement perdu et qu’il faut tout recréer :

  1. Créer un nouveau VPS (Linux (Ubuntu LTS))
  2. Installer Docker : curl -fsSL https://get.docker.com | sh
  3. Créer le réseau : docker network create traefik-public
  4. Cloner tous les repos depuis GitHub (sidy-coder ou Sidking01)
  5. Recréer les fichiers secrets (.env, tokens rclone, etc.)
  6. Démarrer dans l’ordre : traefik → n8n → autres services
  7. Pointer les DNS vers la nouvelle IP
  8. Vérifier chaque service