Open source · Sauvegarde et restauration pour MySQL, MariaDB et PostgreSQL

Sauvegardez sans jamais verrouiller la base. Restaurez à la seconde près.

DumpCat est un binaire unique doté d’une interface web. Il planifie les sauvegardes, les compresse et les chiffre, en envoie des copies vers S3, Google Drive, OneDrive ou SFTP, les vérifie et restaure vos données le moment venu. Fonctionne sous Linux et Windows, entièrement hors ligne.

MySQL 5.7 · 8.0 · 8.4  /  Percona Server  /  MariaDB 10.x · 11.x  /  PostgreSQL 10+

Restauration à un instant précis

Simulation

Quelqu’un a supprimé la table orders à 14:37:12. Faites glisser le curseur pour choisir un point de restauration : DumpCat prend la sauvegarde de base la plus récente et les fichiers binlog à rejouer. PostgreSQL fonctionne de la même façon, avec les WAL archivés.

full · 02:00
DROP TABLE orders · 14:37:12
présent
  • Sauvegarde complète (mysqldump)
  • Binlog archivé, 15 minutes max par fichier
  • Rejoué à la restauration
  • Incident
Restaurer à
18/10/2026 14:37:11
Sauvegarde de base
20261018-020000-fullmysqldump · cohérente à 02:00:03
Binlogs à rejouer
mysql-bin.000123 → mysql-bin.00017351 fichiers, chacun vérifié avant de toucher aux données
Avant l’incident : la table orders est intacte

Installation

Opérationnel en une minute

Une commande sous Linux, un téléchargement et un double-clic sous Windows. L’installateur met en place un service qui démarre avec la machine, ainsi que les outils de sauvegarde adaptés à la version de votre base ; l’interface web est intégrée dans un seul fichier.

Sur le serveur Linux, collez cette commande et appuyez sur Entrée :

bash
curl -fsSL https://dumpcat.cc/install.sh | sudo sh

Elle télécharge la dernière version, vérifie sa somme de contrôle et l’installe dans /opt/dumpcat comme service systemd, avec rclone, le client MySQL/MariaDB, le mariabackup ou XtraBackup correspondant, et mydumper s’il est dans les dépôts ; --postgres 16 ajoute les outils client de PostgreSQL 16. Les options se placent après sh -s -- : --port 9090, --listen 127.0.0.1, --tls-auto.

Après l’installation

  1. Ouvrez http://<server-ip>:6369Créez le compte admin avec le jeton de configuration à usage unique affiché par l’installateur (pour le réafficher : dumpcat setup-token).
  2. Ajoutez un serveur de base de donnéesLe bouton Test connection liste les privilèges manquants et les méthodes utilisables.
  3. Ajoutez un stockageLe bouton Test écrit, lit et supprime un fichier.
  4. Créez une tâche de sauvegardeChoisissez la planification, le chiffrement, le stockage et la rétention, puis cliquez sur Save & run now.

Le port 6369 s’écrit MEOW

Tapez 6-3-6-9 sur le clavier d’un téléphone et vous obtenez MEOW, « miaou » en anglais. C’est le port par défaut de l’interface web.

Méthodes de sauvegarde

Le bon outil pour chaque base, quelle que soit sa taille

Pour MySQL et MariaDB, DumpCat pilote mysqldump, mydumper et XtraBackup / MariaBackup. Quand vous ajoutez un serveur, Test connection affiche la version, le datadir, la taille de chaque base et les méthodes utilisables sur cette machine.

mysqldumplogiquemydumperlogique, parallèleXtraBackup / MariaBackupphysique, à chaud
Verrouille la base ?Pas pour InnoDB, grâce à --single-transactionUn verrou global de quelques millisecondes pour synchroniser les threads, puis plus aucunAucun verrou InnoDB ; un très bref verrou de sauvegarde à la fin
Vitesse de sauvegarde1 thread par base, plusieurs bases en parallèleMultithread, tables découpées par blocs de lignesLa plus rapide : copie de fichiers multithread
Vitesse de restaurationLa plus lenteRapide : en parallèle, index créés après le chargementTrès rapide : copie de fichiers + préparation
IncrémentaleNonNonOui
Restaurer une seule base, la renommerOuiOuiNon, l’instance entière
Idéal pourBases de moins de 20–50 GoGrosses bases restaurées une par uneDe 100 Go à plusieurs To, RTO court

PostgreSQL 10 et plus : pg_dump par base, avec export et restauration des tables en parallèle, sous un nouveau nom ou sur un autre serveur ; pg_basebackup pour tout le cluster via une connexion de réplication, avec archivage WAL continu pour revenir à une heure donnée, à un point de restauration ou à une position WAL.

Stockage

Une tâche, des copies à plusieurs endroits

Écrivez sur le disque local puis téléversez, ou envoyez le flux directement vers le cloud, sans disque temporaire. Chaque stockage conserve son propre nombre de copies, par exemple 3 sauvegardes en local et 30 jours sur S3.

  • Local / NFSLe plus rapide pour restaurer ; à garder hors du disque du datadir
  • S3AWS, Cloudflare R2, MinIO, Wasabi, DigitalOcean
  • Google DriveOAuth ou compte de service
  • OneDriveSharePoint inclus
  • FTP / FTPSTLS explicite ou implicite
  • SFTPMot de passe ou clé privée
  • WebDAVNextcloud et compagnie
  • Backblaze B2Ainsi qu’Azure Blob et Dropbox
  • rclonePlus de 70 autres backends

Formats standard, aucun enfermement

<storage>/
  shop-nightly/
    20261018-020000-full/
      manifest.json      # sha256, binlog, GTID
      shop.sql.zst.age
      crm.sql.zst.age
      _users.sql.zst.age # users & grants
    binlog/20261018/
      mysql-bin.000123.zst.age

Vous avez perdu la machine qui fait tourner DumpCat ? Installez une nouvelle copie, rajoutez le stockage et cliquez sur Import backup catalog : toutes les sauvegardes réapparaissent. Même sans DumpCat, vous pouvez restaurer avec age, zstd et mysql ou pg_restore.

Connectivité

Base sans port ouvert ? Sauvegardée quand même.

Quand le serveur de sauvegarde ne peut pas joindre la base directement, à cause d’un pare-feu, d’un NAT ou d’une base qui n’écoute que sur 127.0.0.1, c’est le serveur de base de données qui se connecte à DumpCat. Il y a deux façons de faire, et aucune n’ouvre de port sur ce serveur. Sauvegardes, restaurations et restauration à un instant précis fonctionnent comme avec une connexion directe.

Agent HTTPS

DumpCatServeur de sauvegardeSauver & restaurermysqldump · mydumper127.0.0.1:portPoint d’accès agentHTTPS · port webJoignable en HTTPSServeur BDDAucun port entrantMySQL / MariaDBInchangée · 127.0.0.1 seul127.0.0.1:3306dumpcat agentAutorise 127.0.0.1:3306Rien d’ouvert sur cet hôtePare-feu / NAT← HTTPS · ouvert par le serveur BDD3306 entrantbloqué, inutileDumpCatServeur de sauvegardeSauver & restaurermysqldump · mydumper127.0.0.1:portPoint d’accès agentHTTPS · port webJoignable en HTTPSPare-feu / NAT↑ HTTPSouvert par le serveur BDD3306 entrantbloqué, inutileServeur BDDAucun port entrantdumpcat agentAutorise 127.0.0.1:3306127.0.0.1:3306MySQL / MariaDBInchangée · 127.0.0.1 seulRien d’ouvert sur cet hôte
Le serveur de base de données ouvre le tunnelLe trafic base de données de DumpCat y circule en sens inverse
Requis côté base de données
HTTPS sortant vers DumpCat
Base de données
Inchangée, même si elle n’écoute que sur 127.0.0.1
Installation
sudo ./install.sh --agent --server … --key …
Idéal pour
Ne toucher ni au réseau ni à la configuration MySQL

WireGuard intégré UDP · désactivé par défaut

DumpCatServeur de sauvegardeSauver & restaurermysqldump · mydumper127.0.0.1:portWireGuard intégré10.66.0.1 · UDP 51820UDP 51820 ouvertServeur BDDAucun port entrantMySQL / MariaDBÉcoute sur 10.66.0.210.66.0.2:3306wg-quick@dumpcat10.66.0.2 · keepalive 25 sRien d’ouvert sur cet hôtePare-feu / NAT← WireGuard UDP · ouvert par le serveur BDD3306 entrantbloqué, inutileDumpCatServeur de sauvegardeSauver & restaurermysqldump · mydumper127.0.0.1:portWireGuard intégré10.66.0.1 · UDP 51820UDP 51820 ouvertPare-feu / NAT↑ WireGuard UDPouvert par le serveur BDD3306 entrantbloqué, inutileServeur BDDAucun port entrantwg-quick@dumpcat10.66.0.2 · keepalive 25 s10.66.0.2:3306MySQL / MariaDBÉcoute sur 10.66.0.2Rien d’ouvert sur cet hôte
Le serveur de base de données ouvre le tunnelLe trafic base de données de DumpCat y circule en sens inverse
Requis côté base de données
WireGuard standard, UDP 51820 sortant vers DumpCat
Base de données
Écoute sur l’adresse VPN, l’utilisateur autorise 10.66.0.1
Installation
Activez-le sur la page WireGuard, copiez dumpcat.conf, puis systemctl enable --now wg-quick@dumpcat
Idéal pour
Les équipes qui utilisent déjà WireGuard, ou une passerelle vers tout un réseau de bases

Le serveur de base de données ouvre la connexion ; les données circulent dans les deux sens à l’intérieur. Les sauvegardes physiques (XtraBackup / MariaBackup) passent par un agent lancé avec --allow-physical ; via WireGuard, elles exigent toujours que DumpCat soit installé sur le serveur de base de données.

Exploitation

Tout ce que vous auriez dû scripter vous-même

Tout est inclus dans DumpCat, et s’active et se règle depuis l’interface web.

Chiffré avant l’envoi
age (ChaCha20-Poly1305 + scrypt) tourne sur votre serveur : le fournisseur cloud ne peut pas lire vos données.
Contrôles d’intégrité
SHA-256 pour chaque fichier. La vérification relit, déchiffre, décompresse et cherche la ligne Dump completed.
Rétention GFS
Gardez N sauvegardes, N jours, la dernière de chaque jour, semaine et mois. Une chaîne incrémentale n’est supprimée qu’avec sa sauvegarde complète.
Restaurations prudentes
Chaque fichier passe un test de déchiffrement avant la suppression de la moindre base. Restaurez sous de nouveaux noms, ou sur un autre serveur et une autre version (MySQL 8 ↔ MariaDB, PostgreSQL 15 → 16).
Comptes et rôles
admin, operator, viewer. Double authentification TOTP, jetons d’API, journal d’audit et verrouillage après des échecs de connexion répétés.
Notifications
E-mail, Telegram, Slack, Discord et webhooks signés HMAC, en cas d’échec ou de succès.
Bases derrière un pare-feu
Un agent sur le serveur de base de données se connecte à DumpCat en HTTPS, ou le serveur rejoint le WireGuard intégré. Aucun port à ouvrir vers la base.
Mise à jour intégrée
dumpcat update vérifie le SHA-256, sauvegarde la configuration, attend la fin des sauvegardes en cours et revient en arrière en cas d’échec.

Compatible IA

Compatible IA : votre assistant veille sur vos sauvegardes

DumpCat embarque un serveur MCP et une référence d’API rédigée en Markdown. Claude Code, Claude Desktop et d’autres agents IA s’y connectent avec un jeton d’API pour savoir quelles sauvegardes ont échoué, lire les journaux et expliquer pourquoi ; avec un jeton à accès complet, ils peuvent aussi lancer des sauvegardes, des vérifications et des exercices de restauration.

Serveur MCP intégré
L’endpoint /api/mcp fait partie de DumpCat, rien d’autre à installer : des outils pour la vue d’ensemble, les alertes, les tâches, les sauvegardes, les journaux, les restaurations, les exercices et les aperçus de restauration à un instant précis. Les clients qui lancent un serveur local via stdio utilisent dumpcat mcp.
Sûr par défaut
Les nouveaux jetons ne peuvent que consulter. Restaurations, suppressions, identifiants et paramètres ne passent jamais par MCP ; les réponses omettent mots de passe, clés et jetons, et tout ce qu’un assistant lance est inscrit au journal d’audit.
Une référence d’API en Markdown
/api/docs.md est générée par le serveur lui-même : authentification, conventions, exemples curl et chaque route avec le rôle et le jeton requis. Collez-la dans un chat IA, ou laissez un agent la lire et appeler l’API REST.
Prêt en une minute
La page API & MCP de DumpCat crée le jeton, vous donne la commande Claude Code et la configuration pour Claude Desktop et d’autres clients, ainsi qu’un bouton Test pour vérifier la connexion.

Connecter Claude Code

bash
claude mcp add --transport http dumpcat \
  https://backup.example.com/api/mcp \
  --header "Authorization: Bearer mv_…"

Puis demandez simplement : « Quelles sauvegardes ont échoué cette nuit, et pourquoi ? », « La tâche shop-nightly a-t-elle une sauvegarde de moins de 24 heures ? », « Puis-je restaurer la table orders telle qu’elle était hier à 14:37 ? »

Comparatif

DumpCat face aux autres outils

Choisissez un outil pour comparer chaque fonctionnalité côte à côte. Les informations sur les autres produits sont sourcées et datées dans les pages de comparaison complètes.

DumpCatSQLBackupAndFTP
Every feature freeYesNo paid tierPartlyFree: 2 DBs, basic features
Runs on your own serversYesOne binaryYesWindows only
LinuxYesamd64, arm64PartlyRemote full backups only
Hot physical backupsYesXtraBackup, MariaBackupNoNo physical backups
Point-in-time recoveryYesTo the second or a GTIDPartlyChosen-time restore undocumented
EncryptionYesage, before uploadPaid planProfessional edition
Data skips the vendorYesServer to your storageYes
Automatic backup checkYesEvery run, plus drillsPartlyVia scheduled restore jobs

Open source

Gratuit, open source, et vos données restent les vôtres

DumpCat est publié sous licence Apache-2.0. Ni compte, ni clé de licence, ni édition payante qui garderait des fonctionnalités pour elle : tout ce que présente cette page se trouve dans la version que vous téléchargez.

Licence Apache-2.0
Utilisez-le à la maison ou au travail, modifiez-le et redistribuez-le. Le texte complet se trouve dans LICENSE.
Aucune télémétrie
DumpCat n’envoie aucune donnée d’utilisation, nulle part. Le seul appel qu’il passe de lui-même consiste à lire latest.json une fois par jour pour annoncer les nouvelles versions, et vous pouvez le désactiver dans les paramètres (Settings).
Aucun intermédiaire
Sauvegardes, mots de passe des bases et clés de chiffrement ne transitent que de votre serveur vers le stockage de votre choix.
Versions signées
Chaque mise à jour est signée avec ed25519 et vérifiée par SHA-256 avant d’être installée. Pour compiler vous-même, il suffit de Go.

Compiler depuis les sources

bash
git clone https://github.com/theweakestharrison/DumpCat.git
cd DumpCat
go build -o dumpcat ./cmd/dumpcat

Rapports de bugs, pull requests et traductions sont les bienvenus : voir CONTRIBUTING.md. Merci de signaler les problèmes de sécurité en privé, comme décrit dans SECURITY.md.

Téléchargement

Dernière version