I had a few machines lying around and I took it too far I guess.
I use Kubernetes (K3s) for bunch of services and a very small mini PC as a jump host. I use wake on lan to bring up my cluster on demand for the duration I need it and then shut it down to save power.
The mini PC has bunch of containers running including 'blocky' which basically is a software pi-hole without the pi.
Before all this though I used to use proxmox and let me tell you containers are the way to go. It has been super easy to set things up and in general way easier to manage everything.
I use ansible for basically automating everything.