Sauvegarder son Serveur Ubuntu sur un NAS Ugreen avec Zerobyte
Le but : Votre NAS Ugreen (le coffre-fort) va se connecter chaque nuit à votre serveur Ubuntu (l'usine), récupérer les fichiers importants et les bases de données, et les stocker en sécurité.
Préparation du Terrain
On prépare les dossiers sur le NAS.
Connectez-vous à votre NAS en SSH (ssh user@VOTREIP).
Générez un mot de passe secret pour Zerobyte (copiez le résultat, on en aura besoin juste après) :
openssl rand -hex 32
Créez les dossiers pour ranger Zerobyte et vos futures sauvegardes :
mkdir -p /volume1/docker/zerobyte/data
mkdir -p /volume1/backups/ubuntu-home
Phase 2 : Installation de Zerobyte (Le Cerveau)
On installe le logiciel sur le NAS.
Toujours sur le NAS, créez le fichier de configuration :
nano /volume1/docker/zerobyte/docker-compose.yml
Copiez ce bloc :
services:
zerobyte:
image: ghcr.io/nicotsx/zerobyte:latest
container_name: zerobyte
restart: unless-stopped
ports:
- "4096:4096"
privileged: true # Indispensable pour que le NAS autorise la connexion SFTP
environment:
- APP_SECRET=COLLEZ_ICI_VOTRE_CHAINE_OPENSSL_DE_LA_PHASE_1
volumes:
- ./data:/var/lib/zerobyte
- /volume1/backups/ubuntu-home:/backups
- /dev/fuse:/dev/fuse
devices:
- /dev/fuse
Sauvegardez (Ctrl+O, Entrée) et quittez (Ctrl+X).
Lancez le moteur :
cd /volume1/docker/zerobyte
docker compose up -d
Ouvrir la porte sur Ubuntu
On autorise le NAS à entrer.
Connectez-vous maintenant sur votre serveur Ubuntu (ssh user@VOTREIP).
Ouvrez le pare-feu pour laisser entrer le NAS (et uniquement lui) :Bash
sudo ufw allow from IPDUNAS to any port 22 proto tcp comment 'Backup Zerobyte'
La "Photo Propre" des Bases de Données (Crucial !)
C'est l'étape qui évite les erreurs "Warning". On exporte les bases de données dans un fichier texte propre avant de les sauvegarder.
Sur le serveur Ubuntu :
- Testez-le tout de suite : Tapez
/home/user/export_databases.sh. S'il n'y a pas d'erreur, vérifiez avecls -lh /home/user/dumpsque vous avez bien des fichiers.sql.
Automatisez le script (Le réveil matin) : Tapez crontab -e et ajoutez cette ligne à la fin pour lancer l'export à 02h30 du matin :
30 02 * * * /home/user/export_databases.sh
Rendez le script exécutable :
chmod +x /home/user/export_databases.sh
Copiez ce contenu (Adaptez uniquement les lignes docker exec avec vos vrais noms de conteneurs et mots de passe) :
#!/bin/bash
DOSSIER="/home/user/dumps"
DATE=$(date +"%Y-%m-%d")
# --- EXEMPLE MYSQL (Ghost, Wordpress...) ---
# Enlevez le # devant la ligne suivante et modifiez les infos :
# docker exec nom-du-conteneur-db mysqldump -u root -pVOTRE_MOT_DE_PASSE nom_de_la_db > "$DOSSIER/backup_sql_$DATE.sql"
# --- EXEMPLE POSTGRESQL (Mastodon, Odoo, Immich...) ---
# Enlevez le # devant la ligne suivante et modifiez les infos :
# docker exec -t nom-du-conteneur-db pg_dump -U nom_utilisateur nom_de_la_db > "$DOSSIER/backup_pg_$DATE.sql"
# --- NETTOYAGE ---
# On supprime les exports vieux de 3 jours pour ne pas encombrer le serveur
find "$DOSSIER" -type f -name "*.sql" -mtime +3 -delete
Créez le script automatique :
nano /home/user/export_databases.sh
Créez le dossier où l'on va déposer les exports :
mkdir -p /home/user/dumps
Configuration Finale dans Zerobyte
On relie tout ensemble via l'interface web.
Ouvrez http://IPDUNAS:4096 sur votre ordinateur.
- Menu "Volumes" (La Source) :
- Add Volume -> Type SFTP.
- Host:
VOTREIP| User:votre_user| Pass:votre_pass. - Path:
/home/user/ - Si le voyant passe au vert, c'est gagné.
- Menu "Repositories" (La Destination) :
- Add Repository -> Type Local.
- Name:
Backup-NAS. - Path:
/backups(C'est le chemin interne qu'on a défini dans Docker). - Password : Choisissez un mot de passe solide et notez-le précieusement. Sans lui, aucune restauration n'est possible.
- Menu "Jobs" (La Tâche) :
- Add Job.
- Source : Votre volume Ubuntu.
- Destination : Votre Repository NAS.
- Schedule : Mettez
0 3 * * *(3h00 du matin).- Pourquoi 3h00 ? Parce que votre script d'export de base de données tourne à 2h30. Tout sera prêt.
- Retention : Keep Daily: 7, Keep Weekly: 4, Keep Monthly: 6.
- Excludes (Optionnel) : Ajoutez
**/var/lib/mysqlou les dossiers bruts de vos bases de données pour ne pas les sauvegarder en double (puisque vous avez maintenant les fichiers.sqlpropres dans le dossierdumps).
Le Grand Test
Ne jamais faire confiance à une installation sans l'avoir vue marcher.
- Dans Zerobyte, cliquez sur "Run Now" (le bouton Play) sur votre Job.
- Attendez que ça finisse (Succès).
- Allez dans l'onglet Snapshots.
- Cliquez sur la sauvegarde, naviguez dans
dumps, trouvez un fichier.sqlet essayez de le télécharger sur votre PC.
Si vous arrivez à lire le fichier sur votre PC, félicitations !
Votre système est robuste, automatisé et sécurisé. 🥂