S3-Compatible Storage
Configure AWS S3 or an S3-compatible backup destination.
Easypanel supports AWS S3 and services that expose an S3-compatible API. The provider presets supply examples for common services, while Generic S3 supports another compatible endpoint.
Supported presets
- AWS S3
- Cloudflare R2
- DigitalOcean Spaces
- Backblaze B2
- Wasabi
- Generic S3
The preset changes field suggestions; every provider is accessed through its S3-compatible API.
Before you begin
Create a bucket and a dedicated credential at the storage provider. Scope the credential to that bucket and allow:
- listing the bucket;
- reading objects for restores;
- writing objects for backups;
- deleting objects for database retention and volume synchronization.
If you do not use retention or volume backups, delete permission may not be required for a successful upload, but recovery and cleanup should still be planned.
Configure the provider
- Open Settings → Server → Storage Providers.
- Select Add Provider, then choose the S3 provider preset.
- Complete the fields:
- Name identifies this connection inside Easypanel.
- Access Key ID and Secret Access Key authenticate the request.
- Bucket is the existing destination bucket.
- Region must match the bucket or provider API.
- Endpoint is the S3 API endpoint. AWS normally uses the preset's empty endpoint; compatible services require their endpoint.
- Storage Class is optional and controls the class assigned to new objects.
- Save the provider.
- Create a backup and perform a manual run.
- Confirm that the backup object exists below the configured destination path.
Saving runs a listing request through rclone. Could not connect means that
the server could not authenticate, reach the endpoint, locate the bucket, or
list it.
A successful save does not test object uploads, downloads, or deletion. Use a manual backup and a non-production restore to verify the complete permission set.
Provider-specific values
Use values from the provider's S3 API or object-storage settings:
| Provider | Typical region or endpoint form |
|---|---|
| AWS S3 | Region such as us-east-1; endpoint can normally remain empty |
| Cloudflare R2 | Region auto; endpoint contains the account ID |
| DigitalOcean Spaces | Region and endpoint use a datacenter such as nyc3 |
| Backblaze B2 | Region and endpoint use the bucket's B2 S3 endpoint |
| Wasabi | Use the region and endpoint assigned to the bucket |
| Generic S3 | Use the exact region and S3 API endpoint from the provider |
Do not enter a provider's browser console URL as the endpoint.
Storage classes
Leaving Storage Class empty uses the provider default. Easypanel offers suggestions for AWS S3, Cloudflare R2, and Generic S3, but the provider decides which classes are valid.
Objects uploaded to AWS GLACIER or DEEP_ARCHIVE cannot be read
immediately. Restore the object through AWS first and wait until it is
available before starting an Easypanel database restore.
Storage-class minimum duration, retrieval, and deletion charges are controlled by the provider. Review those rules before applying an archival class to frequent backups.
Paths, retention, and versioning
The backup's destination path is stored below the configured bucket:
s3://your-bucket/production/orders-postgres/Use a unique path for each database or volume. Database retention deletes the oldest files found in its path. Volume backup uses synchronization and can delete destination objects that no longer exist in the source volume.
Provider-side object versioning can protect against accidental overwrite or deletion, but it also consumes additional storage. Configure lifecycle rules at the provider and test how to recover a previous object version.
Troubleshooting
Could not connect
- Confirm that the Easypanel server can resolve and reach the endpoint.
- Check access key, secret, bucket, region, and endpoint for extra spaces.
- Confirm the credential can list the bucket.
- Make sure the endpoint is the S3 API endpoint, not the web console.
- Check whether the provider requires a different region value.
Backups upload but retention fails
Grant delete permission within the destination path. Also verify that no provider retention lock or object-lock policy prevents deletion.
Restore cannot read an object
Check read permission and the exact object path. For an archival storage class, restore the object at the provider before retrying Easypanel.
See Storage Providers for shared permission, validation, and deletion behavior.