Install with docker and without nginx

I want to deploy mattermost with docker compose, I have nginx proxy manager with ssh ready
what should I do?
can I change the listening port to 443?
I must change “Connection Security” to TLS? or it handled by npm?
Can you please help me to run the service?

Hi @farhaadn ,

If you want to use an external nginx, you can do so by using the following yml files to start the Mattermost docker environment:

docker-compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d

The listening port should be left untouched, the application will listen on port 8065 then and it will be unencrypted.
The nginx proxy manager then needs to connect to the Mattermost backend, which should then be available on http://localhost:8065 and by accessing the service through your nginx proxy manager, you will then also have the encryption and public IP active.

1 Like

Thank you for your reply,
How can use HTTPS and what is the port?
look at the below picture pls, this is what I configure in NPM is the host IP that the container runs on it, how can I forward it to HTTPS?

and this
When I switched Scheme to http, and I enter everything is ok, but when switched to https, not working

nginx proxy manager does the SSL, the Mattermost backend does not need https, so change the scheme to http and you’re all good.
The connection looks like this then:

internet user → nginx proxy manager (on port 443, ssl encrypted) → mattermost container (on port 8065, no encryption)

1 Like

So, why browser tell me the website is not secure?

Most likely because your MM_SERVICESETTINGS_SITEURL in the docker deployment’s .env file points to the http URL. You need to make sure that the SiteUrl Mattermost sees (it uses it for generating links to static resources, f.ex.) points to the URL the users access, so although the Mattermost application server is not running on but on http://localhost:8065, the SiteUrl needs to be set to

1 Like

In .env file I have these:

oh it was my fault, site not redirect to https, so I put https in the first and everything is good now

so how can I enable “Forward port 80 to 443:” with these configurations you mentioned above? or another way to redirect http to https

You would do the redirect from 80 to 443 in your nginx proxy manager but I think you already found that out now :slight_smile:

1 Like

Yes, I found it :wink:
Thank you so much