How to install GitLab with GUI on Linux (AlmaLinux)
This article is for Liquid Web customers with a server as part of their hosting service with us. It provides simple instructions for installing GitLab with GUI on Linux (AlmaLinux). Reach out to our technical team if you encounter any problems during the setup process described here.
By following the instructions in this help documentation article, you can create a comprehensive platform for managing your code — collaborating with your team and streamlining your development projects on your Liquid Web server. Your web server can belong to any type of the many Liquid Web hosting plans offered at different price points, including:
Core themes in this help document
The core themes included in this post are the following:
- Answering the questions:
- What is Git?
- What is GitLab?
- What is GitHub?
- Understanding the difference between GitHub and GitLab in terms of features
- Knowing what GitLab with a GUI client can be used for
- Assessing the top GUI clients for Git-based repositories on the Windows, macOS, Linux operating systems
- Installing GitLab with GUI on Linux — specifically AlmaLinux
What is Git?
Git is a free, open-source technology that allows developers to track changes to their code. It will enable numerous individuals to work on a project simultaneously without dispute, retains a change history, and quickly reverts to previous versions. Git is vital for software collaboration, ensuring everyone has the most up-to-date code.
For more insights on best practices for using Git, check out this article on the top Git best practices for success. Additionally, if you’re interested in setting up a Git server on AlmaLinux, you can read our article on using Gogs for Git server and repository management.
What is GitLab?
GitLab is an all-in-one developer platform with version control, project management, and continuous integration and deployment capabilities. Using a single interface, it streamlines the entire software development lifecycle by assisting teams with collaboration, progress tracking, and process automation.
GitLab also supports GitOps practices, which integrate Git-based workflows with operational tasks, enabling more efficient and reliable management of infrastructure and applications. These include continuous integration and deployment (CI/CD).
What is GitHub?
GitHub is an online platform that maintains code repositories and allows users to collaborate using Git. It provides capabilities such as version control, project management, and issue tracking, allowing developers to collaborate quickly and share their projects openly or privately.
Understanding the difference between GitHub and GitLab
A side-by-side comparison of GitHub and GitLab can help the discerning reader understand their various features and strengths:
| Feature | GitHub | GitLab |
| CI/CD | GitHub Actions for CI/CD. | Built-in CI/CD pipelines with advanced options. |
| Repository Privacy | Public and private repositories are available. | Public and private repositories with extensive permissions control. |
| Project Management | Basic project boards and issue tracking. | Advanced project management with milestones, issue boards, and roadmaps. |
| Self-Hosting | GitHub Enterprise for on-premises hosting. | GitLab offers a robust self-hosted option with comprehensive features. |
| Code Review | Pull requests with code review and comments. | Merge requests with extensive code review features. |
| Integration | Integrates with many third-party tools and services. | Includes many built-in integrations and custom options. |
| User Interface | Clean and straightforward interface. | More feature-rich but can be complex. |
| Pricing | Free for public repositories; paid plans for private repositories and advanced features. | Free tier with extensive features; paid plans for more advanced features and support. |
What is GitLab with a GUI client used for?
GitLab, when used with a GUI client, allows users to interact with GitLab repositories and perform various Git operations through a graphical interface rather than using command-line tools.
GUI-enhanced features of GitLab
- Repository Management. Create, clone, and manage GitLab repositories.
- Branch Management. Create, switch, and merge branches visually.
- Commit Management. View, stage, and commit changes through a graphical interface.
- Merge Requests. Create, review, and manage merge requests with comments and approvals.
- Issue Tracking. View and manage issues and integrate with commits and merge requests.
- CI/CD Pipelines. Monitor and manage CI/CD pipelines and their status.
Best GUI clients for Git-based repositories
GitHub Desktop
- Purpose: Designed primarily for GitHub but compatible with other Git repositories.
- Features: Simplified interface for managing repositories, handling commits, and creating pull requests.
- Platform: Windows, macOS
- Website: https://desktop.github.com/
GitKraken
- Purpose: Supports GitHub, GitLab, Bitbucket, and other Git repositories.
- Features: Advanced visual interface, supports Git flow, merges conflicts, and integrates with various issue trackers.
- Platform: Windows, macOS, Linux
- Website: https://www.gitkraken.com/git-client
SourceTree
- Purpose: Designed for Git and Mercurial repositories, including those on GitHub, GitLab, and Bitbucket.
- Features: Visual representation of branches, commits, and merge conflicts. Offers powerful Git management tools.
- Platform: Windows, macOS
- Website: https://www.sourcetreeapp.com/
Git Extensions
- Purpose: A versatile Git client for Windows that supports GitLab, GitHub, Bitbucket, and other Git repositories.
- Features: Advanced features for managing branches, commits, and merges. Customizable interface.
- Platform: Windows
- Website: https://gitextensions.github.io/
SmartGit
- Purpose: Works with GitHub, GitLab, Bitbucket, and other Git repositories.
- Features: Robust feature set, including commit management, branch visualization, and advanced conflict resolution.
- Platform: Windows, macOS, Linux
- Website: https://www.syntevo.com/smartgit/
Fork
- Purpose: A powerful Git client for managing repositories hosted on GitHub, GitLab, Bitbucket, and others.
- Features: User-friendly interface with features for commit history, branch management, and merge conflict resolution.
- Platform: Windows, macOS
- Website: https://git-fork.com/
Installing GitLab with GUI
To install GitLab with a GUI client on AlmaLinux, please follow the numbered steps in the subsequent sections after a thorough review of items that must be in place before you get started. Contact our GitLab experts if you have any questions about the prerequisites.
Prerequisites
Here are the mandatory items to have ready before installing GitLab with GUI on Linux:
- Operating system. AlmaLinux 8 installed on your Liquid Web server.
- SSH access. You need root or sudo access to perform GitLab with GUI installations and configurations.
- Disk space. Minimum 10 GB. Recommended 16GB.
- CPU. Minimum 4 CPU cores. Recommended 8+ CPU cores.
- RAM. Minimum 4 GB. Recommended 8 GB or more.
Step #1. Access your Liquid Web server
To install GitLab GUI on your Liquid Web server, follow the ordered steps in the following sections to access the server via SSH and complete the installation.
1.1. Open Terminal or Command Prompt
According to your operating system, you will need to open the proper tool for performing the GitLab GUI install on Linux:
- Mac/Linux. Open the Terminal application from your Applications menu.
- Windows. Open Command Prompt by searching for it in the Start menu.
1.2. Connect to your Liquid Web Server
Execute the ssh command, replacing your_username with your provided SSH username and your_server_ip with your server’s IP address or hostname:
ssh your_username@your_server_ip1.3. Enter your password
When prompted, enter your SSH password to authenticate.
1.4. Verify your connection
Upon successful connection, you will see a command prompt indicating that you are logged in.
Step #2. Update your AlmaLinux system
You will want to clean up all cached data used by the dnf package manager and ensure optimal security and performance before installing the GitLab GUI on your Liquid Web server running AlmaLinux. To do so, follow the steps outlined in the following sections.
2.1. Clean up cached data
Start by cleaning up all cached data used by the dnf package manager:
sudo dnf clean all2.2. Update the AlmaLinux operating system
Before installing GitLab, update your server’s AlmaLinux operating system to ensure it is secure and current by using the dnf update command:
sudo dnf updateStep #3. Install GitLab dependencies
GitLab requires specific packages to be installed. Use the following dnf install curl policycoreutils-python-utils perl command to install them:
sudo dnf install curl policycoreutils-python-utils perlStep #4. Download and add a GitLab repository
Download and add the GitLab repository to your AlmaLinux system:
curl https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-gitlab
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bashHere is the output:
[root@test ~]# curl https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-gitlab
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
[root@test ~]#
[root@test ~]#
[root@test ~]# curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
Detected operating system as almalinux/8.
Checking for curl...
Detected curl...
Downloading repository file: https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/config_file.repo?os=almalinux&dist=8&source=script
done.
Installing yum-utils...
gitlab_gitlab-ce-source 1.2 kB/s | 862 B 00:00
gitlab_gitlab-ce-source 16 kB/s | 3.1 kB 00:00
Importing GPG key 0x51312F3F:
Userid : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
gitlab_gitlab-ce-source 31 kB/s | 7.0 kB 00:00
Importing GPG key 0xF27EAB47:
Userid : "GitLab, Inc. <support@gitlab.com>"
Fingerprint: DBEF 8977 4DDB 9EB3 7D9F C3A0 3CFC F9BA F27E AB47
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
gitlab_gitlab-ce-source 237 B/s | 296 B 00:01
Dependencies resolved.
==============================================================================================================================================================================================================================================
Package Architecture Version Repository Size
==============================================================================================================================================================================================================================================
Installing:
yum-utils noarch 4.0.21-25.el8 baseos 75 k
Transaction Summary
==============================================================================================================================================================================================================================================
Install 1 Package
Total download size: 75 k
Installed size: 23 k
Downloading Packages:
yum-utils-4.0.21-25.el8.noarch.rpm 117 kB/s | 75 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 98 kB/s | 75 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : yum-utils-4.0.21-25.el8.noarch 1/1
Running scriptlet: yum-utils-4.0.21-25.el8.noarch 1/1
Verifying : yum-utils-4.0.21-25.el8.noarch 1/1
Installed:
yum-utils-4.0.21-25.el8.noarch
Complete!
Generating yum cache for gitlab_gitlab-ce...
Importing GPG key 0x51312F3F:
Userid : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0xF27EAB47:
Userid : "GitLab, Inc. <support@gitlab.com>"
Fingerprint: DBEF 8977 4DDB 9EB3 7D9F C3A0 3CFC F9BA F27E AB47
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
Generating yum cache for gitlab_gitlab-ce-source...
The repository is setup! You can now install packages.Step #5. Install GitLab
You can install GitLab using one of the following methods:
- Installing GitLab via a package manager (RPM)
- Installing GitLab manually
Option A. Installing GitLab via a package manager (RPM)
To install GitLab using the RPM package manager, issue the dnf install gitlab-ce command:
sudo dnf install gitlab-ceHere is the output:
Option B. Installing GitLab manually
If you prefer manual installation, download the GitLab RPM package directly for a manual installation:
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-<version>.rpm/download.rpmReplace the version number placeholder of <version> shown in the URL above with the version you wish to install.
After downloading the RPM package, install it using dnf:
sudo dnf localinstall gitlab-ce-<version>.rpmStep #6. Configure and reconfigure GitLab
Now it’s time to set up the configuration by walking through the step given in the sections that follow.
6.1. Configure GitLab
Configure GitLab with your domain or IP address. Edit the GitLab configuration file:
sudo nano /etc/gitlab/gitlab.rb6.2. Set the external_url parameter
Find and set the external_url parameter:
external_url "http://your_domain_or_ip"Replace http://your_domain_or_ip placeholder with your domain name and IP address.
6.3. Reconfigure GitLab
Save and exit the editor. Then reconfigure GitLab using the gitlab-ctl reconfigure command:
sudo gitlab-ctl reconfigureHere is the output:
[root@test ~]# sudo gitlab-ctl reconfigure
[2024-08-19T09:24:34-04:00] INFO: Started Cinc Zero at chefzero://localhost:1 with repository at /opt/gitlab/embedded (One version per cookbook)
Cinc Client, version 18.3.0
Patents: https://www.chef.io/patents
Infra Phase starting
[2024-08-19T09:24:34-04:00] INFO: *** Cinc Client 18.3.0 ***
[2024-08-19T09:24:34-04:00] INFO: Platform: x86_64-linux
[2024-08-19T09:24:34-04:00] INFO: Cinc-client pid: 299011
[2024-08-19T09:24:41-04:00] INFO: Setting the run_list to ["recipe[gitlab]"] from CLI options
[2024-08-19T09:24:41-04:00] INFO: Run List is [recipe[gitlab]]
[2024-08-19T09:24:41-04:00] INFO: Run List expands to [gitlab]
[2024-08-19T09:24:41-04:00] INFO: Starting Cinc Client Run for test.servervipoint.com
[2024-08-19T09:24:41-04:00] INFO: Running start handlers
[2024-08-19T09:24:41-04:00] INFO: Start handlers complete.
Resolving cookbooks for run list: ["gitlab"]
—--
—--
Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.
NOTE: Because these credentials might be present in your log files in plain text, it is highly recommended to reset the password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
gitlab Reconfigured!6.4. Verify the current status
Then, check GitLab’s current status:
gitlab-ctl statusHere is the output:
[root@test ~]# gitlab-ctl status
run: alertmanager: (pid 54620) 3s; run: log: (pid 52620) 713s
run: gitaly: (pid 54186) 154s; run: log: (pid 65336) 888s
run: gitlab-exporter: (pid 54161) 155s; run: log: (pid 52447) 737s
run: gitlab-kas: (pid 54125) 158s; run: log: (pid 52070) 863s
run: gitlab-workhorse: (pid 54134) 157s; run: log: (pid 52251) 805s
run: logrotate: (pid 51647) 904s; run: log: (pid 50028) 901s
run: nginx: (pid 52297) 799s; run: log: (pid 52312) 797s
run: node-exporter: (pid 54150) 156s; run: log: (pid 52406) 754s
run: postgres-exporter: (pid 54346) 144s; run: log: (pid 52830) 530s
run: postgresql: (pid 50408) 870s; run: log: (pid 50421) 854s
run: prometheus: (pid 54302) 148s; run: log: (pid 52577) 719s
run: puma: (pid 53898) 180s; run: log: (pid 52174) 821s
run: redis: (pid 50044) 898s; run: log: (pid 50232) 895s
run: redis-exporter: (pid 54174) 155s; run: log: (pid 52564) 725s
run: sidekiq: (pid 54153) 155s; run: log: (pid 52197) 816sStep #7. Access GitLab with the domain or IP address
Let’s access GitLab now using these instructions.
7.1. Retrieve the root password
Before entering GitLab, use the following command to retrieve the GitLab root password:
cat /etc/gitlab/initial_root_password7.2. Access GitLab using a web browser
Open a web browser and access GitLab using your domain name or server IP address:
http://your-domain-or-ipReplace the URL string of http://your-domain-or-ip with your domain name or IP address.
7.3. Log in using root and your password
You should see the GitLab login page. Enter your root login and password, then click the Sign In button. Here is a screen capture of how the GitLab login screen looks:

Step #8. Perform your initial login for verification of the installation and setup
On your first visit, GitLab will prompt you to set a password for the root user. Use this password to log in and verify the setup. Then, follow the on-screen instructions to complete the setup.
How to use GitLab with GUI on Linux — AlmaLinux
After logging in, you can start new projects, manage repositories, configure CI/CD pipelines, and work with your teammates. The GitLab GUI on Linux provides an intuitive interface for executing the following tasks:
- Log in. Use your web browser to access GitLab.
- Create projects. Navigate to the “Projects” tab and click “New Project” to create a new repository.
- Manage repositories. Use the GitLab web interface to manage repositories, issues, and merge requests.
- Set up CI/CD. Configure pipelines by navigating to “CI/CD” under your project settings.
How to update GitLab with GUI on Linux
GitLab updates are handled via the package manager. To check for updates and apply them, execute the dnf update gitlab-ce command:
sudo dnf update gitlab-ceAfter updating, reconfigure GitLab to apply changes:
sudo gitlab-ctl reconfigureHow to uninstall GitLab with GUI on Linux
Here are quick steps involved in uninstalling GitLab.
1. Stop the GitLab services
To uninstall GitLab, first stop the GitLab services:
sudo gitlab-ctl stop2. Remove GitLab
Then, remove GitLab from your AlmaLinux system:
sudo dnf remove gitlab-ce3. Clean up any remaining GitLab configuration and data
Remove any remaining GitLab configuration and data using the rm -rf /etc/gitlab /var/opt/gitlab /var/log/gitlab command:
sudo rm -rf /etc/gitlab /var/opt/gitlab /var/log/gitlabWarning: This command permanently deletes your system’s GitLab configuration and data. Please ensure that you have backed up any critical data before proceeding.
Manage code repositories and collaborate with engineers using a GitLab GUI on AlmaLinux
Installing the GitLab GUI on AlmaLinux provides a comprehensive infrastructure for efficiently managing your code repositories. Following these steps, you have successfully installed GitLab, which allows for more efficient project administration and communication. This installation and configuration improves your development workflow and provides a simple interface for administrative duties and repository management. As you explore GitLab’s features, you’ll notice that its integration capabilities and comprehensive tools dramatically improve productivity, making it an essential addition to your AlmaLinux environment.
Choosing a suitable hosting plan from Liquid Web is essential for installing and operating GitLab GUI on AlmaLinux. Our scalable hosting solutions ensure optimal performance, and our expert support team is ready to resolve any issues promptly. By selecting the right plan, you benefit from reliable infrastructure and exceptional customer support no matter the package, enhancing your GitLab experience and ensuring smooth, uninterrupted repository management.