Backups

A backup model that matches your resources

Most panels back up “the whole site” as one tarball. Unicorn Panel backs up websites, databases, mailboxes, and panel config separately, each with the right semantics. Restore granularity matches what you actually intend to restore.

Per-resource layout

Organized by resource type, not by host

Backup files live where they make sense, and the Primary sees every backup row across the whole fleet, not just its own. Tabs filter by Websites, Databases, or Emails.

  • /backups/websites/<UID>/ : site files + tagged databases
  • /backups/databases/<name>/ : per-database SQL dumps
  • /backups/emails/<user>_at_<domain>/ : per-mailbox maildirs
  • /backups/other/system/ : panel DBs, zones, service configs

Restore

Put back exactly what you lost

Every website, database, and mailbox has a Restore button next to its Download button. Click it and you get a browsable view of what is actually inside that backup, with sizes, row counts, and message counts. Tick what you want. Leave the rest alone.

  • Restore one file, one table, or one mail folder without touching the rest
  • Or restore everything, in one click, from the same modal
  • Backups on another server restore in place, with no SSH and no manual unpacking
  • The modal reports how many files, tables, or messages were written

Websites, file by file

Browse the folder tree as it stood when the backup ran, with sizes and modified dates on every entry. Deleted one file? Tick that one file. The site container stops for the extract so nothing races the writes, then starts again on its own.

Databases, table by table

Every table in the backup is listed with an estimated row count and size. Overwrote one table by mistake? Restore that table. Or take the full restore and the database is rebuilt from the dump.

Mailboxes, folder by folder

INBOX, Sent, Drafts, Trash, Archive, and any custom folders, each with message counts and sizes. Merge is the default, so missing messages come back and today’s mail stays. One checkbox switches to a hard rollback.

Restore safety

Hard to do by accident

Type the name to unlock it

The Restore button stays locked until you type the target: the domain for a site, the database name for a database, the address for a mailbox. The server checks it again on arrival, so a tampered page cannot skip the step.

Your mail settings stay yours

A mailbox restore brings back mail data and nothing else. Passwords, quotas, aliases, and forwarders stay exactly as you set them.

Clean stop, clean start

Site containers are stopped for the extract and restarted the moment it finishes. Active IMAP sessions are closed cleanly so the mail server is not holding files open mid-restore.

How it runs

Incremental everywhere, with the right tool per resource

Incremental + weekly fulls

Daily incrementals keep each run small; a weekly full resets the chain so a restore never depends on months of history. Mail that moves between folders is tracked properly rather than silently duplicated.

Consistent DB dumps

Dumps are taken in a single transaction, so a busy database is captured as one coherent point in time rather than a smear of mid-write rows. Compression happens in the pipe, and a failure anywhere in it is reported.

Throttled, not disruptive

Set the share of CPU a backup run is allowed to take. Turn it down and backups get out of the way of the sites you are actually serving; turn it up when the box is quiet and you want them finished.

Schedule it by the hour

Pick the exact hours the runner fires, in the server’s local time, with presets for overnight, twice daily, every six hours, or hourly. Set it fleet-wide and override per host.

System safety snapshot

The panel’s own state is snapshotted live, without stopping it, alongside keys, DNS zones, and every service config tree. It is the net under the net.

Visibility & control

See it, run it, restore it, from one UI

Cross-server visibility

Download any secondary’s backup straight from the Primary. The file streams through, so it never has to land on the Primary’s disk first.

Retention windows

Separate daily and weekly retention (configurable). Orphan folders age out naturally and are removed once empty.

Manual / forced runs

“Backup now” whenever you want one, with a force-full option for when you need a complete copy before a risky change.

Per-mailbox restore

Restore a single mailbox without touching the rest of the server. It comes back exactly as it was, read and unread state included.

Per-host backup roles

Decide which hosts keep backup files locally and which push them off to remote storage. Backups do not all have to live in one place.

Backup before upgrade

Every panel upgrade snapshots state before it touches anything, so a bad upgrade is a restore rather than a rebuild.

Remote backups

Ship every run off the box

A backup that only exists on the server it came from is not a backup. After each run, archives are pushed to one or more remote destinations, in the order you set. If one target fails the others still run, and the failure is reported rather than swallowed.

  • S3-compatible object storage, SFTP, or rsync to anything you already run
  • Several targets at once, ordered, each enabled or disabled on its own
  • Test a target before you rely on it, straight from the settings page
  • Optionally delete the local copy once the transfer succeeds
  • Remote keeps its own daily and weekly retention, separate from local

Back up each resource the way it deserves.

Incremental files, full SQL dumps, per-mailbox maildirs, system safety net, all visible fleet-wide.