Is GitLab hard to install?

GitLab Fan
GitLab Fan Club
Published in
3 min readJan 19, 2017

--

The whole post is a reaction on this tweet:

TLDR: No.

Everyone who tried to install GitLab in the past two years, know that it’s damn easy to install. If you find someone who still thinks that GitLab is hard to install, send them this article.

Why do people think GitLab is hard to install?

GitLab as an open source project has a pretty long history. It was started in 2011 and is written on top of Ruby on Rails.

Ruby on Rails applications have a lot of moving parts: a database, cache storage, HTTP server, SSH, and so on. And the more powerful application becomes, the more components you had to care about during app installation and upgrade. GitLab is no exception here:

GitLab architecture diagram

In the early days GitLab was hard to install. It was a long list of instructions you had to follow to get everything working properly.

Why GitLab is easy to install

When GitLab became a commercial company, complexity of installation was one of the first solved problems.

All you need to do today to get the whole internal GitLab infrastructure installed is to run “apt-get install gitlab” (in Ubuntu linux)

A picture is worth a thousand words

GitLab’s marketing promises that it takes two minutes. Two minutes installation can’t be very hard, right? Let’s check it!

don’t try to click the button above, it is just a screenshot from about.gitlab.com ;)

I created 2 Gb droplet on Digital Ocean, and followed GitLab’s installation instructions:

three steps to follow

Here’re the results:

Installation of required dependencies(curl, openssh-server, ca-certificates, and postfix) took 4 minutes and 30 seconds. GitLab installation and configuration took three more minutes.

So, we were not able to install GitLab CE in 2 minutes on the 2Gb machine. It took about 10 minutes if we take network latency into account.

But was it hard? Hell no!

How does it work? (technical details)

Packages are generated with a tool called omnibus, developed by Chef. It lets you create full-stack packages for your project across many operating systems, so you don’t need to install and configure Nginx or Postgres separately. All dependencies are included in packages, and as far as I understand shouldn’t conflict with your system packages.

What about Docker?

If in the Era of Docker the above sounds too old school for you, check the official Docker image.

There is also a community supported Docker-based way to install GitLab. As far as I understand the difference, is that instead of one image, it is a set of separate Docker images, which might sound for someone like a more proper way to do container-based deployments.

Installation from sources

Of course, there is a way to install GitLab manually like in good old times. But note that it is not recommended by GitLab, and by doing so you create additional work for future administrators.

Some people install GitLab on not officially supported operating systems. Some people want to control every line of their Nginx configuration.

I won’t experiment with installation from sources if you’re CE user without a support plan because your support tickets will have low priority.

Experiment time!

Now ask your friend administrator(who had to support Atlassian’s stack of tools for example) what he thinks about GitLab installation process. If he is not familiar with GitLab yet, I bet he will be surprised in a very good way ;)

--

--