Skip to main content

260320-Mise en place de la sauvegarde backup des bases de données du VPS

C'est noté. On va droit à l'essentiel pour que tu puisses copier-coller ce "manuel de survie" dans tes notes. Voici la synthèse technique de ta configuration de sauvegarde VPS Alteris → NAS Synology.


🛠️ 1. Côté VPS (Préparation des données)

Installation du moteur :

Bash

sudo apt update && sudo apt install rsync -y

Script de backup SQL (/usr/local/bin/docker_db_backup.sh) :

Bash


#!/bin/bash

# --- CONFIGURATION ---

BACKUP_DIR="/backups/sql"
DATE=$(date +%Y-%m-%d)
mkdir -p $BACKUP_DIR

echo "--- Début du backup global : $(date) ---"

# 1. Backup Bookstack (MariaDB) - OK (Utilisateur dédié)
echo "📦 Sauvegarde Bookstack..."
docker exec bookstack_db /usr/bin/mariadb-dump -u bookstack -p'260202ALTERIS!' bookstackapp --single-transaction --quick | gzip > $BACKUP_DIR/bookstack_db_$DATE.sql.gz

# 2. Backup FreshRSS (PostgreSQL) - OK
echo "🐘 Sauvegarde FreshRSS..."
PG_USER_FRESH=$(docker exec freshrss-db printenv POSTGRES_USER || echo "postgres")
docker exec freshrss-db pg_dumpall -U $PG_USER_FRESH | gzip > $BACKUP_DIR/freshrss-db_$DATE.sql.gz

# 3. Backup Alteris PostGIS (PostgreSQL) - OK
echo "🐘 Sauvegarde Alteris PostGIS..."
PG_USER_ALT=$(docker exec alteris_postgis printenv POSTGRES_USER || echo "postgres")
docker exec alteris_postgis pg_dumpall -U $PG_USER_ALT | gzip > $BACKUP_DIR/alteris_postgis_$DATE.sql.gz

# --- PERMISSIONS ET NETTOYAGE ---
# On donne les droits à l'utilisateur du NAS
chown -R synobackup:synobackup $BACKUP_DIR
chmod -R 644 $BACKUP_DIR/*.gz

# Nettoyage : On ne garde que le fichier du jour sur le VPS
find $BACKUP_DIR -type f -mtime +0 -name "*.sql.gz" -not -name "*$DATE*" -delete

echo "--- Fin du backup global : $(date) ---"

Note : chmod +x /usr/local/bin/docker_db_backup.sh pour l'activer.

Automatisation (Crontab sudo crontab -e) :

Bash

0 2 * * * /usr/local/bin/docker_db_backup.sh


🔑 2. Côté NAS (La liaison SSH sécurisée)

Génération de la clé compatible Synology (sur le NAS) :

Bash

# Création de la clé RSA format PEM
openssl genrsa -out ~/.ssh/id_rsa_syno 4096
chmod 600 ~/.ssh/id_rsa_syno

# Extraction de la clé publique
ssh-keygen -y -f ~/.ssh/id_rsa_syno > ~/.ssh/id_rsa_syno.pub

# Envoi de la clé au VPS (mot de passe synobackup demandé)
cat ~/.ssh/id_rsa_syno.pub | ssh synobackup@79.137.14.202 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Récupération de la clé privée pour l'interface DSM :

Bash

cat ~/.ssh/id_rsa_syno

(Copier le bloc -----BEGIN RSA PRIVATE KEY----- vers un fichier backup.pem sur ton PC).


🎡 3. Configuration Active Backup (Interface DSM)
Paramètre Valeur
Service Serveur de fichiers > rsync > rsync shell
Hôte / Port 79.137.14.202 / 22
Utilisateur synobackup
Authentification Clé privée (Charger backup.pem)
Dossier Source 1 /backups/sql (Les bases de données)
Dossier Source 2 /home (Les configs et Dockerfiles)
Planification Quotidien à 04:00
Rétention Multi-version (7 jours minimum)

✅ Ce qui est maintenant "Automatique" :
  1. 02h00 : Le VPS crée les fichiers SQL compressés.

  2. 04h00 : Le NAS se connecte sans mot de passe, compare les fichiers et télécharge uniquement les nouveautés.

  3. Sécurité : Si ton VPS brûle, tu as les bases ET les fichiers de config chez toi.

Est-ce que tu veux que je te génère aussi la commande pour tester la restauration d'une base sur ton VPS en cas de besoin ?