- Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, Hetzner, MinIO — tested before saving, secret stored encrypted
- Plans per project: which services, which volumes, cron schedule in your time zone, retention
- Volumes stream straight from the server to the bucket in 16 MB parts, nothing through the panel
- Managed MariaDB backed up as a consistent SQL dump while running
- Sealed
project.dockxo(scrypt + AES-256-GCM, your passphrase) in every run - Restore a whole project from a bucket, even on a brand-new panel
Plans
Add buckets under Settings → Storage. A project’s Backups tab holds plans: which services, which of their volumes, a cron schedule in your time zone with a preview of the next runs, and how many backups to keep. Runs are jobs, so they can be followed and cancelled, and old runs past the retention are deleted from the bucket.
How a run works
Volumes are packed on their own server and uploaded straight to the bucket in 16 MB parts — flat memory, nothing through the panel, so a large volume never takes the panel or the server down. A managed MariaDB is backed up as a consistent SQL dump while it keeps running; other services can be paused while their files are copied, and a container left paused by an interrupted backup is resumed when the agent starts. History shows every run with its items, sizes, errors and signed download links.
The sealed project file
Each run starts by saving project.dockxo: every setting and secret of the project, sealed with a passphrase set on the plan (scrypt + AES-256-GCM), next to a plain run.json summary. A bucket is therefore enough to find and restore a project even if the panel is gone. A plan may also back up the config only.
Restore
Projects → Restore lists every backup found in a bucket, grouped by project. Pick a run, enter the plan’s passphrase and review what comes back: services, volumes, domains, the data saved in that run and which of your servers each source server maps to (matched by IP, then name). The project is recreated as a new project with every service’s settings, env, mounts, domains, redirects and backup plans; ticked volumes are refilled and SQL dumps loaded, then the services are deployed in dependency order — database primaries, replicas, routers, apps, caches, balancers. Volumes that were not backed up come back empty with the same settings.