summaryrefslogtreecommitdiff
path: root/doc/install/README.md
blob: 8eca5d3f164d99032c06887f235eb2fa994f49f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
---
comments: false
description: Read through the GitLab installation methods.
---

# Installation

GitLab can be installed in most GNU/Linux distributions and in a number
of cloud providers. To get the best experience from GitLab you need to balance:

1. Performance
1. Reliability
1. Ease of administration (backups, upgrades and troubleshooting)
1. Cost of hosting

TIP: **If in doubt, choose Omnibus:**
Our Omnibus GitLab packages are mature, scalable, support
[high availability](../administration/high_availability/README.md) and are used
today on GitLab.com. Our Helm charts are recommended for those who are familiar
with Kubernetes.

## Requirements

Before installing GitLab, make sure to check the [requirements documentation](requirements.md)
which includes useful information on the supported Operating Systems as well as
the hardware requirements.

## Install GitLab using the Omnibus GitLab package (recommended)

This installation method uses the Omnibus GitLab package, using our official
deb/rpm repositories. This is the recommended way.

If you need additional flexibility and resilience, we recommend deploying
GitLab as described in our [High Availability documentation](../administration/high_availability/README.md).

[**> Install GitLab using the Omnibus GitLab package.**](https://about.gitlab.com/install/)

### Alternative to Omnibus GitLab

If the GitLab Omnibus package is not available in your distribution, you can
choose between:

- [Installing GitLab from source](installation.md): Useful for unsupported
  systems like *BSD. For an overview of the directory structure, read the
  [structure documentation](structure.md). While the recommended database is
  PostgreSQL, we provide information to install GitLab
  [using MySQL](database_mysql.md).
- [Installing Omnibus GitLab using Docker](docker.md).

## Install GitLab on Kubernetes via the GitLab Helm charts

NOTE: **Kubernetes experience required:**
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.

When installing GitLab on kubernetes, there are a number of trade-offs that you
need to be aware of that may not be immediately obvious and could prevent you
getting the best experience from GitLab:

- Configuration of features such as object storage and backups can be more challenging.
- 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.
- There are some feature [limitations to be aware of](kubernetes/gitlab_chart.md#limitations).

[**> Install GitLab on Kubernetes using the GitLab Helm charts.**](kubernetes/index.md)

## Install GitLab on cloud providers

GitLab can be installed on a variety of cloud providers:

- [Install on AWS](aws/index.md): Install GitLab on AWS using the community AMIs that GitLab provides.
- [Install GitLab on Google Cloud Platform](google_cloud_platform/index.md)
- [Install GitLab on Azure](azure/index.md)
- [Install GitLab on OpenShift](openshift_and_gitlab/index.md)
- [Install GitLab on DC/OS](https://mesosphere.com/blog/gitlab-dcos/) via [GitLab-Mesosphere integration](https://about.gitlab.com/2016/09/16/announcing-gitlab-and-mesosphere/)
- [Install GitLab on Google Kubernetes Engine (GKE)](https://about.gitlab.com/2017/01/23/video-tutorial-idea-to-production-on-google-container-engine-gke/): video tutorial on
the full process of installing GitLab on Google Kubernetes Engine (GKE), pushing an application to GitLab, building the app with GitLab CI/CD, and deploying to production.
- [Getting started with GitLab and DigitalOcean](https://about.gitlab.com/2016/04/27/getting-started-with-gitlab-and-digitalocean/): requirements, installation process, updates.
- [Demo: Cloud Native Development with GitLab](https://about.gitlab.com/2017/04/18/cloud-native-demo/): video demonstration on how to install GitLab on Kubernetes, build a project, create Review Apps, store Docker images in Container Registry, deploy to production on Kubernetes, and monitor with Prometheus.
- _Testing only!_ [DigitalOcean and Docker Machine](digitaloceandocker.md):
  Quickly test any version of GitLab on DigitalOcean using Docker Machine.