Aller au contenu principal

Sauvegardes

Sauvegarde manuelle

ssh user@10.0.0.10
cd /opt/stayflow

# Dump PostgreSQL
docker exec stayflow-postgres pg_dump -U stayflow stayflow \
| gzip > /opt/stayflow/backups/stayflow_$(date +%Y%m%d_%H%M).sql.gz

# Vérifier
ls -lh /opt/stayflow/backups/

Sauvegarde automatique (cron)

# Créer le dossier
mkdir -p /opt/stayflow/backups

# Éditer la crontab
crontab -e

Ajouter cette ligne (sauvegarde chaque nuit à 2h00) :

0 2 * * * docker exec stayflow-postgres pg_dump -U stayflow stayflow | gzip > /opt/stayflow/backups/stayflow_$(date +\%Y\%m\%d).sql.gz

Nettoyage automatique (garder 30 jours)

# Ajouter après la ligne de backup dans crontab
5 2 * * * find /opt/stayflow/backups -name "*.sql.gz" -mtime +30 -delete

Restaurer une sauvegarde

danger

La restauration écrase toutes les données actuelles. À faire uniquement en cas de panne grave.

# Arrêter l'API
docker compose -f docker-compose.hotel.yml stop api

# Restaurer
gunzip -c /opt/stayflow/backups/stayflow_20260101.sql.gz \
| docker exec -i stayflow-postgres psql -U stayflow stayflow

# Redémarrer
docker compose -f docker-compose.hotel.yml start api

Synchroniser les sauvegardes vers ton PC

# Depuis ton PC (via WireGuard)
rsync -avz user@10.0.0.10:/opt/stayflow/backups/ \
~/Bureau/Stayflow_root/backups/hotel-a/