I've been using Restic for a while, and it's backing up to a Hetzner storage box (1TB).
Restic supports encryption, compression, deduplication, and can forget old backups in a spread out timeline (configurable; e.g. save one yearly, three monthly and 7 daily).
On top of this I also use healthchecks.io to make sure all backups are working.