I currently perform a backup once a day and upload it.
The database is backed up using Discourse’s built-in backup feature, while the original images are backed up incrementally every day using restic.
Everything is uploaded to a cloud storage service, but the current drawback is that it only uploads to a single provider. Ideally, we should upload to multiple cloud storage services in the future.