Install GitLab CE on CentOS

Updated on November 4, 2015
Install GitLab CE on CentOS header image


When talking about online git services, a popular option is GitHub. But for privacy, flexibility and/or network speed purposes, you might want to deploy a git service on a cloud machine under your control. In this case, you can use GitLab Community Edition (CE) to reach your goal.

GitLab can be installed on Ubuntu, Debian, CentOS, RHEL, Scientific Linux, and Oracle Linux; other *nix distributions are not officially supported. In this tutorial, I will show you how to install a GitLab Community Edition (CE) omnibus RPM package on a Vultr CentOS 6 x64 server.


Before moving on, you need to:

  • Pick a sufficient server size. At least 2 CPU and 2G RAM are recommended. 1 CPU works but the application will run slower. If your RAM is less than 2G (minimum 512MB), you need to enable swap to achieve 2G of addressable memory (RAM + swap). See details about enabling swap in this article.

  • Deploy a CentOS 6 x64 server instance. None of the 32-bit operating systems are supported.

  • Create a non-root user with sudo permissions. You can refer to this article for details.

  • Submit a support ticket to cancel Vultr's default block on SMTP port 25, if you want to use your own VPS to send emails.

  • Set up the host name and Fully Qualified Domain Name (FQDN) on your server, which are necessary for sending emails with postfix on your VPS. See this article.

  • Bind a domain to your server, otherwise you will have to access your git repos by the IP address.

Step one: Install and configure the necessary dependencies

sudo yum install curl openssh-server postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh

Step two: Get and install the GitLab CE omnibus package

curl | sudo bash
sudo yum -y install gitlab-ce

Step three: Configure and start GitLab

sudo gitlab-ctl reconfigure

Step four: Log in from your browser and change your password

Log in from your browser with the following credentials:

username: root
password: 5iveL!fe

After you log in, the system will ask you to change your password immediately. You need to change it and log in again.

Step five: More configuration changes

GitLab has lots of features that can be tuned.

As a starter, you need to configure the external URL in your terminal if you have not set up the host name, FQDN, and domain binding properly:

sudo vi /etc/gitlab/gitlab.rb

Find the following line:

external_url 'vultr.guest'

Replace it with:

external_url 'http://[YourIP]/'

Save and exit. Then input:

sudo gitlab-ctl reconfigure

Other features can be configured according to your specific circumstance. Remember to run the command sudo gitlab-ctl reconfigure after you make any configuration changes.

Note: Before you configure email-related features properly, all newly-registered users (except for root) will not be able to log in because their email addresses have not been confirmed. You can log in as root and confirm them manually.

The setup is complete. For further reading, visit the GitLab official website.