Backups
Stackpad automatically backs up all database and cache services based on your organization’s plan. Backups are stored on European S3-compatible storage (MinIO).
Backup schedule
| Plan | Frequency | Retention |
|---|---|---|
| Starter | Daily | 7 days |
| Pro | Every 6 hours | 30 days |
| Business | Hourly | 90 days |
How backups work
Stackpad uses the native backup tool for each database type:
| Database | Backup tool | Format |
|---|---|---|
| PostgreSQL | pg_dump | SQL dump |
| MariaDB | mysqldump | SQL dump |
| Redis | BGSAVE | RDB snapshot |
| Valkey | BGSAVE | RDB snapshot |
Backups run inside the database container, so they capture a consistent snapshot. The backup file is uploaded to encrypted S3-compatible storage on European infrastructure.
Viewing backups
- Open your project and select the database service
- Go to the Backups tab
- You’ll see all available backups with timestamp, size, and status
Restoring a backup
Restoring a backup is a manual process. You download the backup file and apply it to your database.
Step 1: Download the backup
In the Backups tab, click Download on the backup you want to restore.
Step 2: Connect to your database
To run a restore command, you need a way to connect to your database. There are two options:
Option A: Enable public access (easiest)
- Go to the database service’s Settings tab
- Enable Public access — this exposes the database on a TCP port
- Copy the connection string shown in the dashboard
- Use this connection string in the restore command below
Option B: Run restore from within Stackpad
If you have a “service” type container in your project (e.g. a worker), you can run the restore command from there since it has private network access to the database.
Step 3: Run the restore
PostgreSQL
psql "postgresql://user:pass@host:port/dbname" < backup.sqlOr with the pg_restore tool if the backup is in custom format:
pg_restore -d "postgresql://user:pass@host:port/dbname" backup.dumpMariaDB
mysql -h host -P port -u user -p dbname < backup.sqlRedis / Valkey
Redis backups are RDB snapshot files. To restore:
- Stop the Redis service
- Replace the RDB data file
- Restart the Redis service
Step 4: Disable public access
If you enabled public access in step 2, remember to disable it after the restore is complete:
- Go to the database service’s Settings tab
- Toggle Public access off
Multiple backups
If your plan includes frequent backups (Pro: every 6 hours, Business: hourly), you can choose which backup to restore from. Each backup is a point-in-time snapshot — pick the one closest to the state you want to recover.
What’s next?
- PostgreSQL — PostgreSQL-specific configuration and public access
- MariaDB — MariaDB-specific configuration