Search code examples
gitlabcertificatelan

Why do I need to install certificates for an external URL when installing gitlab?


I am confused.

For now, I just want to self-host gitlab in my local home network without exposing it to the internet. Is this possible? If so can i do this without installing ca-certificates?

Why is gitlab force (?) me to expose my gitlab server to the internet?

Nothing else I've locally installed my NAS/Server requires ca certificates for me to connect to its webservice?: I can just go to xyz.456.abc.123:port in chrome

e.g. in this article, the public url is referenced: https://www.cloudsavvyit.com/2234/how-to-set-up-a-personal-gitlab-server/


Solution

  • You don't need to install certificates to use GitLab and you do not have to have GitLab exposed to the internet to have TLS security.

    You can also opt to not use TLS/SSL at all if you really want. In fact, GitLab does not use HTTPS by default.

    Using docker is probably the easiest way to demonstrate it's possible:

    mkdir -p /opt/gitlab
    export GITLAB_HOME=/opt/gitlab
    docker run --detach \
      --hostname localhost \
      --publish 443:443 --publish 80:80 --publish 22:22 \
      --name gitlab \
      --volume $GITLAB_HOME/config:/etc/gitlab \
      --volume $GITLAB_HOME/logs:/var/log/gitlab \
      --volume $GITLAB_HOME/data:/var/opt/gitlab \
      -e GITLAB_OMNIBUS_CONFIG='external_url "http://localhost"' \
      gitlab/gitlab-ee:latest
    
    # give it 15 or 20 minutes to start up
    
    curl http://localhost
    

    You can replace http://localhost in the external_url configuration with the computer hostname you want to use for your local server or even an IP address.