Add configurable S3 storage class for backups + archive restore workflow
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 37.4k
- Forks
- 3k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 73
Description
What problem will this feature address?
Dokploy backups currently rely on destination defaults for S3 storage class, so users cannot choose storage tier per backup policy. This makes it hard to optimize cost and retention (for example, archive long-term backups while keeping short-term backups in faster tiers).
Describe the solution you'd like
Add optional, provider-aware S3 storage class support for both database backups and volume backups, and add an archive-restore workflow in restore screens.
Proposed behavior:
- Add optional
storageClassfield to backup and volume backup models. - Show a storage class selector in backup forms with
Use destination defaultoption. - Validate selected storage class server-side based on destination provider.
- Pass the selected class to rclone upload (
--s3-storage-class) when valid. - In restore views, show per-file:
- storage class
- restore availability (
Ready,Restoring,Archived,Unknown) - readable-until time when available
- For archived objects, provide a “Request restore from AWS” action with:
- retrieval tier (standard/priority/bulk)
- restore lifetime (days)
- clear status feedback after request
This should allow safer, cheaper storage strategies while making cold-storage restore flows understandable.
Describe alternatives you've considered
- Managing storage classes only at bucket/destination level: simpler but not flexible enough for mixed retention strategies.
- Manually running cloud-provider restore operations outside Dokploy: works as a workaround but is operationally heavy and error-prone.
Additional context
I already have an implementation/prototype branch that includes:
- schema/API/UI updates for
storageClass - provider-specific validation
- restore availability/status display
- archive restore request flow
- tests and migrations
I’d like maintainer feedback before finalizing/adjusting this approach, especially on:
- provider/class mapping expectations
- restore UX expectations for archived objects
- migration safety requirements for real-world upgrade paths
Will you send a PR to implement it?
Yes
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the prototype branch’s schema/API/UI updates, provider-specific validation, migrations, and tests, then trace the rclone upload path and restore views. Done means database and volume backups support optional provider-valid storage classes, while restore screens show archive status and support restore requests with feedback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, typescript
- Domain
- backend, cloud, databases, devops, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100