• Get In Touch
November 18, 2016

Install and Configure GitLab on Ubuntu 16.04

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

Gitlab is an open source repository management application based on Ruby on Rails. It was split in to two editions, “GitLab Community Edition” and “GitLab Enterprise Edition”, both are free and open source software distributed under the MIT License.

Gitlab is graphical implementation of the git version control system. It is used for maintaining current and historical versions of files such as source code, web pages and documentation. Using Gitlab you can host your own infrastructure and provide an internal repository to your development team. Gitlab makes it easy to manage projects and keep track of changes in code. You can create the number of users as well as number of repositories and number of files on Gitlab. Git lab used by lots of organizations such as NASA, Alibaba, CERN, O’Reilly Media and many more.

Features of GitLab

Gilab provides lots of features, some of them are listed below:

  1. Provides user friendly web interface to manage projects, edit files, directories and creat merge requests.
  2. You can customize Gitlab and insert your own branding on the login page.
  3. You can easily import projectsfrom SVN subversion, GitHub and other version control system.
  4. It is open source and easily installable on any unix like operating system.
  5. GitLab provides lots of useful features like help, code reviews, issue tracking, activity feeds, inbuilt wiki and many more.

In his tutorial, we will learn how to install and configure GitLab on your Ubuntu 16.04 server.

Requirements

  1. A server runing Ubuntu-16.04 on your system.
  2. A non-root user with sudo privileges setup on your server.
  3. 2 core CPU to support up to 500 users.
  4. 2 GB Memory to support up to 500 users.
  5. A static IP address is configure on your system.

Update the System

Before starting with the Gitlab installation, you will need to update the system’s package repository database with the latest version. You can do this with the following command:

sudo apt-get update -y
sudo apt-get upgrade -y

Once your package repository is up-to-date, you can proceed with installing required dependencies.

Installing Required Dependencies

Before starting it is recommended to install all required dependencies for GitLab. You can install all dependencies by running the following command:

sudo apt-get install ca-certificates curl openssh-server postfix git

Once installation is completed, you can proceed to install GitLab.

Installing GitLab

Once all the required dependencies are installed, it’s time to install GitLab.

You can install GitLab by downloading GitLab installation script.

To download the installation script, run the following command:

curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

Once download is completed, run the downloaded installation script with the following command:

sudo bash script.deb.sh

The above script will install and setup GitLab repository on your system. Once installation is complete, you can install the GitLab application by running the following command:

sudo apt-get install gitlab-ce

The above command will install all required components on your system.

You will also need to configure GitLab before using the gitLab application.

You can do this with the following command on your terminal:

sudo gitlab-ctl reconfigure

Once configuration is complete, you can proceed to configure firewall.

Configure Firewall for GitLab

Before accessing the GitLab, you will need to allow SSH and HTTP service through UFW firewall.
By default UFW is disabled on your system, so you need to enable it first. You can enable it with the following command:

sudo ufw enable

Once UFW firewall is enabled, you can allow HTTP and SSH service by running the following command:

sudo ufw allow OpenSSH
sudo ufw allow http

You can now check the status of UFW firewall by running the following command:

sudo ufw status

Output:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
80                         ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)

You are now ready to access the GitLab web interface.

GitLab Web Interface

Once everything is up-to-date, it’s time to access the GitLab web interface.

Open your favourite web browser and type the URL http://your-server-ip or http://your-domain-name. You should see the following page in your web browser, where you will be asked to create a new password for root.

HP_NO_IMG/data/uploads/users/7ecb43a5-b365-4ebf-93d5-f3b632f29f33/2035336836.png” alt=”” />

Enter the new password twice and click on Change your password button.

Next, you will need to sign in to web interface. You can sign in to administrative account by using the username root and your newly created password.

HP_NO_IMG/data/uploads/users/7ecb43a5-b365-4ebf-93d5-f3b632f29f33/758270383.png” alt=”” />

Once you are logged in, you should see the following interface:

HP_NO_IMG/data/uploads/users/7ecb43a5-b365-4ebf-93d5-f3b632f29f33/1895113861.png” alt=”” />

Congratulations, GitLab is now successfully installed. You can now configure the settings as you wish.

Creating a New Project

To create a new project on GitLab, click on + icon at right side of the dashboard or click on New Project button:

HP_NO_IMG/data/uploads/users/7ecb43a5-b365-4ebf-93d5-f3b632f29f33/165305917.png” alt=”” />

In the new project dashboard, enter the path of your project and project name or you can also import project from source. Next, enter the discription of your project and choose visibility level of your project. If you set project visibility to Private then admin must provide permission to each user to access the project. The project can be cloned by only those users who have access to the project.

If you choose project visibility to Internal then all the logged in users can clone the project. If you choose project visibility to public then project can be cloned without any authentication.

Next, click on Create Project button to create a project.

HP_NO_IMG/data/uploads/users/7ecb43a5-b365-4ebf-93d5-f3b632f29f33/1634354951.png” alt=”” />

Conclusion

Congratulations! You have successfully installed and configured GitLab on your Ubuntu 16.04 server. I hope you can now easily host your own GitLab on your server and create your own repository for your development team.
You can also create your own project, import a project from other version control system, create your own branding on GitLab login page and configure the appropriate level of access for your team.

GitLab also provides a help feature that will provide you with instructions on how to use GitLab.

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

Share this Article!

Related Posts

Node.js Authentication – A Complete Guide with Passport and JWT

Node.js Authentication – A Complete Guide with Passport and JWT

Truth be told, it’s difficult for a web application that doesn’t have some kind of identification, even if you don’t see it as a security measure in and of itself. The Internet is a kind of lawless land, and even on free services like Google’s, authentication ensures that abuses will be avoided or at least […]

Node.js and MongoDB: How to Connect MongoDB With Node

Node.js and MongoDB: How to Connect MongoDB With Node

MongoDB is a document-oriented NoSQL database, which was born in 2007 in California as a service to be used within a larger project, but which soon became an independent and open-source product. It stores documents in JSON, a format based on JavaScript and simpler than XML, but still with good expressiveness. It is the dominant […]

Using MySQL with Node.js: A Complete Tutorial

Using MySQL with Node.js: A Complete Tutorial

Although data persistence is almost always a fundamental element of applications, Node.js has no native integration with databases. Everything is delegated to third-party libraries to be included manually, in addition to the standard APIs. Although MongoDB and other non-relational databases are the most common choice with Node because if you need to scale an application, […]

Node.Js Vs Django: Which Is the Best for Your Project

Node.Js Vs Django: Which Is the Best for Your Project

Django and NodeJs are two powerful technologies for web development, both have great functionality, versatile applications, and a great user interface. Both are open source and can be used for free. But which one fits your project best? NodeJs is based on JavaScript, while Django is written in Python. These are two equally popular technologies […]

Nodejs Vs PHP:  Which Works Best?

Nodejs Vs PHP: Which Works Best?

Before getting into the “battle” between Node.js and PHP we need to understand why the issue is still ongoing. It all started with the increased demand for smartphone applications, their success forcing developers to adapt to new back-end technologies that could handle a multitude of simultaneous requests. JavaScript has always been identified as a client-side […]