Over the years, this homelab has taken many forms.
It started with spare, old tower machines where everything was installed directly on the host. Easy to setup but a pain to maintain and scale if anything important was running.
From there, I moved to virtual machines which brought some much needed isolation and flexibility which eventually led to a containerised setup within these VMs.
Once I had some more powerful hardware I moved to Proxmox, which ran for several years. It was a great setup for both VMs and containers and really made experimentation easy.
Eventually though, things had to evolve and I wanted to condense my homelab to something physically smaller. This led me to the Tiny PCs and then the idea of running Kubernetes cluster - a learning curve for sure but, that's to be expected.
I opted for K3s due to the lighter footprint against the already low-end resources - which is still the current setup.
Everything is now deployed and managed through Kubernetes manifests and GitOps pipelines, and fortunately on a much smaller sized setup.