Setup a GitLab Server in Your Home

I installed Ubuntu server 20.04 on Mac Book Pro 2009 Mid model (2.26GHz Intel Core 2 Duo, 8 GB RAM, 256 GB HDD). You can find GitLab requirements here.

After finishing the server installation I installed Xfce DE as it is lightweight. I felt it is too primitive. So, I uninstalled it and installed Gnome basic DE.

You can install either one of minimal Gnome or minimal Gnome Desktop.

Installing minimal Gnome on Ubuntu 20.04

$ sudo apt install gnome-session gnome-terminal
$ reboot

Installing minimal Gnome Desktop on Ubuntu 20.04

$ sudo apt install tasksel
$ sudo tasksel install ubuntu-desktop-minimal
$ reboot

Once the system reboots, it will present a login screen. Now, installing a DE for Linux is complete.

You might want to install a browser. Firebox is better for Linux. You can install it by running sudo apt install firefox.

Install GitLab server

You can install GitLab server in two ways - by running a script or by downloading GitLab package.

Method 1: Running a script

Update, just in case! :)

$ sudo apt update


Install GitLab package dependencies

$ sudo apt-get install -y curl openssh-server ca-certificates


Download GitLab instance

$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash


Now install gitlab-ce package

$ sudo apt-get install gitlab-ce

Method 2: Download the package


Change your directory to Downloads to download the package

$ cd ~/Downloads


Get the GitLab package

$ wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/bionic/gitlab-ce_13.2.1-ce.0_amd64.deb/download.deb


Get the GitLab package

$ sudo dpkg -i gitlab-ce_13.2.1-ce.0_amd64.deb


Now is the time to configure GitLab. /etc/gitlab/gitlab.rb is the file where you mention configurations you wanted. Mostly you would not need to modify this file so much.

$ $ sudo vi /etc/gitlab/gitlab.rb


Search for the term external_url. Give http://localhost:80 for external_url value. Save the file, exit Vi editor and reconfigure gitlab service by running the following command.

This command will take some time to finish.

$ sudo gitlab-ctl reconfigure


Once reconfiguration is done, start the service.

$ sudo gitlab-ctl start


Now, you can check the status of the GitLab server

$ sudo gitlab-ctl status


Now, open http://localhost:80 in your browser. You must see something like this. Your username would be root and password would be your system root password.

Also, you can customize GitLab UI by changing

  • Banner image to your startup logo
  • favicon
  • Navigation bar color
  • Syntax highlighting theme for source files etc.

Post Installation: Stop Linux from sleeping or getting suspended

As I installed GitLab server on my MBP, I did not want the screen lid to be open all the time. I just want to keep it aside with the lid closed but still the server running. To achive this, you can edit /etc/systemd/logind.conf and edit system behavior such as HandleSuspendKey, HandleLidSwitch etc.

I changed HandleLidSwitch to ignore so that Linux does not suspend even after I close thie lid.

Also, in the Linux Power Options in Settings, I set Automatic Suspend to off for both power and battery run options.

Accessing your GitLab server from other machines

Obtain your Ubuntu Server’s IP Address by running ip -a command. Note the IPV4 address from the output and add :80 at the end, which is the port number provided in /etc/gitlab/gitlab.rb. And, access your GitLab server on browser.

That’s all, folks!