Pro & Business Feature

Your backups. Your storage.

Connect any of 13 storage providers and sh0 handles encrypted, scheduled, retention-managed backups automatically. No scripts. No cron. No manual uploads.

13 providers, one dashboard

Every S3-compatible provider uses the same code path. Add credentials, test, and you're done.

Amazon S3
Cloudflare R2
DigitalOcean Spaces
Backblaze B2
Wasabi
Hetzner Object Storage
MinIO
Generic S3
SFTP
FTP / FTPS
Dropbox
Google Drive
Local Filesystem

How it works

01

Add a storage provider

Go to the Storage page in the dashboard. Click "Add Provider", select your backend (S3, R2, SFTP...), enter credentials, and test the connection.

02

Credentials are encrypted at rest

All provider credentials are AES-256-GCM encrypted with your server's master key before being stored. They never leave your server in plain text.

03

Use as backup destination

When creating a backup schedule or triggering a manual backup, choose your storage provider as the destination. Backups are encrypted before upload.

04

Automatic retention & cleanup

Set a retention policy (e.g., 30 days) and sh0 automatically prunes old backups from your external storage. No cron scripts needed.

The backup pipeline

Database / Volume
Dump & Compress
AES-256-GCM Encrypt
Upload to Provider
Prune Old Backups

Streaming 4 MB chunks -- never buffers the full file in memory

Built for production

End-to-end encryption

Backups are AES-256-GCM encrypted in 4 MB chunks before upload. Each chunk uses a unique nonce derived from a per-file random prefix. Even if your storage is breached, data is unreadable.

Test before you trust

The "Test Connection" button writes a probe file, reads it back, verifies integrity, then deletes it. You know your storage is working before any backup relies on it.

One interface, 13 providers

Built on Apache OpenDAL -- a production-grade Rust storage abstraction used by Databend, RisingWave, and Mozilla. All providers go through one unified, tested code path.

Smart retention

Backups are pruned by timestamp after each successful upload. sh0 checks both file metadata and filename timestamps to ensure nothing is missed.

Streaming uploads

Files are read and encrypted in streaming 4 MB chunks. Your server never needs to hold the entire backup in memory, even for multi-gigabyte databases.

Self-hosted S3 ready

MinIO users get first-class support with automatic path-style addressing configuration. Your backups stay on your own infrastructure.

Without sh0

  • x Write custom backup scripts per database
  • x Manage cron jobs on each server
  • x Implement encryption manually (GPG, openssl)
  • x Install and configure rclone/aws-cli/s3cmd
  • x Write retention scripts to prune old files
  • x No dashboard -- SSH into each server to check

With sh0

  • Add provider in the dashboard, click "Test Connection"
  • Schedule backups with a cron expression
  • AES-256-GCM encryption happens automatically
  • 13 providers through one unified interface
  • Retention policy deletes old backups automatically
  • Full dashboard with history, status, and one-click restore

Questions & answers

Do I need external storage to use backups? +
No. sh0 supports local filesystem backups out of the box on the Free plan. External storage providers are available on Pro and Business plans for offsite backup security.
Are my credentials safe? +
Yes. All provider credentials are encrypted with AES-256-GCM using your server's master key before being stored in the database. The master key never leaves your server.
Can I use multiple providers? +
Yes. You can configure as many providers as you need and set one as the default. Different backup schedules can target different providers.
What happens if my storage provider goes down? +
sh0 retries failed uploads automatically. If the provider is unreachable, the backup is marked as failed and you receive an alert (if configured). Local backups continue independently.
Does sh0 support S3-compatible providers not on the list? +
Yes. The "Generic S3" option works with any S3-compatible API. Enter your endpoint, region, access keys, and bucket -- sh0 handles the rest.
Can I restore from external storage? +
Yes. sh0 downloads the encrypted backup from your provider, decrypts it locally, and restores it to your database or volume.

Stop writing backup scripts

sh0 handles the entire pipeline -- dump, compress, encrypt, upload, prune. You just choose where it goes.