Select Page


GitLab CE, or Group Version, is an open-source software basically used to host Git repositories, with further development-related options like factor monitoring. It’s designed to be hosted the use of your individual infrastructure, and gives flexibility in deploying as an interior repository retailer on your advancement staff, a public option to interface with customers, or a way for individuals to host their very own initiatives.

The GitLab challenge makes it reasonably simple to arrange a GitLab example by yourself {hardware} with a very easy set up mechanism. On this information, we will be able to quilt the way to set up and configure GitLab on an Ubuntu 18.04 server.


For this instructional, you’ll want:

The published GitLab hardware requirements counsel the use of a server with:

Despite the fact that you could possibly get through with substituting some change house for RAM, it’s not really useful. For this information we will be able to suppose that you’ve the above sources at the least.

  • A website title pointed at your server. For more info, see our documentation on the way to get started with DNS on DigitalOcean. This instructional will use the area title

Step 1 — Putting in the Dependencies

Earlier than we will set up GitLab itself, you will need to set up probably the most instrument that it leverages throughout set up and on an ongoing foundation. Thankfully, all the required instrument can also be simply put in from Ubuntu’s default bundle repositories.

Since that is our first time the use of apt throughout this consultation, we will refresh the native bundle index after which set up the dependencies through typing:

  • sudo apt replace
  • sudo apt set up ca-certificates curl openssh-server postfix

You’ll most probably have a few of this instrument put in already. For the postfix set up, choose Web Web page when precipitated. At the subsequent display screen, input your server’s area title to configure how the device will ship mail.

Step 2 — Putting in GitLab

Now that the dependencies are in position, we will set up GitLab itself. It is a simple procedure that leverages an set up script to configure your device with the GitLab repositories.

Transfer into the /tmp listing after which obtain the set up script:

  • cd /tmp
  • curl -LO up/repositories/gitlab/gitlab-ce/

Be happy to inspect the downloaded script to be sure that you might be pleased with the movements it’ll take. You’ll additionally discover a hosted model of the script here:

As soon as you might be happy with the security of the script, run the installer:

  • sudo bash /tmp/

The script will arrange your server to make use of the GitLab maintained repositories. This allows you to arrange GitLab with the similar bundle control equipment you utilize on your different device applications. As soon as that is entire, you’ll set up the true GitLab software with apt:

  • sudo apt set up gitlab-ce

This will likely set up the vital elements in your device.

Step 3 — Adjusting the Firewall Regulations

Earlier than you configure GitLab, it is important to be sure that your firewall laws are permissive sufficient to permit internet visitors. If you happen to adopted the information related in the necessities, you’ll have a ufw firewall enabled.

View the present standing of your lively firewall through typing:


Standing: lively To Motion From -- ------ ---- OpenSSH ALLOW Any place OpenSSH (v6) ALLOW Any place (v6)

As you’ll see, the present laws permit SSH visitors thru, however get entry to to different products and services is particular. Since GitLab is a internet software, we must permit HTTP get entry to. As a result of we will be able to be profiting from GitLab’s talent to request and permit a unfastened TLS/SSL certificates from Let’s Encrypt, let’s additionally permit HTTPS get entry to.

The protocol to port mapping for HTTP and HTTPS are to be had within the /and many others/products and services record, so we will permit that visitors in through title. If you happen to did not have already got OpenSSH visitors enabled, you must permit that visitors now too:

  • sudo ufw permit http
  • sudo ufw permit https
  • sudo ufw permit OpenSSH

Test the ufw standing once more; you must see get entry to configured to a minimum of those two products and services:


Standing: lively To Motion From -- ------ ---- OpenSSH ALLOW Any place 80/tcp ALLOW Any place 443/tcp ALLOW Any place OpenSSH (v6) ALLOW Any place (v6) 80/tcp (v6) ALLOW Any place (v6) 443/tcp (v6) ALLOW Any place (v6)

The above output signifies that the GitLab internet interface might be obtainable when we configure the applying.

Step 4 — Modifying the GitLab Configuration Record

Earlier than you’ll use the applying, you want to replace the configuration record and run a reconfiguration command. First, open Gitlab’s configuration record:

  • sudo nano /and many others/gitlab/gitlab.rb

Close to the highest is the external_url configuration line. Replace it to compare your area. Alternate http to https in order that GitLab will routinely redirect customers to the website safe through the Let’s Encrypt certificates:

/and many others/gitlab/gitlab.rb

##! For extra main points on configuring external_url see:
external_url ''

Subsequent, search for the letsencrypt['contact_emails'] environment. This environment defines an inventory of e mail addresses that the Let’s Encrypt challenge can use to touch you if there are issues along with your area. It is a good suggestion to uncomment and fill this out so that you are going to know of any problems:

/and many others/gitlab/gitlab.rb

letsencrypt['contact_emails'] = ['']

Save and shut the record. Run the next command to reconfigure Gitlab:

  • sudo gitlab-ctl reconfigure

This will likely initialize GitLab the use of the ideas it could possibly in finding about your server. It is a totally computerized procedure, so you’ll now not have to reply to any activates. The method will even configure a Let’s Encrypt certificates on your area.

Step 5 — Appearing Preliminary Configuration Throughout the Internet Interface

With GitLab operating and get entry to authorised, we will carry out some preliminary configuration of the applying in the course of the internet interface.

Logging In for the First Time

Talk over with the area title of your GitLab server for your internet browser:

For your first time visiting, you must see an preliminary suggested to set a password for the executive account:

GitLab initial password set prompt

Within the preliminary password suggested, provide and make sure a safe password for the executive account. Click on at the Alternate your password button if you end up completed.

You’ll be redirected to the traditional GitLab login web page:

GitLab first sign in prompt

Right here, you’ll log in with the password you simply set. The credentials are:

  • Username: root
  • Password: [the password you set]

Input those values into the fields for current customers and click on the Check in button. You’ll be signed into the applying and brought to a touchdown web page that activates you to start out including initiatives:

GitLab initial login landing page

You’ll now make some easy adjustments to get GitLab arrange the best way you want.

Adjusting your Profile Settings

Probably the most first belongings you must do after a contemporary set up is get your profile into higher form. GitLab selects some cheap defaults, however those aren’t in most cases suitable if you get started the use of the instrument.

To make the vital adjustments, click on at the person icon within the upper-right hand nook of the interface. Within the drop down menu that looks, choose Settings:

GitLab profile settings button

You’ll be taken to the Profile segment of your settings:

GitLab profile settings page

Alter the Title and E-mail cope with from “Administrator” and “” to one thing extra correct. The title you choose might be exhibited to different customers, whilst the e-mail might be used for default avatar detection, notifications, Git movements in the course of the interface, and many others.

Click on at the Replace Profile settings button on the backside if you end up executed:

GitLab update profile settings button

A affirmation e mail might be despatched to the cope with you supplied. Practice the directions within the e mail to substantiate your account to be able to start the use of it with GitLab.

Converting Your Account Title

Subsequent, click on at the Account merchandise within the left-hand menu bar:

GitLab account menu item

Right here, you’ll in finding your non-public API token or configure two-factor authentication. Alternatively, the capability we’re thinking about this present day is the Alternate username segment.

Through default, the primary administrative account is given the title root. Since it is a identified account title, it’s extra safe to modify this to another title. You’ll nonetheless have administrative privileges; the one factor that can exchange is the title. Change root along with your most popular username:

GitLab change username section

Click on at the Replace username button to make the exchange:

GitLab update username button

Subsequent time you log in to the GitLab, take note to make use of your new username.

Including an SSH Key for your Account

Typically, it would be best to use SSH keys with Git to engage along with your GitLab initiatives. To try this, you want so as to add your SSH public key for your GitLab account.

If you have already got an SSH key pair created in your native laptop, you’ll in most cases view the general public key through typing:

You must see a big bite of textual content, like this:


ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Replica this newsletter and head again to the Profile Settings web page in GitLab’s internet interface.

If, as a substitute, you get a message that appears like this, you don’t but have an SSH key pair configured in your gadget:


cat: /house/sammy/.ssh/ No such record or listing

If so, you’ll create an SSH key pair through typing:

Settle for the defaults and optionally supply a password to safe the important thing in the neighborhood:


Producing public/non-public rsa key pair. Input record during which to save lots of the important thing (/house/sammy/.ssh/id_rsa): Input passphrase (empty for no passphrase): Input similar passphrase once more: Your identity has been stored in /house/sammy/.ssh/id_rsa. Your public key has been stored in /house/sammy/.ssh/ The important thing fingerprint is: SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.paintings The important thing's randomart symbol is: +---[RSA 2048]----+ | ..%o==B| | *.E =.| | . ++= B | | ooo.o . | | . S .o . .| | . + .. . o| | + .o.o ..| | o .++o . | | oo=+ | +----[SHA256]-----+

After you have this, you’ll show your public key as above through typing:


ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Replica the block of textual content that is displayed and head again for your profile Settings in GitLab’s internet interface.

Click on at the SSH Keys merchandise within the left-hand menu:

GitLab SSH Keys menu item

Within the supplied house paste the general public key you copied out of your native gadget. Give it a descriptive identify, and click on the Upload key button:

GitLab add SSH Key

You must now have the ability to arrange your GitLab initiatives and repositories out of your native gadget with no need to offer your GitLab account credentials.

Step 6 — Limiting or Disabling Public Signal-ups (Not obligatory)

You’ll have spotted that it’s imaginable for someone to join an account whilst you consult with your GitLab example’s touchdown web page. This can be what you wish to have if you’re taking a look to host public challenge. Alternatively, repeatedly, extra restrictive settings are fascinating.

To start, make your option to the executive space through clicking at the wrench icon in the principle menu bar on the most sensible of the web page:

GitLab administrative area button

At the web page that follows, you’ll see an outline of your GitLab example as an entire. To regulate the settings, click on at the Settings merchandise on the backside of the left-hand menu:

GitLab administrative settings button

You’ll be taken to the worldwide settings on your GitLab example. Right here, you’ll alter various settings that impact whether or not new customers can join and their stage of get entry to.

Disabling Signal-ups

If you want to disable sign-u.s.totally (you’ll nonetheless manually create accounts for brand new customers), scroll right down to the Signal-up Restrictions segment.

Deselect the Signal-up enabled test field:

GitLab deselect sign-ups enabled

Scroll right down to the ground and click on at the Save adjustments button:

GitLab save settings button

The sign-up segment must now be got rid of from the GitLab touchdown web page.

Limiting Signal-u.s.Through Area

In case you are the use of GitLab as a part of a company that gives e mail addresses related to a website, you’ll prohibit sign-u.s.through area as a substitute of totally disabling them.

Within the Signal-up Restrictions segment, choose the Ship affirmation e mail on sign-up field, which can permit customers to log in simplest after they have got showed their e mail.

Subsequent, upload your area or domain names to the Whitelisted domain names for sign-ups field, one area consistent with line. You’ll use the asterisk “*” to specify wildcard domain names:

GitLab restrict sign-ups by domain

Scroll right down to the ground and click on at the Save adjustments button:

GitLab save settings button

The sign-up segment must now be got rid of from the GitLab touchdown web page.

Limiting Venture Advent

Through default, new customers can create as much as 10 initiatives. If you want to permit new customers from the out of doors for visibility and participation, however wish to prohibit their get entry to to making new initiatives, you’ll accomplish that within the Account and Prohibit Settings segment.

Within, you’ll exchange the Default initiatives restrict to zero to totally disable new customers from growing initiatives:

GitLab set projects to zero

New customers can nonetheless be added to initiatives manually and may have get entry to to interior or public initiatives created through different customers.

Scroll right down to the ground and click on at the Save adjustments button:

GitLab save settings button

New customers will now have the ability to create accounts, however not able to create initiatives.

Renewing Let’s Encrypt Certificate

Through default, GitLab has a scheduled activity set as much as renew Let’s Encrypt certificate after nighttime each and every fourth day, with the precise minute in accordance with your external_url. You’ll regulate those settings within the /and many others/gitlab/gitlab.rb record. For instance, when you sought after to resume each and every seventh day at 12:30, you might want to configure this as follows:

/and many others/gitlab/gitlab.rb

letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

You’ll additionally disable auto-renewal through including an extra environment to /and many others/gitlab/gitlab.rb:

/and many others/gitlab/gitlab.rb

letsencrypt['auto_renew'] = false

With auto-renewals in position, you’ll now not want to concern about carrier interruptions.


You must now have a operating GitLab example hosted by yourself server. You’ll start to import or create new initiatives and configure the proper stage of get entry to on your staff. GitLab is often including options and making updates to their platform, so make sure to take a look at the challenge’s house web page to stick up-to-date on any enhancements or vital notices.