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!
I run my own Dendrite server and have had it work pretty well.
Initially I chose Dendrite over Synapse as I heard about Synapse being quite heavy in terms of load, and my overall experience with Dendrite has been pretty good!
I run the server just for myself, but have it setup with Signal and Messenger bridges that work flawlessly (apart from one time when Facebook thought my account was hacked and had to reauth!)
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.