GitLab-CE Omnibus Docker container disable HTTPS

I added the following to my OMNIBUS variable:
external_url “https://some.domain.name
gitlab_rails[‘trusted_proxies’] = [‘192.168.1.151’]
gitlab_rails[‘gitlab_shell_ssh_port’] = 24
nginx[‘listen_port’] = 84
nginx[‘listen_https’] = false

I want the container to listen to HTTP on port 84, reason being my reverse proxy lives on port 80 and 443 on the same box .
I also don’t need to user HTTPS hence the false for the listen_https .
However when I deploy the container it redirects me to https even though I specifically set false for https.

I even tried to set …:84 on the external URL.

Any ideas?

I figured it out, removing the external_url enables me to run this behind a reverse proxy using https with http being at port 84 and ssh on port 24.

No need to specify external url for reverse nginx proxy hence no https redirection.

You are right but not setting external_url will result in gitlab giving wrong url for your gitlab projects like
git clone git@8473992dE832:yacine.laz/test-project.git

That is correct, the workaround for this is to set the host name for the container.

--hostname git.subdomain.domain.com

This is needed for the reverse proxy, use your domain name here instead of the external url omnibus varaible.
Since the external url can not be set if you are not using https, this is the work around. When no external url is set, the project clone urls are created from the container hostname. So this is why you have to set the container hostname when using the docker behind a reverse proxy.
My Docker container is picking this up for all the repo addresses and all my urls work behind a nginx reverse proxy now.

2 Likes