Backups
Manual and scheduled backups to S3, Cloudflare R2, or S3-compatible storage — or a one-off download without storage — with retention, status, encryption, and integrity.
Fleetdock backs up databases with each engine's native logical dump tool — mariadb-dump
(or mysqldump) for MariaDB and MySQL, and pg_dump for PostgreSQL — gzips the output, and
streams it to object storage. Backups are checksummed and tracked as operations.
Backup destinations
A destination is where backups are stored. Fleetdock supports:
- Amazon S3
- Cloudflare R2
- S3-compatible buckets
Add a destination under Destinations, then use Test bucket to verify access.
These are the storage providers implemented in the current release. Destination secret
keys are encrypted at rest with FLEETDOCK_ENCRYPTION_KEY.
How backups work
A backup runs the engine's native dump command (mariadb-dump/mysqldump or pg_dump),
compresses it with gzip, and streams it to the destination through a presigned URL. The
agent moves the bytes but never receives your storage credentials — the Manager generates
the presigned URL. Fleetdock records the object location, a SHA-256 checksum, and the backup
size.
Manual backups
From a database's detail page, trigger a backup. It appears as an operation with status and progress on the Operations page.
Download a backup without storage
You don't need a bucket for a one-off backup. Open a database, choose Back up now →
Download to this computer, and your browser saves a <database>-<YYYYMMDD-HHMMSS>.sql.gz
file: the same gzipped pg_dump / mariadb-dump output a stored backup contains.
- Nothing is kept in Fleetdock. The dump streams from the database through the control plane straight to your browser. It is not written to disk or a bucket, has no checksum record, and does not appear in the backup history.
- The control plane runs the dump, so it must reach the database port — the same requirement as the data browser. SSH tunnels configured on the instance are used.
- Permissions: the same
backup:writeright as a stored backup. The dump runs as the instance's admin login. - Restoring: use Import SQL on the target database; it accepts the
.sql.gzas is.
Fleetdock first checks that the dump can start (tool installed, database reachable) and
reports a problem as a message. If the connection breaks mid-way, the file is truncated and
gunzip -t reports it as corrupt — download it again.
The API equivalents are POST /v1/databases/{id}/dump/check and
GET /v1/databases/{id}/dump.
Scheduled backups
Create recurring backups on the Schedules page. Each schedule targets a database, runs on a cron cadence, and has a retention window. The worker enqueues scheduled backups and prunes expired ones.
Retention
Retention is defined per schedule. When a backup ages out of its window, the worker deletes both the object and its metadata so storage does not grow unbounded.
Backup status and failure behavior
Every backup is a tracked operation. If a backup fails, the operation records the error, and — if you have configured notification channels — Fleetdock notifies you automatically. Configure email, Slack, or webhook channels on the Notifications page.
Backup encryption
Fleetdock encrypts credentials and destination keys at rest with envelope encryption. Object-level encryption of the backup contents in the bucket is provided by your storage provider — enable bucket encryption and keep buckets private. Presigned URLs are time-limited.
Downloading and deleting backups
Backups are listed per database. You can remove a backup, which deletes its stored object and metadata. Scheduled backups are also pruned automatically by retention.
Verifying backup integrity
Each backup stores a SHA-256 checksum. Restores verify that checksum before touching the target (see Restore), so a corrupted artifact is caught before it can overwrite a database.
Fleetdock does not currently perform a scheduled, standalone "test restore" of backups. Periodically restore a backup into a throwaway instance to confirm your recovery path end to end.
Database instances
Provision, register, and manage MariaDB, MySQL, and PostgreSQL instances — configuration, lifecycle, credentials, logs, and connecting external applications.
Restore
Restore a database from a backup — same or new instance, checksum verification, downtime expectations, and failure handling.