How to backup server to set it up immediately again

Over time I’ve set up a server with many services that is now also used by a small business that can’t afford a downtime, because the server acts as a cloud storage and mail server.
Setting up the server again from a fresh start would take to much time. Days, if not a week.

I have to make sure, that if something happens, I can set up the server immediately again in 1 day.
Currently I’m doing daily backups for certain directories like /etc, /home, /srv, /var, etc., dump the databases and store it on a second harddrive. From time to time I download a backup from the server to my local computer.
For doing a complete disc image with dd is not enough space on the server. And because it’s a dedicated one somewhere in a data center, there is no easy option to extend storage by a sufficient amount for now.
Does dd over the internet with ssh makes sense? A backup is currently ~10GB in size and it takes 10-30min to download. The drive is 512GB in size, so download a full image would be to long. Not a efficient solution.

I guess the best option is a clone, but that won’t work anymore if the hardware changed due to broken hardware.
It would be easier to have a VM host, where I just have to copy the VM to have a complete backup and on a new server I would just have to install the VM host software again, upload the cloned VM and starting it.

Whats a good solution for this problem?