I do this sort of stuff for work as well as for fun and I can give some tips as well as some examples.
I've setup plenty of Docker environments and there are a few ways to deploy containers that I like without having to rely on Kubernetes. Docker-compose, it comes with the docker install and makes it dead simple to create different environments, usually I'll setup a few of these compose yml files, each one with the site I want and whatever other service I need with it. The other option would be Ansible where you can tell your servers what to do and basically automate whatever you're looking to do, beit deploys, stress tests or status/health checks.
Another thing I recommend is setting up a Grafana service to monitor your stuff. It's very simple to setup alerts via email for when things go down, you really just find a premade dashboard customize it, setup the prometheus container or daemon and you're pretty much good to go.
In terms of self-hosting I mainly run things only I or people on my network can use such as Searx or NextCloud, otherwise I'll setup a VPS and host it remotely so others can use. My next goals are to run a Jellyfin server for music and movies, and then maybe a private invidious instance.
If anyone has any questions on Docker or self-hosting stuff then DM me and I can help.