Backups & Restore
Vessl can back up your database add-ons (PostgreSQL and MySQL/MariaDB) on demand or on a nightly schedule. Backups can be restored directly from the dashboard.
Backups are supported for PostgreSQL and MySQL add-ons. Redis and SQLite are not currently supported.
Accessing backups
Go to your app → Add-ons tab → click the database add-on → Backups tab.
Taking a manual backup
Click Back up now. Vessl starts a database dump immediately. The backup appears in the Recent backups list once it completes, showing the timestamp, destination, and whether it's encrypted.
Scheduled nightly backups
Enable the Enable scheduled nightly backups toggle to have Vessl automatically back up the database every night.
You can optionally set:
- Nightly time — the time to run (HH:MM format). Leave blank for automatic scheduling.
- Retention days — how many days to keep backups before automatically pruning older ones. Plan limits apply.
Backup destinations
There are two places a backup can be stored:
Internal (Free) The dump is stored on the same server as your database. Fast to back up and restore. Not suitable as a disaster-recovery solution — if the server is lost, the backup is too.
Your S3 / R2 bucket (Pro) The dump is encrypted with AES-256 and uploaded to an S3-compatible bucket you provide (AWS S3, Cloudflare R2, or any S3-compatible endpoint). This is a true off-host backup — your data is safe even if the server is destroyed.
To use BYO storage, provide:
- Endpoint URL (e.g.
https://<account>.r2.cloudflarestorage.com) - Bucket name
- Region (optional for R2)
- Access key and secret key
Scheduled backups and BYO (off-host) backup destinations require the Pro plan. On Hobby or Starter, you can still take manual backups using the Console (e.g. pg_dump for PostgreSQL), but there's no scheduled backup in the dashboard.
Restoring a backup
Find the backup in the Recent backups list and click Restore.
Restoring a backup replaces all current data in the add-on with the backup's contents. This cannot be undone. Make sure you have a recent backup before restoring if you want to preserve current data.
The restore runs in the background. When it completes, your app will have the database state from the point when the backup was taken.
Retention limits
The number of days backups are kept before auto-pruning depends on your plan:
| Plan | Max retention |
|---|---|
| Hobby | Not available |
| Starter | Not available |
| Pro | 30 days |