restore-drill restores your latest Postgres backup every night in a throwaway container, checks the data is really there, and tells you the morning it breaks — not the day you need it.
pg_restore into a fresh database, then tables, row counts and the newest records are checked. A file that exists is not a backup that works.
The check runs on your infrastructure in a container with no network. Only pass/fail and metrics are reported — no table names, no rows.
Recovery time (RTO) is measured on every run. A monthly restore report for SOC 2, ISO 27001 or a client's security questionnaire is planned for the cloud version.
docker run mrvi0/restore-drill run --source s3://bucket/prefixpostgres:<your version> and removes the container afterwards.Works with dumps from any tool: pg_dump (custom, tar, plain SQL, gzipped), your own cron script, or a backup service that writes to S3.
Restore, freshness and table checks, RTO, JSON output, Telegram alerts.
5 databases, nightly checks, an alert when a check did not run, restore history.
20 databases, monthly restore reports for your clients with your logo.
Starter for 12 months (save 43%), onboarded first, a direct line to the founder. Limited to 20 teams.
Not ready? Run the open-source CLI on your own backup in two minutes.
No. The restore runs on your server, in a container without network access. Only pass/fail and metrics such as restore time and row counts are reported.
PostgreSQL today. MySQL is next on the roadmap.
The open-source CLI and Docker image work today. The cloud version — missed-run alerts, history, dashboards and reports — is in development; founding members get it first.
Because it happens once, before an audit. Dumps break silently: a missing role, an extension that is not installed, a cron job that wrote an empty file for three weeks.