2017-11-01 15:56:40 +00:00
---
2020-09-28 12:10:02 +00:00
stage: Enablement
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
2017-11-01 15:56:40 +00:00
comments: false
2018-05-09 11:07:11 +00:00
description: Read through the GitLab installation methods.
2019-05-24 00:48:08 +00:00
type: index
2017-11-01 15:56:40 +00:00
---
2019-07-08 08:50:38 +00:00
# Installation **(CORE ONLY)**
2014-04-24 22:48:22 +00:00
2018-11-29 20:23:50 +00:00
GitLab can be installed in most GNU/Linux distributions and in a number
2019-11-04 06:06:46 +00:00
of cloud providers. To get the best experience from GitLab, you need to balance
2018-12-06 21:29:14 +00:00
performance, reliability, ease of administration (backups, upgrades and troubleshooting),
and cost of hosting.
2018-11-20 22:28:28 +00:00
2018-12-06 21:29:14 +00:00
There are many ways you can install GitLab depending on your platform:
2020-10-13 15:08:53 +00:00
1. [**Omnibus GitLab** ](#installing-gitlab-using-the-omnibus-gitlab-package-recommended ): The official deb/rpm packages that contain a bundle of GitLab
2020-05-04 18:10:20 +00:00
and the various components it depends on, like PostgreSQL, Redis, Sidekiq, etc.
2020-10-13 15:08:53 +00:00
1. [**GitLab Helm chart** ](#installing-gitlab-on-kubernetes-via-the-gitlab-helm-charts ): The cloud native Helm chart for installing GitLab and all its components on Kubernetes.
1. [**Docker** ](#installing-gitlab-with-docker ): The Omnibus GitLab packages dockerized.
1. [**Source** ](#installing-gitlab-from-source ): Install GitLab and all its components from scratch.
1. [**Cloud provider** ](#installing-gitlab-on-cloud-providers ): Install directly from platforms like AWS, Azure, GCP.
2018-11-20 22:28:28 +00:00
TIP: **If in doubt, choose Omnibus:**
2020-05-04 18:10:20 +00:00
The Omnibus GitLab packages are mature,
[scalable ](../administration/reference_architectures/index.md ) and are used
2018-12-06 21:29:14 +00:00
today on GitLab.com. The Helm charts are recommended for those who are familiar
2018-11-29 20:23:50 +00:00
with Kubernetes.
2018-11-20 22:28:28 +00:00
2018-12-03 17:56:25 +00:00
## Requirements
2018-11-20 22:28:28 +00:00
2020-03-26 15:08:16 +00:00
Before installing GitLab, it is of critical importance to review the system [requirements ](requirements.md ). The system requirements include details on the minimum hardware, software, database, and additional requirements to support GitLab.
2018-12-03 17:56:25 +00:00
2018-12-06 21:29:14 +00:00
## Installing GitLab using the Omnibus GitLab package (recommended)
2018-12-03 17:56:25 +00:00
2018-12-06 21:29:14 +00:00
The Omnibus GitLab package uses our official deb/rpm repositories. This is
recommended for most users.
2018-11-20 22:28:28 +00:00
2018-11-29 20:23:50 +00:00
If you need additional flexibility and resilience, we recommend deploying
2020-05-04 18:10:20 +00:00
GitLab as described in our [reference architecture documentation ](../administration/reference_architectures/index.md ).
2018-11-20 22:28:28 +00:00
2018-12-03 17:56:25 +00:00
[**> Install GitLab using the Omnibus GitLab package.** ](https://about.gitlab.com/install/ )
2018-12-06 21:29:14 +00:00
## Installing GitLab on Kubernetes via the GitLab Helm charts
2018-11-20 22:28:28 +00:00
2018-12-03 17:56:25 +00:00
NOTE: **Kubernetes experience required:**
2018-11-29 20:23:50 +00:00
We recommend being familiar with Kubernetes before using it to deploy GitLab in
production. The methods for management, observability, and some concepts are
different than traditional deployments.
2018-11-20 22:28:28 +00:00
2018-12-04 08:24:09 +00:00
When installing GitLab on Kubernetes, there are some trade-offs that you
need to be aware of:
2018-11-20 22:28:28 +00:00
2018-11-29 20:23:50 +00:00
- Administration and troubleshooting requires Kubernetes knowledge.
- It can be more expensive for smaller installations. The default installation
requires more resources than a single node Omnibus deployment, as most services
are deployed in a redundant fashion.
2019-03-14 10:06:48 +00:00
- There are some feature [limitations to be aware of ](https://docs.gitlab.com/charts/#limitations ).
2018-11-20 22:28:28 +00:00
2019-03-14 10:06:48 +00:00
[**> Install GitLab on Kubernetes using the GitLab Helm charts.** ](https://docs.gitlab.com/charts/ )
2018-11-20 22:28:28 +00:00
2018-12-06 21:29:14 +00:00
## Installing GitLab with Docker
GitLab maintains a set of official Docker images based on the Omnibus GitLab package.
[**> Install GitLab using the official GitLab Docker images.** ](docker.md )
## Installing GitLab from source
2020-04-30 03:09:32 +00:00
If the Omnibus GitLab package is not available in your distribution, you can
2020-05-04 18:10:20 +00:00
install GitLab from source: Useful for unsupported systems like \*BSD. For an
2020-09-28 06:09:56 +00:00
overview of the directory structure, read the [structure documentation ](installation.md#gitlab-directory-structure ).
2018-12-06 21:29:14 +00:00
[**> Install GitLab from source.** ](installation.md )
## Installing GitLab on cloud providers
2018-11-20 22:28:28 +00:00
2018-12-06 21:29:14 +00:00
GitLab can be installed on a variety of cloud providers by using any of
the above methods, provided the cloud provider supports it.
2018-11-20 22:28:28 +00:00
2018-12-06 21:29:14 +00:00
- [Install on AWS ](aws/index.md ): Install Omnibus GitLab on AWS using the community AMIs that GitLab provides.
- [Install GitLab on Google Cloud Platform ](google_cloud_platform/index.md ): Install Omnibus GitLab on a VM in GCP.
- [Install GitLab on Azure ](azure/index.md ): Install Omnibus GitLab from Azure Marketplace.
2019-05-24 00:48:08 +00:00
- [Install GitLab on OpenShift ](https://docs.gitlab.com/charts/installation/cloud/openshift.html ): Install GitLab on OpenShift by using GitLab's Helm charts.
2019-10-16 15:06:17 +00:00
- [Install GitLab on DC/OS ](https://d2iq.com/blog/gitlab-dcos ): Install GitLab on Mesosphere DC/OS via the [GitLab-Mesosphere integration ](https://about.gitlab.com/blog/2016/09/16/announcing-gitlab-and-mesosphere/ ).
- [Install GitLab on DigitalOcean ](https://about.gitlab.com/blog/2016/04/27/getting-started-with-gitlab-and-digitalocean/ ): Install Omnibus GitLab on DigitalOcean.
2018-11-29 20:23:50 +00:00
- _Testing only!_ [DigitalOcean and Docker Machine ](digitaloceandocker.md ):
2018-07-23 12:25:02 +00:00
Quickly test any version of GitLab on DigitalOcean using Docker Machine.
2020-01-06 06:08:07 +00:00
2020-10-15 21:09:12 +00:00
## Next steps
Here are a few resources you might want to check out after completing the
installation:
- [Upload a license ](../user/admin_area/license.md ) or [start a free trial ](https://about.gitlab.com/free-trial/ ):
Activate all GitLab Enterprise Edition functionality with a license.
- [Set up runners ](https://docs.gitlab.com/runner/ ): Set up one or more GitLab
Runners, the agents that are responsible for all of GitLab's CI/CD features.
- [GitLab Pages ](../administration/pages/index.md ): Configure GitLab Pages to
allow hosting of static sites.
- [GitLab Registry ](../administration/packages/container_registry.md ): With the
GitLab Container Registry, every project can have its own space to store Docker
images.
- [Secure GitLab ](../security/README.md#securing-your-gitlab-installation ):
Recommended practices to secure your GitLab instance.
- [SMTP ](https://docs.gitlab.com/omnibus/settings/smtp.html ): Configure SMTP
for proper email notifications support.
- [LDAP ](../administration/auth/ldap/index.md ): Configure LDAP to be used as
an authentication mechanism for GitLab.
- [Back up and restore GitLab ](../raketasks/backup_restore.md ): Learn the different
ways you can back up or restore GitLab.
- [Upgrade GitLab ](../update/README.md ): Every 22nd of the month, a new feature-rich GitLab version
is released. Learn how to upgrade to it, or to an interim release that contains a security fix.
- [Scaling GitLab ](../administration/reference_architectures/index.md ):
GitLab supports several different types of clustering.
- [Advanced Search ](../integration/elasticsearch.md ): Leverage Elasticsearch for
faster, more advanced code search across your entire GitLab instance.
- [Geo replication ](../administration/geo/index.md ):
Geo is the solution for widely distributed development teams.
- [Release and maintenance policy ](../policy/maintenance.md ): Learn about GitLab's
policies governing version naming, as well as release pace for major, minor, patch,
and security releases.
- [Pricing ](https://about.gitlab.com/pricing/ ): Pricing for the different tiers.