Backups that live on the same server as your data aren't backups — they're redundant copies. If the server has a catastrophic failure, a ransomware infection, or is destroyed by a fire in the data centre, on-server copies are gone along with the original.
We take daily offsite backups using Backblaze B2 object storage. Here's the full chain.
What We Back Up
For each customer account, a complete backup includes:
- All files in your web root and subdirectories
- Your PostgreSQL database dump (Ember plan and above)
- Your SQLite database file (used by WordPress installs by default)
- Your mailbox data (if you have email hosting)
- Your domain's DNS zone configuration
- Your account metadata (plan, settings, SSH keys)
The backup is encrypted before it leaves the server.
The Backup Schedule
Backup frequency is tied to your plan — higher plans get more frequent snapshots and a tighter restore granularity:
| Plan | Backup interval | Snapshots kept | Restore window | |---|---|---|---| | Flameling | Every 24 hours | 7 | ~7 days | | Ember | Every 12 hours | 14 | ~7 days | | Blaze | Every 6 hours | 28 | ~7 days | | Inferno | Every 30 minutes | 168 | ~3.5 days |
Backups are staggered across accounts to distribute I/O load. Snapshots beyond the per-plan keep-count are pruned automatically after each new backup — that's how Inferno trades a slightly shorter window for sub-hour granularity (you'd never lose more than 30 minutes of data, but the oldest restore point is ~3.5 days old). Flameling/Ember/Blaze all give you about a week to roll back from.
How It Gets to Backblaze B2
The backup process runs on our server. It:
- Creates a local snapshot of your files and database
- Compresses the snapshot with gzip
- Hands it to restic, which encrypts with AES-256 + Poly1305 authentication using a per-repository key that never leaves our infrastructure
- Uploads the encrypted archive to Backblaze B2 via their S3-compatible API
The data that leaves our server is already encrypted. Backblaze sees encrypted bytes, not your site content.
Restoring from Backup
To restore, we:
- Download the encrypted archive from B2
- Decrypt it locally
- Decompress and extract files and database dumps
- Restore files to your web root
- Restore your database (PostgreSQL or SQLite depending on your setup)
- Verify the site loads correctly
Full restore typically takes 5–20 minutes depending on your backup size. We can restore to the live site or to a staging directory if you want to verify before replacing live files.
What You Can Request
From your customer panel, you can see the last 7 daily backups and their sizes. You can trigger an on-demand backup at any time (useful before making major site changes). Restore requests go through email or your portal ticket — we aim to complete them within 2 hours during UK business hours.
What Backups Don't Protect Against
Backups protect against accidental deletion, site corruption, server failure, and ransomware (since offsite copies predate the infection). They don't protect against gradual data corruption that you don't notice for weeks — if the corruption predates all your retained backups, we can't restore a clean state.
For active WooCommerce stores or other applications with high-value transactional data, an Inferno plan's 30-minute backup cycle provides the tightest recovery window. Contact us if you have specific requirements.