I couldn't agree more. I use a similar setup and serving over 500K monthly users on this single machine. The only thing I would change is that in my experience docker-compose isn't stable enough and it's hard to run predictable workloads without resetting the machine from time to time.
I opted of K3S which give me two benefits. 1. Predictable stable containers running and also restarting all the deployment automatically and 2. If I do need to migrate to bigger cluster / AWS cloud, I got everything ready in my K8S yml files.