theweakestharrison / dumpcat
git clone https://github.com/theweakestharrison/dumpcat.git
Backup, restore and point-in-time recovery for MySQL and MariaDB.
+2
stars, 24h · #5,937
+45
stars, 7 days · #2,684
+45
stars, 30 days · #12,183
44
★ total · +45% this week
0
forks · 0 open issues
Star history (as recorded here)
LanguageHTML
LicenseApache-2.0
Created2026-10-18 (4d ago)
Last push1d ago
Watchers0
OwnerUser
Links
- GitHub: github.com/theweakestharrison/dumpcat
- Homepage: https://dumpcat.cc
- Releases · Issues · Hacker News mentions
README excerpt
DumpCat Backup, restore and point-in-time recovery for MySQL and MariaDB, and now PostgreSQL. One self-hosted binary with a web UI. No database locks, no runtime to install, works offline. dumpcat.cc · Download · Live demo · GitHub · English · Tiếng Việt --- DumpCat takes care of the whole backup lifecycle of MySQL, MariaDB and PostgreSQL servers from your browser. It schedules backups, compresses and encrypts them, copies them to the storages you choose, checks that they can be read back, and restores them when you need to, down to the second with binlog archiving. It runs on Linux or Windows next to your database, as a single Go binary with the UI built in. ## Highlights - **No locking.** InnoDB is backed up from a consistent snapshot while your application keeps reading and writing. - **Three backup engines.** `mysqldump` / `mariadb-dump`, parallel `mydumper` / `myloader`, and hot physical backups with Percona XtraBackup or MariaBackup, including incrementals. - **PostgreSQL too.** `pg_dump` in directory format with tables dumped and restored in parallel, roles from `pg_dumpall --globals-only`, restores under new names or onto another server, and restore drills; `pg_basebackup` for the whole cluster. The client tools of each server's major version are picked automatically. - **Point-in-time recovery.** Continuous binlog archiving restores to a timestamp, a binlog position or the moment just before a GTID, for example just before an accidental `DROP TABLE`; continuous WAL archiving (`pg_receivewal` through a replication slot) does the same for PostgreSQL, to a timestamp, a restore point or a WAL position. - **Storage anywhere.** Local disk or NFS, S3 and compatibles (Cloudflare R2, MinIO, Wasabi…), Google Drive, OneDrive / SharePoint, FTP / FTPS, SFTP, WebDAV, Backblaze B2, Azure Blob, Dropbox and every rclone backend. One job can write to several storages, each with its own retention. - **Databases behind a firewall.** A small agent on the database host connects out to DumpCat, or the host joins DumpCat's built-in WireGuard (off by default), so no port has to be opened to the database. Backups, restores and point-in-time recovery work through either. - **Encrypted and verified.** zstd compression, age encryption before anything leaves the server, SHA-256 for every file, and every backup read back right after it is written: decrypted, decompressed and checked, so a broken copy shows up at once instead of at restore time. - **Knows when backups stop.** Every job is checked against its own schedule: when no backup has succeeded in time, or binlog archiving falls behind, DumpCat alerts you once and again when it recovers. A weekly email digest sums up the week, and a Prometheus `/metrics` endpoint (off by default) feeds your dashboards and alert rules. - **Restore drills.** On a schedule, DumpCat restores the newest backup into a sandbox server under temporary names, compares every table and its row count with what the backu