In this article, We are going to perform How to Install GitLab on Ubuntu 18.04/16.04 LTS or any other cloud platform like Amazon EC2, Azure VM, Google Compute Cloud, etc., with preinstalled Ubuntu OS.
Table of Contents
Introduction:
GitLab is an open source, cloud-based Git repository and version control system.
Prerequisite
- Processor- minimum i3
- Storage – 480 GB SSD
- Ram- 8 GB(upto 200 Users)
- OS- Ubuntu 18.04/16.04 LTS
update the System Packages
$ sudo apt-get update
$ sudo apt-get upgrade
Install Dependencies Packages
Install below dependencies packages
$ sudo apt-get install -y curl openssh-server ca-certificates
Install Postfix to send email notifications
If you want to use another solution to send emails please skip this step and configure an external SMTP server after GitLab has been installed.
$ sudo apt-get install -y postfix
During Postfix installation a configuration screen may appear.
Select ‘Internet Site’ and press Enter.
Use your server’s external DNS for ‘mail name’ and press Enter.
If additional screens appear, continue to press Enter to accept the defaults.
Install GitLab on Ubuntu
Add the GitLab package repository. Here we are installing omnibus packages and Free Enterprise Edition
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
After installing gitlab packages, Change https://gitlab.example.com to the URL at which you want to access your GitLab instance. Installation will automatically configure and start GitLab at that URL.
Check the status if GitLab Service running
$ sudo gitlab-ctl status
Generate Let’s Encrypt SSL
Create the /etc/gitlab/ssl directory and generate your key and certificate there:
$ sudo mkdir -p /etc/gitlab/ssl
Change the folder permission.
$ sudo chmod 700 /etc/gitlab/ssl
Go Inside SSL directory and run below command
$ openssl genrsa -out gitlab. devopskloud.tech.key 2048 $ openssl req -new -key gitlab.devopskloud.tech.key -out gitlab.devopskloud.tech.crt
Download SSL and copy inside /etc/gitlab/ssl directory
Adding SSL and Secure GitLab Server with SSL Certificate
once you copied SSL certificates to /etc/gitlab/ssl directory, here you can add OpenSSL or commercial domain certificates also.
First change the permission of ssl directory
$ sudo chmod 600 /etc/gitlab/ssl/*
Open GitLab configuration /etc/gitlab/gitlab.rb, change the external_url and add domain key, cert file as shown below
external_url 'https://gitlab.devopskloud.tech' nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.devopskloud.tech.crt" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.devopskloud.tech.key"
Run the below command to take effect
$ sudo gitlab-ctl reconfigure
Redirect HTTP requests to HTTPS in Nginx
By default, when you specify an external_url starting with ‘https’, NGINX will no longer listen for unencrypted HTTP traffic on port 80. If you want to redirect all HTTP traffic to HTTPS you can use the redirect_http_to_https setting.
Edit /etc/gitlab/gitlab.rb and add below line after “external_url ” https://gitlab.devopskloud.tech ” line.
nginx['redirect_http_to_https'] = true
Run the below command to take effect
$ sudo gitlab-ctl reconfigure
Enable firewall Rule
Enable the SSH, http and https service into Ubuntu UFW Firewall,
$ sudo ufw allow ssh $ sudo ufw allow http $ sudo ufw allow https
Check the Firewall Status
$ sudo ufw status
If you using cloud instance the allow above services in inbound rules.
Access GitLab Web Interface
On your first visit, you’ll be redirected to a password reset screen. Provide the password for the initial administrator account and you will be redirected back to the login screen.
Use the default account’s username root to login
https://domain_name_or_server_IP
Successfully we have performed Install GitLab on Ubuntu 18.04/16.04 LTS
Configure Office365 SMTP Settings in GitLab
Open GitLab configuration /etc/gitlab/gitlab.rb, Goto GitLab email server settings and change SMTP settings as shown below
### GitLab email server settings ###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html ###! **Use smtp instead of sendmail/postfix.** gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'smtp.office365.com'; gitlab_rails['smtp_port'] = 587; gitlab_rails['smtp_domain'] = 'devopskloud.tech'; gitlab_rails['smtp_openssl_verify_mode'] = 'peer' gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_user_name'] = "[email protected]" gitlab_rails['smtp_password'] = "*********" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['gitlab_email_from'] = '[email protected]' gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
Run the below command to take effect
$ sudo gitlab-ctl reconfigure
Start/Stop/Restart GitLab Server
Below are commands to Start/Stop/Restart GitLab Server.
$ sudo gitlab-ctl start $ sudo gitlab-ctl stop $ sudo gitlab-ctl restart
GitLab Project Data Migration from Old Server to New Server
- Create Same project under same Group
- Add existing project member on new server and give respective project access.
- You should be member of old project and new project
- Clone old Gitlab Project on your local system with below mirroring clone method
- git clone –mirror OLD-URL
- eg. git clone –mirror [email protected]:internal-projects/ testproject.git
- Once clone will be done go inside the respective project directory and run below command for data push on new server.
- git push –mirror NEW-REMOTE
- git push –mirror [email protected]: internal-projects/ testproject.git
Conclusion
In this article, We have covered install GitLab on Ubuntu, generated SSL certificates, Adding SSL and Secure GitLab Server with SSL Certificate and redirected http to https in nginx,enabled firewall rules in Ubuntu .
Related Articles
7 Steps for GitLab Runner Registration
Angular CI CD Pipeline with GitLab in 6 Easy Steps