A lot of people recommend Docker, but I will go further and say to specifically use Docker compose.
That way all the configuration is in a file that you can backup/restore. Updating is really easy, and you will never forget one of the random flags you need to set.
I’ve been using Void Linux for my home server for a few years now. It uses runit instead of OpenRC, and I haven’t had any problems with it. I would recommend the glibc version over the musl version.
Got 1 VM using KVM (Home Assistant), about a dozen docker containers, and a couple of services running on their own.
Feral Developer Level 3