Install GitLab using the Linux package
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed
The Linux packages are mature, scalable, and are used on GitLab.com. If you need additional flexibility and resilience, we recommend deploying GitLab as described in the reference architecture documentation.
The Linux package is quicker to install, easier to upgrade, and contains features to enhance reliability not found in other installation methods. Install through a single package (also known as Omnibus GitLab) that bundles all the different services and tools required to run GitLab. See the installation requirements to learn about the minimum hardware requirements.
Linux packages are available in our packages repository for:
Check that the required GitLab version is available for your host operating system.
Supported platforms
GitLab provides Linux packages for the operating systems listed below. We build and distribute packages for these platforms. The table shows which GitLab versions are available for each operating system.
We provide Linux packages for operating systems based on vendor support lifecycles. Where long term support (LTS) versions exist, we target those, though not all operating systems follow an LTS model.
Package builds typically continue until an operating system reaches vendor end-of-life (EOL). We follow standard or maintenance support timelines, not extended or premium support periods.
We may discontinue package builds before vendor EOL due to:
- Business considerations: Including but not limited to low customer adoption, disproportionate maintenance costs, or strategic product direction changes.
- Technical constraints: When third-party dependencies, security requirements, or underlying technology changes make continued package builds impractical or impossible.
- Vendor actions: When operating system vendors make changes that fundamentally impact our software’s functionality or when required components become unavailable.
We aim to provide at least 6 months’ notice before discontinuing support for any operating system version. When technical limitations or vendor constraints require shorter notice, we will communicate changes as soon as possible.
amd64 and x86_64 refer to the same 64-bit architecture. The names arm64 and aarch64 are also interchangeable and refer to the same architecture.
| Operating system | First supported GitLab version | Architecture | Operating system EOL | Proposed last supported GitLab version | Upstream release notes |
|---|---|---|---|---|---|
| AlmaLinux 8 | GitLab CE / GitLab EE 14.5.0 | x86_64, aarch64 1 | Mar 2029 | GitLab CE / GitLab EE 21.10.0 | AlmaLinux details |
| AlmaLinux 9 | GitLab CE / GitLab EE 16.0.0 | x86_64, aarch64 1 | May 2032 | GitLab CE / GitLab EE 25.0.0 | AlmaLinux details |
| AlmaLinux 10 | GitLab CE / GitLab EE 18.6.0 | x86_64, aarch64 1 | May 2035 | GitLab CE / GitLab EE 28.0.0 | AlmaLinux details |
| Amazon Linux 2 | GitLab CE / GitLab EE 14.9.0 | amd64, arm64 1 | June 2026 | GitLab CE / GitLab EE 19.1.0 | Amazon Linux details |
| Amazon Linux 2023 | GitLab CE / GitLab EE 16.3.0 | amd64, arm64 1 | June 2029 | GitLab CE / GitLab EE 22.1.0 | Amazon Linux details |
| Debian 11 | GitLab CE / GitLab EE 14.6.0 | amd64, arm64 1 | Aug 2026 | GitLab CE / GitLab EE 19.3.0 | Debian Linux details |
| Debian 12 | GitLab CE / GitLab EE 16.1.0 | amd64, arm64 1 | June 2028 | GitLab CE / GitLab EE 19.3.0 | Debian Linux details |
| Debian 13 | GitLab CE / GitLab EE 18.5.0 | amd64, arm64 1 | June 2030 | GitLab CE / GitLab EE 23.1.0 | Debian Linux details |
| openSUSE Leap 15.6 | GitLab CE / GitLab EE 17.6.0 | x86_64, aarch64 1 | Dec 2025 | TBD | openSUSE details |
| SUSE Linux Enterprise Server 12 | GitLab EE 9.0.0 | x86_64 | Oct 2027 | TBD | SUSE Linux Enterprise Server details |
| SUSE Linux Enterprise Server 15 | GitLab EE 14.8.0 | x86_64 | Dec 2024 | TBD | SUSE Linux Enterprise Server details |
| Oracle Linux 8 | GitLab CE / GitLab EE 12.8.1 | x86_64 | July 2029 | GitLab CE / GitLab EE 22.2.0 | Oracle Linux details |
| Oracle Linux 9 | GitLab CE / GitLab EE 16.2.0 | x86_64 | June 2032 | GitLab CE / GitLab EE 25.1.0 | Oracle Linux details |
| Oracle Linux 10 | GitLab CE / GitLab EE 18.6.0 | x86_64 | June 2035 | GitLab CE / GitLab EE 28.1.0 | Oracle Linux details |
| Red Hat Enterprise Linux 8 | GitLab CE / GitLab EE 12.8.1 | x86_64, arm64 1 | May 2029 | GitLab CE / GitLab EE 22.0.0 | Red Hat Enterprise Linux details |
| Red Hat Enterprise Linux 9 | GitLab CE / GitLab EE 16.0.0 | x86_64, arm64 1 | May 2032 | GitLab CE / GitLab EE 25.0.0 | Red Hat Enterprise Linux details |
| Red Hat Enterprise Linux 10 | GitLab CE / GitLab EE 18.6.0 | x86_64, arm64 1 | May 2035 | GitLab CE / GitLab EE 28.0.0 | Red Hat Enterprise Linux details |
| Ubuntu 20.04 | GitLab CE / GitLab EE 13.2.0 | amd64, arm64 1 | April 2025 | GitLab CE / GitLab EE 18.8.0 | Ubuntu details |
| Ubuntu 22.04 | GitLab CE / GitLab EE 15.5.0 | amd64, arm64 1 | April 2027 | GitLab CE / GitLab EE 19.11.0 | Ubuntu details. FIPS packages were added in GitLab 18.4. Before upgrading from Ubuntu 20.04, view the upgrade notes. |
| Ubuntu 24.04 | GitLab CE / GitLab EE 17.1.0 | amd64, arm64 1 | April 2029 | GitLab CE / GitLab EE 21.11.0 | Ubuntu details |
Footnotes:
- Known issues exist for running GitLab on ARM.
Unofficial, unsupported installation methods
The following installation methods are provided as-is by the wider GitLab community and are not supported by GitLab:
- Debian native package (by Pirate Praveen)
- FreeBSD package (by Torsten Zühlsdorff)
- Arch Linux package (by the Arch Linux community)
- Puppet module (by Vox Pupuli)
- Ansible playbook (by Jeff Geerling)
- GitLab virtual appliance (KVM) (by OpenNebula)
- GitLab on Cloudron (via Cloudron App Library)
End-of-life versions
You can find the list of deprecated operating systems and the final GitLab release for them in the table below:
Raspberry Pi OS (32-bit - Raspbian)
GitLab dropped support for Raspberry Pi OS (32 bit - Raspbian) with GitLab 17.11 being the last version available for the 32-bit platform. Starting with GitLab 18.0, you should move to Raspberry Pi OS (64 bit) and use the Debian arm64 package.
For information on backing up data on a 32-bit OS and restoring it to a 64-bit OS, see Upgrading operating systems for PostgreSQL.
Uninstall the Linux package
To uninstall the Linux package, you can opt to either keep your data (repositories, database, configuration) or remove all of them:
Optional. To remove all users and groups created by the Linux package before removing the package:
sudo gitlab-ctl stop && sudo gitlab-ctl remove-accountsIf you have a problem removing accounts or groups, run
userdelorgroupdelmanually to delete them. You might also want to manually remove the leftover user home directories from/home/.Choose whether to keep your data or remove all of them:
To preserve your data (repositories, database, configuration), stop GitLab and remove its supervision process:
sudo systemctl stop gitlab-runsvdir sudo systemctl disable gitlab-runsvdir sudo rm /usr/lib/systemd/system/gitlab-runsvdir.service sudo systemctl daemon-reload sudo systemctl reset-failed sudo gitlab-ctl uninstallTo remove all data:
sudo gitlab-ctl cleanse && sudo rm -r /opt/gitlab
Uninstall the package (replace with
gitlab-ceif you have GitLab FOSS installed):# Debian/Ubuntu sudo apt remove gitlab-ee# AlmaLinux/RHEL/Oracle Linux/Amazon Linux 2023 sudo dnf remove gitlab-ee# OpenSUSE Leap/SLES sudo zypper remove gitlab-ee# Amazon Linux 2 sudo yum remove gitlab-ee
Ubuntu 22.04 FIPS
Known compatibility issues currently exist between GitLab FIPS mode and Ubuntu 22.04. Administrators should refrain from upgrading their host operating system to Ubuntu 22.04 until further notice.
This advisory will be updated once the issues have been identified and resolved.
In GitLab 18.4 and later, FIPS builds are available for Ubuntu 22.04.
Before you upgrade:
Verify password hash migration for all active users: In GitLab 17.11 and later, user passwords are automatically rehashed with enhanced salt when users sign in.
Any users who haven’t completed this hash migration will be unable to sign in to Ubuntu 22 FIPS installations and will need to perform a password reset.
To find for users who have not migrated, use this Rake task before upgrading to Ubuntu 22.04.
Check the GitLab secrets JSON: Rails now requires stronger active dispatch salts to issue cookies. The Linux package uses static values with sufficient length by default on Ubuntu 22.04. However, you can customize these salts by setting the following keys in your Linux package configuration:
gitlab_rails['signed_cookie_salt'] = 'custom value' gitlab_rails['authenticated_encrypted_cookie_salt'] = 'another custom value'The values are written to the
gitlab-secrets.jsonand must be synchronized across all Rails nodes.Prepare for OAuth token migration when upgrading to FIPS 140-3: GitLab 18.6.0, 18.5.2, and 18.4.4 introduced SHA512 hashing for OAuth tokens to comply with FIPS 140-3 requirements. Previously, GitLab used PBKDF2 without salt, which is incompatible with FIPS 140-3 compliant systems like Ubuntu 22.04.
Note: This migration is only required when moving to FIPS 140-3 compliant operating systems (such as Ubuntu 22.04). No changes are needed if you are already running on older FIPS versions (such as Ubuntu 20.04) or staying on non-FIPS systems.
When migrating from a non-FIPS instance or older FIPS version to a FIPS 140-3 instance:
- Upgrade to GitLab 18.4 or later.
- Allow sufficient time for active OAuth access tokens to be automatically rehashed during normal usage.
- Rotate OAuth application secrets to ensure all newly issued tokens use the FIPS-compliant hashing algorithm.
- Notify users that they may need to re-authenticate with OAuth-integrated applications if their tokens have not been used recently.