I also use the server as remote development machine, the server is much faster than machines of my school and all containerized development avoid the "it works on my machine" problems...
The infrastructure is self hosted on my personal servers (HPE micro-server gen10+, raspberry pi 4) and all my services are containerized and orchestrated with Docker Swarm.
It uses Traefik as a proxy to manage all the routes to subdomains and their certificates. When connected to the docker engine this proxy is very easy to manage.
Alerts from the raspberry pi and some cloud services are configured to warn me in case of hardware or system problems on my server as well as if my websites are down.
The server is configured for high availability with 2 redundant raid 1 bootable root partition / data partition.