Aller au contenu

Alert-Parent — Runbook : Site Down

Procédure à suivre quand Alert-Parent est inaccessible.

Étape 1 : Identifier le problème (2 min)

ssh root@IP_DU_VPS

# Le VPS répond-il ?
# Si vous ne pouvez pas SSH → problème réseau/hébergeur → contacter Hostinger

# Les conteneurs tournent ?
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -E "backend|frontend"

Étape 2 : Vérifier les conteneurs (2 min)

cd /root/projects/alert-parent/alert-parent-backend

# Si le backend est arrêté ou en restart loop :
docker compose logs backend --tail 50

Si le conteneur ne tourne pas → Étape 3 Si le conteneur tourne mais le site est inaccessible → Étape 4

Étape 3 : Redémarrer le service (2 min)

cd /root/projects/alert-parent/alert-parent-backend
docker compose up -d
curl http://127.0.0.1:5011/health

Si ça marche → Fin. Investiguer la cause root plus tard. Si le conteneur restart en boucle → lire les logs, probablement un problème de .env ou MongoDB.

Étape 4 : Vérifier Nginx (2 min)

Nginx tourne comme conteneur Docker :

# Nginx tourne ?
docker ps | grep nginx

# Test direct du backend (bypass Nginx)
curl http://127.0.0.1:5011/health

# Si le backend répond mais pas via le domaine → problème Nginx
docker exec nginx nginx -t           # Tester la config
docker exec nginx nginx -s reload    # Recharger

# Si Nginx ne tourne pas
docker start nginx

Étape 5 : Vérifier MongoDB Atlas (2 min)

curl -s http://127.0.0.1:5011/health | python3 -m json.tool

Si mongodb.status: "error" :

  1. Aller sur cloud.mongodb.com
  2. Vérifier que le cluster est UP
  3. Vérifier que l'IP du VPS est dans Network Access > IP Whitelist
  4. Vérifier que le .env n'est pas vide :
    cat /root/projects/alert-parent/alert-parent-backend/.env | wc -l
    

Étape 6 : Rollback (5 min)

Si le problème est lié au dernier déploiement :

cd /root/projects/alert-parent/alert-parent-backend

# Lister les images disponibles
docker images ghcr.io/epitechafrik/alert-parent-backend --format "table {{.Tag}}\t{{.CreatedAt}}"

# Rollback vers une version précédente
./scripts/rollback.sh sha-XXXXXXX

# Vérifier
curl -s http://127.0.0.1:5011/health | python3 -m json.tool

Étape 7 : Escalader

Si rien ne fonctionne après 15 minutes :

  1. Documenter ce que vous avez essayé
  2. Contacter YemalinModesteyemalin1.agbangla@epitech.eu
  3. Vérifier les services externes :
  4. MongoDB Atlas : cloud.mongodb.com
  5. Resend : resend.com/dashboard
  6. DNS : nslookup api.epitools.bj
  7. Hostinger : hpanel.hostinger.com

Aide-mémoire

Service Port local Vérification
Backend 127.0.0.1:5011 curl http://127.0.0.1:5011/health
Frontend 127.0.0.1:3004 curl http://127.0.0.1:3004
Chemin VPS Projet
/root/projects/alert-parent/alert-parent-backend Backend
/root/projects/alert-parent/alert-parent-frontend Frontend
/root/projects/nginx-config/devops-epiapp/sites-enabled/ Nginx