Is there a way to specify DISCOURSE_PORT next to DISCOURSE_HOSTNAME?

You can’t access discourse on a web browser on a nonstandard port. See How to set up Discourse on a server with existing Apache sites. There is also a similar topic for nginx, but you just need the discourse part so this one should do it for you.

You also need to remove the ssl and let’s encrypt templates. Also, no need to expose 443.