Run restore drills
A backup is unproven until it restores. A restore drill restores your latest snapshot into an isolated scratch workspace, byte-hashes every restored file against the source, row-diffs the restored database dumps, and stamps a pass/fail badge on the project — automatically, on a schedule. It is the difference between believing your backups and knowing.
How to do it
Schedule a weekly drill
On the project’s Schedule tab add a drill schedule. Weekly is the recommended cadence: drills are the expensive proof (a real restore), while the cheap structural check (restic check) can run daily alongside.
Or trigger one now
The Restore drill tab on the project detail screen shows the last drill result and lets you fire one immediately. The drill restores into a scratch workspace — your live project and repository are never touched.
Read the drill report
A drill passes only when the mismatch count is zero: every file byte-identical, every database dump row-consistent. The project shows lastDrillAt and a pass/fail badge — "Verified" means a real restore succeeded, not that a backup merely exists.
Treat a failed drill as an incident
A failed drill fires an alert email with the mismatch detail. Common causes: torn dumps from a service that bypassed the adapter, files changed by a concurrent deploy during backup, or repository corruption (run a check with read-data to confirm). Fix the cause, run Backup Now, then re-drill.
Do it in one click with Dockstash
Dockstash runs the exact dump above, restics it off-site, and drill-tests the restore automatically — no script to maintain.
Last updated: July 2026
Related guides
Restore a backup
Pick a snapshot, type the project name to confirm, restore to a new location by default, and validate before overwriting anything.
Schedule automatic backups
Set a daily backup, a weekly prune with retention, integrity checks, and restore drills — validated cron, one job per repository, live logs.
PostgreSQL
Back up PostgreSQL in Docker
MongoDB
Back up MongoDB in Docker
Frequently asked questions
What exactly does a drill compare?
Every source path and config is byte-hashed against its restored mirror, and every enabled database layer’s restored dump is row-diffed (or parsed) against the source. Any mismatch fails the drill — there is no partial pass.
Can a drill break my live project?
No. Drills restore into an isolated scratch workspace and clean it up afterwards even when the drill throws. The live project, containers, and repository are read-only participants.
How is a drill different from restic check?
restic check proves the repository is structurally well-formed (no missing packs, no index rot). Only a drill proves the repository actually restores into working data. Run checks daily, drills weekly.
Do drills run on fleet agents?
Not yet — drills execute on the primary server. Remote projects still get backup, check, prune, and restore on their agent.