I would rate it 8/10 for ease of install, especially with the docker setup it is pretty easy.
Only slightly annoying setup task was getting the matrix bridges setup as you need to mess with some config and I had some issues getting it to work initially.
But once it was all setup, pretty solid for me ever since!
You can use whatever port if you’re proxying it to 8448 (assuming the container host is listening on that port which it would be by default).
If you use matrix.example.com and proxy port 443 to 8448 then it should work as your user would be @user:matrix.example.com.
You would need to portforward from outside your network if you want to access it and have it talk to other servers as they all need to communicate with your server.
Personally I wanted matrix to show my user as @user:example.com at my actual domain not as a matrix subdomain, so I had to setup the .well-known/server type http path to tell it my server is actually at matrix.example.com.