4.8 KiB
Guide de Reprise d'Activité (Disaster Recovery Playbook)
Procédure pas-à-pas en cas de crash total du serveur principal (
192.168.1.151)
🎯 Objectif
Ce document décrit comment restaurer l'intégralité de la plateforme SaaS Wordly.art (Base de données active, configurations secrètes .env et services Docker) sur un nouveau serveur de secours si le serveur principal tombe en panne complète.
📁 Fonctionnement de la sauvegarde DR (Disaster Recovery)
Le script de reprise d'activité disaster-recovery.sh génère une archive compressée contenant l'intégralité du système à restaurer :
- La base de données active (PostgreSQL ou SQLite).
- Le fichier de configuration de production
.env(contenant vos clés API Stripe, OpenAI, DeepL, etc.). - Le fichier
docker-compose.ymlet ses variantes. - Le dossier
docker/contenant toutes les configurations Prometheus, Grafana, Nginx, etc.
Toutes ces archives sont stockées sur votre NAS à l'abri des pannes matérielles du serveur local : /mnt/nas-backups/wordly/dr/.
🛠️ Étape 1 : Automatisation de la sauvegarde complète (A faire aujourd'hui)
Pour que la sauvegarde Disaster Recovery s'exécute automatiquement chaque nuit à 03h30 :
- Connectez-vous en SSH sur votre serveur principal (
192.168.1.151). - Ouvrez le planificateur de tâches (cron) :
crontab -e - Ajoutez la ligne suivante tout à la fin du fichier :
30 3 * * * /opt/wordly/scripts/disaster-recovery.sh --backup >> /var/log/wordly-dr-backup.log 2>&1 - Sauvegardez et quittez. Désormais, une archive complète de restauration sera créée et envoyée sur votre NAS chaque nuit, avec une rétention automatique de 14 jours.
🚨 Étape 2 : Procédure de restauration (En cas de crash du serveur)
Si le serveur 192.168.1.151 est indisponible et que vous devez remonter le SaaS sur une nouvelle machine (ex : 192.168.1.152), suivez ces étapes :
2.1 Préparation de la nouvelle machine
- Installez Docker et Docker Compose sur le nouveau serveur :
curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER && newgrp docker - Créez le dossier du projet et clonez le repository (ou copiez les fichiers depuis le NAS) :
git clone -b production-deployment https://gitea.parsanet.org/sepehr/office_translator.git /opt/wordly cd /opt/wordly
2.2 Monter le NAS sur le nouveau serveur
Pour que le nouveau serveur accède aux sauvegardes stockées sur votre NAS :
- Installez l'utilitaire de montage :
sudo apt install cifs-utils -y sudo mkdir -p /mnt/nas-backups/wordly - Créez le fichier de credentials :
sudo tee /etc/nas-credentials <<EOF username=wordly-backup password=MOT_DE_PASSE_NAS domain=WORKGROUP EOF sudo chmod 600 /etc/nas-credentials - Montez le NAS temporairement pour la restauration (ou via
/etc/fstabpour le rendre persistant) :sudo mount -t cifs -o credentials=/etc/nas-credentials,uid=$(id -u),gid=$(id -g),vers=3.0 //IP_DU_NAS/wordly-backups /mnt/nas-backups/wordly
2.3 Exécuter la restauration
- Listez les archives DR disponibles sur le NAS pour choisir la plus récente :
ls -lh /mnt/nas-backups/wordly/dr/ - Lancez la restauration complète (le script va extraire le
.env, copier ledocker-compose.yml, lancer les services Docker, attendre que la base de données soit prête et y injecter vos données) :# Remplacez par le nom de l'archive voulue bash scripts/disaster-recovery.sh --restore /mnt/nas-backups/wordly/dr/wordly_dr_20260607_033000.tar.gz - Le script vous demandera de confirmer en tapant
RESTORE-ALL. Tapez-le et appuyez sur Entrée. - Une fois terminé, vérifiez que l'application tourne bien :
docker compose ps curl http://localhost:8000/health
2.4 Mettre à jour Nginx Proxy Manager (NPM)
Votre service Nginx Proxy Manager (NPM) s'occupe de rediriger les requêtes de wordly.art vers l'IP interne du serveur.
- Connectez-vous à l'interface d'administration de votre NPM (http://IP_NPM:81).
- Allez dans Proxy Hosts.
- Pour les entrées de domaines concernées :
wordly.artwww.wordly.artmonitoring.wordly.art
- Cliquez sur Edit (les trois points à droite).
- Dans le champ Forward Hostname / IP, remplacez l'ancienne adresse IP (
192.168.1.151) par la nouvelle IP de votre serveur de secours (192.168.1.152). - Cliquez sur Save.
C'est terminé ! Vos utilisateurs peuvent à nouveau accéder à https://wordly.art et le système de paiement Stripe continuera à envoyer les webhooks vers la nouvelle machine automatiquement, sans aucune autre configuration requise.