Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Nettalco/dokploy/llms.txt

Use this file to discover all available pages before exploring further.

Dokploy includes a built-in backup system that can automatically dump and upload your databases to any S3-compatible object storage bucket on a cron schedule. Backups are managed per-service — each database or Compose stack can have its own independent backup schedule, destination, and retention policy — so you never have to rely on a separate cron server or third-party backup tool.

Supported Backup Sources

Dokploy can back up the following service types:
Service TypeBackup Method
PostgreSQLpg_dump
MySQLmysqldump
MariaDBmariadb-dump
MongoDBmongodump
libsqllibsql snapshot
Docker ComposeCompose service backup
Web ServerWeb server backup
Redis backups are not included in the database backup system because Redis persistence (RDB / AOF) is managed within the container. Use Docker volume backups to protect Redis data.

Storage Destinations

All backups are uploaded to an S3-compatible storage destination configured at the organisation level. Any provider that speaks the S3 API is supported, including:
  • AWS S3
  • MinIO (self-hosted)
  • Backblaze B2 (with S3-compatible endpoint)
  • Cloudflare R2
  • DigitalOcean Spaces
  • Vultr Object Storage
To create a destination, navigate to Settings → Destinations → Add Destination and fill in:
FieldDescription
NameA friendly label for the destination
ProviderOptional label for the provider type
EndpointS3-compatible API endpoint URL
RegionBucket region (e.g. us-east-1)
BucketTarget bucket name
Access KeyS3 access key ID
Secret Access KeyS3 secret access key
Additional FlagsExtra rclone flags for advanced configuration
Dokploy uses rclone under the hood to transfer backup files, which provides robust retry logic, compression, and multi-part uploads.
Store your S3 credentials securely. Avoid committing access keys to version control. If your storage provider supports IAM policies, create a dedicated key with write-only access to the backup bucket and no delete permissions to protect against accidental or malicious data loss.

Configuring a Backup

1

Open the database service

Navigate to the project and click on the database you want to back up (e.g. a PostgreSQL service).
2

Open the Backups tab

Click the Backups tab on the service detail page.
3

Add a backup

Click Add Backup. A form appears with the following fields:
  • Destination — select a previously configured S3 destination.
  • Database — the specific database name to dump (defaults to the service’s configured database).
  • Prefix — a path prefix inside the bucket for organising backup files (e.g. production/postgres).
  • Schedule — a cron expression defining when the backup runs.
  • Keep Latest N — how many backup files to retain; older files are deleted automatically.
  • Enabled — toggle to activate or suspend the schedule without deleting the configuration.
4

Save

Click Save. If the backup is enabled, Dokploy immediately registers the cron schedule. The first backup will run at the next scheduled time.

Cron Schedule Examples

# Every day at midnight
0 0 * * *

# Every day at 3:00 AM
0 3 * * *

# Every 6 hours
0 */6 * * *

# Every hour
0 * * * *

# Every Monday at 2:00 AM
0 2 * * 1

# Every 15 minutes (for high-frequency backups)
*/15 * * * *
Use crontab.guru to visually build and verify cron expressions before saving them in Dokploy.

Manual Backups

You can trigger a backup at any time without waiting for the scheduled run. From the Backups tab on any database service, click the Run Now (or Manual Backup) button next to a configured backup entry. The backup job runs immediately and uploads to the configured destination. Manual backups are available for all supported service types:
  • manualBackupPostgres
  • manualBackupMySql
  • manualBackupMariadb
  • manualBackupMongo
  • manualBackupLibsql
  • manualBackupCompose
  • manualBackupWebServer
After a manual backup completes, the Keep Latest N retention policy is applied, trimming older files in the same prefix.

Listing Backup Files

The Backup Files browser lets you inspect what has been uploaded to a destination without leaving the Dokploy dashboard. Navigate to Settings → Destinations, select a destination, and use the file browser to search for and navigate backup objects stored in the bucket. Files are listed using rclone lsjson and include the path, name, and size. The browser returns up to 100 matching files per search query and supports prefix-based directory navigation.

Restoring a Backup

Dokploy supports streaming restore operations directly from the dashboard. From the Backups tab, click Restore on a backup entry, select the backup file from the list, and confirm. Restore progress is streamed to the UI in real time. Supported restore targets mirror the backup sources:
  • PostgreSQL → pg_restore / psql
  • MySQL → mysql
  • MariaDB → mariadb
  • MongoDB → mongorestore
  • libsql → libsql restore
  • Docker Compose → Compose service restore
  • Web Server → web server restore
Always test your restore procedure before you need it in a real incident. Restore a backup to a separate staging database and verify the data is intact. A backup you have never tested is a backup you cannot rely on.

Volume Backups

In addition to database-level dumps, Dokploy supports Volume Backups for Docker volumes. Volume backups are configured per-service and can be scheduled to run against the same S3-compatible destinations as database backups. Supported service types for volume backups include applications, Compose stacks, and all database types (PostgreSQL, MySQL, MariaDB, MongoDB, Redis, libsql).

Build docs developers (and LLMs) love