DataSPBackup : sauvegarder ses bases de données et vérifier qu’elles se restaurent

« Créer, former, transmettre. »

DataSPBackup : sauvegarder ses bases de données et vérifier qu’elles se restaurent

DataSPBackup est une application web auto-hébergée qui sauvegarde des bases PostgreSQL / Supabase et MySQL / MariaDB, puis vérifie automatiquement que chaque sauvegarde se restaure bien, dans un conteneur jetable. Open source sous licence Apache 2.0, elle se déploie dans un seul conteneur Docker.

L'interface : les bases sont organisées en groupes, avec la configuration d'une base Supabase à droite.

Une sauvegarde jamais restaurée n'est pas une sauvegarde

Tout le monde sait qu'il faut tester ses restaurations, et presque personne ne le fait régulièrement. On découvre alors qu'une sauvegarde est inutilisable le jour où l'on en a besoin. DataSPBackup automatise ce test : après chaque sauvegarde, l'archive est restaurée dans un conteneur de base de données jetable, comparée à la source, puis le conteneur est détruit. On obtient un rapport plutôt qu'une supposition.

Le cas de Supabase est particulièrement piégeux. Un PostgreSQL vierge ne sait pas restaurer une base Supabase : les rôles anon, authenticated ou service_role n'existent pas, les schémas auth et storage manquent, les extensions comme PostGIS sont absentes et un DROP SCHEMA public entre en conflit avec PostGIS. DataSPBackup prépare la cible avant de restaurer, puis distingue les erreurs bloquantes des erreurs bénignes, au lieu de tout déclarer en échec dès que pg_restore renvoie le code de sortie 1.

La vérification de restauration, au cœur de l'application

Pour une base Supabase, la cible jetable est préparée avec les rôles et les extensions réellement présents sur la source, que l'application lit en lecture seule. L'archive est ensuite restaurée, les lignes de chaque table sont comptées puis comparées à celles de la source, avec une tolérance puisque la source continue de vivre, et le conteneur disparaît.

Un rapport de vérification : la restauration est réussie même si pg_restore sort avec le code 1, car les deux erreurs sont classées bénignes, chacune avec son diagnostic.

Le rapport indique le statut, l'erreur d'origine plutôt que la seule fin du flux d'erreurs, les erreurs classées en bloquantes ou bénignes avec un diagnostic en clair, le nombre de lignes par table et la chronologie de l'opération.

Ce que fait l'application

PostgreSQL, Supabase, MySQL et MariaDB

Les sauvegardes PostgreSQL utilisent pg_dump dans un conteneur de la même version majeure que le serveur, celles de MySQL et MariaDB utilisent mysqldump dans un client de la même série. La vérification restaure ensuite dans un MySQL ou un MariaDB jetable.

Configuration d'une base MySQL : le moteur de vérification et les tables exclues se règlent base par base.

Des sauvegardes planifiées et chiffrées

Planification horaire, quotidienne, hebdomadaire, mensuelle ou en expression cron. Rétention par durée ou par nombre de sauvegardes, archives chiffrées en AES-256-GCM, filtres de schémas et de tables, téléchargement et suppression en un clic.

Les sauvegardes d'une base : statut, taille, durée, résultat de la vérification et actions disponibles.

Des bases organisées en groupes

La liste des bases s'organise en groupes, comme des dossiers : on les crée, on les renomme, on les réordonne, et l'on y glisse-dépose les bases.

Une restauration vers la base de son choix

Une sauvegarde se restaure vers une base existante ou vers une nouvelle base créée automatiquement, avec la préparation Supabase en option. Une confirmation explicite est exigée avant toute écriture, et chaque restauration est suivie dans l'interface.

La fenêtre de restauration : destination, options et confirmation obligatoire.

Une surveillance de la disponibilité

Chaque base peut être interrogée à intervalle régulier. L'historique s'affiche sous forme de grille, sur la journée, 24 heures ou 7 jours, et une alerte part quand une base devient indisponible.

L'historique de disponibilité sur 7 jours, avec les incidents en rouge.

Des notifications et une configuration portable

Les alertes partent par Telegram, par e-mail ou par webhook, sur le lancement, le succès ou l'échec des opérations. La configuration (bases, groupes, planifications, canaux) s'exporte et s'importe en JSON, sans aucun secret.

Auto-hébergée et sécurisée

Tout reste chez vous : l'application tourne dans un conteneur Docker sur votre serveur et pilote le démon Docker pour exécuter les clients de bases de données et les conteneurs jetables. Les archives et les mots de passe enregistrés sont chiffrés, aucune clé n'est fournie par défaut (le serveur refuse de démarrer sans clé de chiffrement) et les mots de passe ne sont jamais renvoyés par l'API ni écrits dans les journaux.

Où en est le projet

DataSPBackup est publié en open source sous licence Apache 2.0, en version 1.1. Pour l'instant, les archives sont stockées sur le serveur lui-même : les stockages distants (S3, SFTP) ne sont pas encore pris en charge. Le dépôt contient la documentation complète et le guide de déploiement avec Docker et Dokploy.

Voir le projet sur GitHub