Dokploy / Dokploy/dokploy

Add configurable S3 storage class for backups + archive restore workflow

Open
#3,840 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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 storageClass field to backup and volume backup models.
  • Show a storage class selector in backup forms with Use destination default option.
  • 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.