Provider snapshots share the same failure domain as your VPS. If your account gets suspended, the datacenter has an outage, or you get hit with ransomware, the provider backup goes down with it. Real backup means independent, encrypted, offsite storage you control.
Most VPS providers offer snapshots or automated backups as a paid add-on. These are useful for quick rollbacks but have real limitations: they are stored in the same datacenter, often unencrypted, controlled by the same account that controls your VPS, and inaccessible if your account is suspended or the provider has an outage.
Independent offsite backup means your backup is physically elsewhere, encrypted with a key only you have, and accessible regardless of what happens to your VPS provider.
#!/bin/bash
set -euo pipefail
source /etc/restic/env
# Database dumps
pg_dumpall -U postgres > /tmp/pg_backup_$(date +%Y%m%d).sql 2>/dev/null || true
mysqldump -u root --all-databases > /tmp/mysql_backup_$(date +%Y%m%d).sql 2>/dev/null || true
# Back up everything
restic backup \
/etc /var/www /home /opt \
/tmp/pg_backup_*.sql \
/tmp/mysql_backup_*.sql \
--tag "$(hostname)" \
--exclude="/var/www/*/node_modules" \
--exclude="*/cache" \
--exclude="*/.git"
# Clean dumps
rm -f /tmp/pg_backup_*.sql /tmp/mysql_backup_*.sql
# Retention
restic forget \
--keep-daily 7 \
--keep-weekly 4 \
--keep-monthly 3 \
--tag "$(hostname)" \
--prune
sudo mkdir -p /etc/restic
sudo tee /etc/restic/env <<EOF
RESTIC_REPOSITORY=sftp:vaultuser@vault.servercrate.net:22150:/data
RESTIC_PASSWORD=your-strong-repository-password
EOF
sudo chmod 600 /etc/restic/env
restic init
A VPS running a typical web application or self-hosted service has a predictable set of data worth protecting:
Most VPS providers offer server snapshots. These are useful for quick rollbacks after a bad deploy, but they are not a substitute for offsite backup. Provider snapshots are stored in the same infrastructure as your VPS - a provider-level incident, account compromise, or provider bankruptcy can take out both your VPS and all its snapshots simultaneously. A truly independent encrypted offsite backup using restic to a separate provider like ServerCrate is the only protection against provider-level failures.
ServerCrate's Standard and Pro plans support multiple devices (3 and 5 respectively). If you run multiple VPS instances - a web server, a database server, a monitoring host - they can all back up to the same ServerCrate vault using different paths within the repository. Restic deduplicates across all of them, so shared software files and configs store only once. Manage all backups from one portal and pay one flat monthly fee.
On modern Linux VPS instances, systemd timers are the correct way to schedule unattended backups. Create a service unit that runs your backup script and a timer unit with Persistent=true to catch missed runs if the VPS reboots. See the systemd timer guide for copy-paste unit files. For older VPS images still using cron, a nightly cron entry works fine - just add logging so you can see when something fails.
restic restore.Flat pricing. No egress fees. Start free.
No egress fees, cancel anytime, 7-day money-back guarantee