📈 GH Trending Explorer 🎲 Surprise me

← all repos

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)

2026-10-20 · 43 ★ 2026-10-22 · 44 ★
LanguageHTML
LicenseApache-2.0
Created2026-10-18 (4d ago)
Last push1d ago
Watchers0
OwnerUser

Links

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