Resource Backups Free
Back up your applications, services, and databases — including Docker volumes, configuration files, and full snapshots — on a schedule or on demand.
Overview
Coolify's built-in backups cover database dumps (pg_dump, mysqldump, etc.). Resource Backups extends this to cover any resource type with multiple backup strategies:
- Volume backups — tar archives of Docker volumes
- Configuration backups — docker-compose files, environment variables, and resource settings
- Full backups — combined volume + configuration snapshots
Backups can be stored locally, uploaded to S3-compatible storage (with optional encryption), or both.
Backup Types
| Type | What's Included | Best For |
|---|---|---|
| Volume | All Docker volumes attached to the resource | Preserving application data (uploads, databases, state) |
| Configuration | Docker compose, environment variables, resource settings | Disaster recovery of deployment configuration |
| Full | Volumes + configuration in a single archive | Complete point-in-time snapshots |
Creating a Backup Schedule
- Navigate to the resource you want to back up (Application, Service, or Database)
- Open the Backups tab
- Click + Add Backup Schedule
- Configure:
- Backup Type — volume, configuration, or full
- Schedule — cron expression (e.g.,
0 2 * * *for daily at 2 AM) - S3 Storage — optionally select an S3 storage destination
- Keep Locally — whether to retain a local copy
- Local Retention — how many local backups to keep
- Click Save
0 2 * * *— Daily at 2:00 AM0 */6 * * *— Every 6 hours0 2 * * 0— Weekly on Sundays at 2:00 AM0 2 1 * *— Monthly on the 1st at 2:00 AM
Manual Backups
To trigger an immediate backup outside the schedule:
- Go to the resource's Backups tab
- Click the Backup Now button next to a schedule
- The backup runs immediately and appears in the execution history
S3 Upload
When an S3 storage is selected for a backup schedule:
- Backups are uploaded after creation
- If the S3 storage has Encrypted S3 Backups enabled, the backup is encrypted before upload
- Local copies are kept or pruned based on the retention setting
- The
is_encryptedflag on each execution indicates whether encryption was applied
Retention Policies
| Setting | Description |
|---|---|
| Keep Locally | Whether to keep backups on the server's filesystem |
| Number of Local Backups | Maximum number of local backups to retain (oldest are deleted first) |
| S3 Retention | Managed by your S3 lifecycle policies (configure in your storage provider) |
Local backups consume disk space on your server. Set a reasonable retention count or use S3 upload to offload storage.
Restoring from a Backup
- Go to the resource's Backups tab
- Find the backup execution in the history
- Click Restore
- For S3-stored backups, the file is downloaded (and decrypted if encrypted) before restoring
- For volume backups, the Docker volume contents are replaced with the backup data
- For configuration backups, you can review and apply the saved settings
API
Backup schedules can be managed via the REST API.
# List all backup schedules
curl -H "Authorization: Bearer $TOKEN" \
https://coolify.example.com/api/v1/resource-backups
# Create a backup schedule
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"resource_type": "application",
"resource_id": 42,
"backup_type": "full",
"frequency": "0 2 * * *",
"s3_storage_id": 1,
"keep_locally": true,
"number_of_backups_locally": 5
}' \
https://coolify.example.com/api/v1/resource-backups
# Get schedule details and execution history
curl -H "Authorization: Bearer $TOKEN" \
https://coolify.example.com/api/v1/resource-backups/1
# Delete a schedule
curl -X DELETE -H "Authorization: Bearer $TOKEN" \
https://coolify.example.com/api/v1/resource-backups/1
Resource Types
When using the API, the resource_type parameter accepts:
applicationservicedatabasecoolify_instance(noresource_idneeded)
Troubleshooting
Backup job fails
- Check the execution logs in the Backups tab
- Verify the resource is running — volume backups require active Docker volumes
- If using S3, confirm the storage credentials are valid
Large backups time out
Volume backups on large datasets may take significant time. Consider:
- Scheduling backups during low-traffic periods
- Using configuration-only backups for fast disaster recovery
- Using incremental strategies at the S3 provider level