Automated Backups and Disaster Recovery for Hosting Resellers

Published on | Updated

Set up automated backups and a disaster recovery plan for your hosting reseller business: Pterodactyl schedules, off-site storage and recovery steps.

A technician with a tablet in a data center aisle between server racks

Losing customer data is the fastest way to kill a hosting business. One unrecoverable server failure without backups means lost customers, refund demands, and permanent reputation damage. Here is how to prevent that.

Backup Strategy

The 3-2-1 Rule

This is the minimum standard:

  • 3 copies of data (original + 2 backups)
  • 2 different storage types (local NVMe + remote object storage)
  • 1 off-site copy (different datacenter or cloud provider)

Backup Types

Full backups: Complete copy of all data. Large storage requirement. Run weekly.

Incremental backups: Only what changed since last backup. Fast and storage-efficient. Run daily.

Snapshot backups: Point-in-time copy of a filesystem or disk, where your platform supports it. Take one before risky operations.

Automated Backup Implementation

For Game Servers (Pterodactyl)

Pterodactyl's own backups are scheduled in the panel's Schedules tab, not with cron jobs you write yourself:

  1. Give each server a Backup Limit, for example 3 backups per server. You set it in the admin area under Application Feature Limits, when you create the server or later in its Build Configuration. With a limit of 0, no backups can be made at all, scheduled ones included.
  2. In the server's Schedules tab, create a schedule with the cron-style fields Minute, Hour, Day of month, Month and Day of week. Minute 0, Hour 4 and * in the other three runs it every day at 04:00. Then add a task with the action Create backup; its optional Ignored Files field excludes files, and by default the server's .pteroignore file is used.
  3. Retention comes from the Backup Limit. When a scheduled backup runs and the server is at its limit, the panel first deletes the oldest backup that is not locked. Lock a backup in the Backups tab to keep it out of that rotation. The panel has no separate rule such as "keep 7 daily, 4 weekly".

Behind the tab, the panel's own cron line (* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1) checks the schedules every minute, and the queue worker (pteroq) sends each due task to the node. Both are part of the panel install, not something you add per server.

By default the panel stores backups locally through Wings, in /var/lib/pterodactyl/backups on the same node as the server, so a lost node takes its backups with it. For the off-site copy, switch the panel to S3 or S3-compatible storage with APP_BACKUP_DRIVER=s3 and the AWS_* settings in its .env, as the docs describe.

The server backups do not cover the panel itself. Our Pterodactyl backup guide lists what else to save: the panel database, APP_KEY, each node's config.yml and the server databases.

For VPS/Server-Level Backups

Use a backup tool like restic or borgbackup:

# Once: create the repository (restic asks for a password; lose it and the data is lost)
restic -r /backup/repository init

# Daily backup with restic
restic -r /backup/repository backup /var/lib/pterodactyl/volumes/ --exclude-caches

# Prune old backups (keep 7 daily, 4 weekly, 6 monthly)
restic -r /backup/repository forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

/var/lib/pterodactyl/volumes is the default server file directory on a Wings node. To run these from cron or a systemd timer, give restic the password with --password-file or the RESTIC_PASSWORD_FILE variable. A repository on the same disk only protects against deletion: for the off-site copy, point -r at an SFTP server or S3-compatible storage, which restic supports as well. Game servers keep writing their files while they run, so copy them when they are quiet, or rely on the panel's backups for the game data.

Off-Site Storage

Store backups in a different location:

  • Backblaze B2: S3-compatible object storage from $6.95 per TB per month (pay as you go), with free egress up to three times your average monthly storage (pricing page, checked 31 October 2026)
  • Wasabi: S3-compatible storage from $7.99 per TB per month (pay as you go) with no fees for egress or API requests, but a 90-day minimum storage duration and a minimum monthly charge tied to 1 TB of active storage (pricing page, checked 31 October 2026)
  • Second VPS in different datacenter: rsync or rclone

Disaster Recovery Plan

Scenarios to Plan For

  1. Single server failure: Hardware issue on one node
  2. Data corruption: Filesystem or database corruption
  3. Accidental deletion: You or a customer deletes critical files
  4. Security breach: Ransomware or unauthorized access
  5. Complete datacenter failure: Extremely rare but plan for it

Recovery Procedures

Document step-by-step procedures for each scenario:

Single Server Recovery

  1. Identify the failure
  2. Provision replacement hardware/VPS
  3. Restore from most recent backup
  4. Update DNS/connection details if needed
  5. Notify affected customers

Data Corruption Recovery

  1. Stop the affected service immediately
  2. Identify the scope of corruption
  3. Restore specific files or full backup to a clean environment
  4. Verify data integrity before bringing service back online

Recovery Time Objectives

Define how fast you need to recover, for example:

  • Game servers: 1-4 hours (customers notice quickly)
  • Billing/panel: 2-8 hours (less time-critical but important)
  • Website: 4-12 hours (visible but not operationally critical)

Testing Backups

Backups that have never been tested are not backups. Schedule quarterly restore tests:

  1. Pick a random backup from last month
  2. Restore it to a test environment
  3. Verify the data is complete and functional
  4. Document the process and any issues found

Communication During Disasters

Have a communication plan ready:

  • Status page updated immediately
  • Discord announcement within 15 minutes
  • Email to affected customers within 1 hour
  • Post-mortem analysis shared within 48 hours

Customers forgive downtime if you communicate honestly and recover quickly. They don't forgive silence and data loss.

Cost of Not Having Backups

Calculate the real cost:

  • Customer refunds for data loss
  • Lost recurring revenue from customers who leave
  • Reputation damage (negative reviews)
  • Time spent on damage control instead of growing

Compare that to the cost of off-site backup storage: at Backblaze B2's listed $6.95 per TB per month, 500 GB of backups costs under $3.50 a month, and the first 10 GB are free (checked 31 October 2026).

Invest in backups before you need them. The day you need a backup and don't have one is the day your hosting business faces an existential crisis.

Sources

All opened on 31 October 2026: