Every backup,
proven by a real restore.
Unth Recover restores each backup into an isolated container, compares data, schema and sequences with the source — and only then calls it VERIFIED. On your servers. Into your storage.
Verification run
- Backup createdpg_dump · custom format · 2.4 GB
- Integrity checkedSHA-256 · manifest signed
- Isolated restorefresh postgres:16 · no network
- Data comparedrows, schema, sequences
- Offsite copyencrypted · re-downloaded · checked
Source vs. restored copy
| Check | Source | Restored | |
|---|---|---|---|
| Tables | 42 | 42 | = |
| Rows | 1,284,551 | 1,284,551 | = |
| Sequences | 17 | 17 | = |
| Schema hash | 9f3a…c21e | 9f3a…c21e | = |
| Extensions | pgcrypto, citext | pgcrypto, citext | = |
Illustration of a verification report. Numbers are examples.
Most backups are only tested on the day you need them.
A backup file that exists is not a backup you can restore. These failures are silent until it is too late.
The dump finished — almost
A connection drops, a disk fills up, a role is missing. The file is there, the exit code was ignored, and the restore fails halfway.
The restore needs what you forgot
Extensions like postgis, roles, ownership, a newer server version. You only find out on a fresh machine.
The copy is not the backup
Uploads get truncated, buckets get misconfigured, keys get rotated. Nobody downloads the copy again to check.
From install to VERIFIED in about five minutes.
One small agent on your server. Nothing to open in your firewall, nothing to migrate.
Install the agent
A single binary: .deb, .rpm, Docker image or the install script. It needs Docker and the PostgreSQL client tools.
Connect it with one command
Click Add server and run the one-time command. The server signs every request with its own key — no password is stored.
Create a backup job
Pick the database, a schedule and, if you like, an encrypted offsite copy to your own bucket or Google Drive.
Get proof, not hope
Every run is restored into a throwaway container and compared with the source. You see VERIFIED — or exactly what failed and how to fix it.
# 1. install (Debian / Ubuntu) $ sudo apt install ./unthrecover_0.3.0-beta_amd64.deb # 2. connect to your organization $ unth agent enroll --url https://app.unthrecover.com ✓ Enrolled as web-1 in "Acme" # 3. the agent runs jobs from the panel $ sudo systemctl enable --now unth-agent ✓ shop-db backup → restore test → VERIFIED
Everything a backup should have done all along.
Built for teams who run their own PostgreSQL — on bare metal, VMs, Coolify, Dokploy or Docker Compose.
Isolated restore test, every run
Each backup is restored into a fresh container with no network access, then rows, schema, sequences and extensions are compared with the source. Production is never touched.
Encrypted, signed offsite copies
Copies are encrypted with age before they leave the server, signed with Ed25519, then downloaded again and checked.
Bring your own storage
Any S3-compatible bucket or your Google Drive — connected in the browser, no desktop app.
Finds your databases
Discovers PostgreSQL containers on Coolify, Dokploy and Docker Compose and suggests ready-made jobs.
Clear failures, suggested fixes
When a run fails you get the category — connection, permissions, disk, missing extension — and what to do next.
Outbound-only agent
No inbound ports, no VPN. Requests are signed with the server's own key.
Docker volumes too
Volume backups with a consistency policy and file-level verification.
Open source core
The CLI and local panel are Apache-2.0 with no feature locks. The cloud is optional.
We see statuses. Never your data.
Backups go from your server straight into your storage. The cloud panel only receives summaries: status, size, duration, error category.
Your server
Runs the agent, the backups and the restore tests.
- Database credentials stay here
- Secrets decrypted only during a run
- Outbound HTTPS only
Unth Recover Cloud
Schedules, history, alerts and reports for your whole fleet.
- Statuses, sizes, durations
- Job definitions
- Secrets only encrypted to your server's key
- No backup files
- No database contents
Your storage
S3-compatible bucket or Google Drive, under your account.
- Encrypted before upload
- Signed and re-verified
- Your keys, your retention
Simple pricing. Free where it matters.
Prices in USD. Every plan uses your own storage, and Docker containers and databases on the same server cost nothing extra.
Community
forever
forever
- Open-source CLI and local panel
- Backup, isolated restore test, VERIFIED
- Encrypted offsite copies
No account needed to self-host.
Team
billed monthly
billed yearly
- Cloud panel for all your servers
- Schedules, Run now, Verify now
- Alerts by e-mail, Slack, Discord or webhook
- Run history and audit log
No card needed.
Business
billed monthly
billed yearly
- Everything in Team
- Invite your team: owner, admin, member
- Weekly recovery-test reports
- Printable reports for auditors
Upgrade any time in the panel.
MSP
billed monthly
billed yearly
- Everything in Business
- Each client isolated in its own organization
- Multi-client dashboard
- Client reports and REST API
Built for agencies and hosters.
Enterprise
Large fleets, SLA, paid technical support, custom terms and invoicing.
Questions, answered.
Does Unth Recover store my backups?
No. Backups are written on your server and copied to storage you own. The cloud panel receives summaries only — statuses, sizes, durations and error categories.
What exactly does “VERIFIED” mean?
The backup was restored into a brand-new, isolated PostgreSQL container and its tables, row counts, schema, sequences and extensions matched the source. If anything differs, the run is marked FAILED with the reason.
Will the restore test touch my production database?
No. The test runs in a throwaway container without network access. Your production database is only read by the backup itself.
Can I use it without the cloud?
Yes. The open-source CLI and local panel do everything on a single server for free, with no feature locks. The cloud adds central management for many servers.
Which databases and platforms are supported?
PostgreSQL 12 to 17 and Docker volumes, on any Linux server with Docker — including Coolify, Dokploy and Docker Compose setups.
What happens when the trial ends?
Your organization moves to Community. Servers you already connected keep working; to add more, choose a plan. No card is needed for the trial.
Find out if your backups really restore.
Connect a server in a few minutes and get your first VERIFIED tonight.