installation.md 35,9 КБ
Newer Older
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
1
---
GitLab Bot's avatar
GitLab Bot включено в состав коммита
2
3
4
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
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
5
6
7
type: howto
---

Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
8
# Installation from source
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
9

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
10
11
This is the official installation guide to set up a production GitLab server
using the source files. To set up a **development installation** or for many
Sean McGivern's avatar
Sean McGivern включено в состав коммита
12
other installation options, see the [main installation page](README.md).
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
13
14
15
It was created for and tested on **Debian/Ubuntu** operating systems.
Read [requirements.md](requirements.md) for hardware and operating system requirements.
If you want to install on RHEL/CentOS, we recommend using the
GitLab Bot's avatar
GitLab Bot включено в состав коммита
16
[Omnibus packages](https://about.gitlab.com/install/).
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
17
18

This guide is long because it covers many cases and includes all commands you
GitLab Bot's avatar
GitLab Bot включено в состав коммита
19
need, this is [one of the few installation scripts that actually work out of the box](https://twitter.com/robinvdvleuten/status/424163226532986880).
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
20
21
22
23
24
25
26
The following steps have been known to work. **Use caution when you deviate**
from this guide. Make sure you don't violate any assumptions GitLab makes about
its environment. For example, many people run into permission problems because
they changed the location of directories or run services as the wrong user.

If you find a bug/error in this guide, **submit a merge request**
following the
GitLab Bot's avatar
GitLab Bot включено в состав коммита
27
[contributing guide](https://gitlab.com/gitlab-org/gitlab/blob/master/CONTRIBUTING.md).
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
28

29
30
## Consider the Omnibus package installation

GitLab Bot's avatar
GitLab Bot включено в состав коммита
31
Since an installation from source is a lot of work and error prone we strongly recommend the fast and reliable [Omnibus package installation](https://about.gitlab.com/install/) (deb/rpm).
32

GitLab Bot's avatar
GitLab Bot включено в состав коммита
33
One reason the Omnibus package is more reliable is its use of runit to restart any of the GitLab processes in case one crashes.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
34
On heavily used GitLab instances the memory usage of the Sidekiq background worker grows over time.
Evan Read's avatar
Evan Read включено в состав коммита
35
36

Omnibus packages solve this by [letting the Sidekiq terminate gracefully](../administration/operations/sidekiq_memory_killer.md) if it uses too much memory.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
37
After this termination runit detects Sidekiq is not running and starts it.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
38
Since installations from source don't use runit for process supervision, Sidekiq
GitLab Bot's avatar
GitLab Bot включено в состав коммита
39
can't be terminated and its memory usage grows over time.
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
40

GitLab Bot's avatar
GitLab Bot включено в состав коммита
41
## Select a version to install
Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
42

GitLab Bot's avatar
GitLab Bot включено в состав коммита
43
Make sure you view [this installation guide](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/install/installation.md) from the branch (version) of GitLab you would like to install (e.g., `11-7-stable`).
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
44
You can select the branch in the version dropdown in the top left corner of GitLab (below the menu bar).
Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
45

Evan Read's avatar
Evan Read включено в состав коммита
46
If the highest number stable branch is unclear, check the [GitLab blog](https://about.gitlab.com/blog/) for installation guide links by version.
Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
47

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
48
## GitLab directory structure
Valery Sizov's avatar
Valery Sizov включено в состав коммита
49

GitLab Bot's avatar
GitLab Bot включено в состав коммита
50
This is the main directory structure you end up with following the instructions
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
51
of this page:
dosire's avatar
dosire включено в состав коммита
52

GitLab Bot's avatar
GitLab Bot включено в состав коммита
53
```plaintext
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
54
55
56
57
58
59
60
|-- home
|   |-- git
|       |-- .ssh
|       |-- gitlab
|       |-- gitlab-shell
|       |-- repositories
```
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
61

GitLab Bot's avatar
GitLab Bot включено в состав коммита
62
- `/home/git/.ssh` - Contains OpenSSH settings. Specifically, the `authorized_keys`
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
63
  file managed by GitLab Shell.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
64
65
66
67
- `/home/git/gitlab` - GitLab core software.
- `/home/git/gitlab-shell` - Core add-on component of GitLab. Maintains SSH
  cloning and other functionality.
- `/home/git/repositories` - Bare repositories for all projects organized by
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
68
  namespace. This is where the Git repositories which are pushed/pulled are
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
69
70
  maintained for all projects. **This area contains critical data for projects.
  [Keep a backup](../raketasks/backup_restore.md).**
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
71

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
72
The default locations for repositories can be configured in `config/gitlab.yml`
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
73
of GitLab and `config.yml` of GitLab Shell.
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
74

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
75
For a more in-depth overview, see the [GitLab architecture doc](../development/architecture.md).
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
76

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
77
## Overview
Valery Sizov's avatar
Valery Sizov включено в состав коммита
78

PaulWagener's avatar
PaulWagener включено в состав коммита
79
The GitLab installation consists of setting up the following components:
Ariejan de Vroom's avatar
Ariejan de Vroom включено в состав коммита
80

Evan Read's avatar
Evan Read включено в состав коммита
81
82
83
84
85
86
87
88
1. [Packages and dependencies](#1-packages-and-dependencies).
1. [Ruby](#2-ruby).
1. [Go](#3-go).
1. [Node](#4-node).
1. [System users](#5-system-users).
1. [Database](#6-database).
1. [Redis](#7-redis).
1. [GitLab](#8-gitlab).
GitLab Bot's avatar
GitLab Bot включено в состав коммита
89
1. [NGINX](#9-nginx).
Valery Sizov's avatar
Valery Sizov включено в состав коммита
90

Evan Read's avatar
Evan Read включено в состав коммита
91
## 1. Packages and dependencies
Valery Sizov's avatar
Valery Sizov включено в состав коммита
92

93
94
`sudo` is not installed on Debian by default. Make sure your system is
up-to-date and install it.
Robert Speicher's avatar
Robert Speicher включено в состав коммита
95

GitLab Bot's avatar
GitLab Bot включено в состав коммита
96
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
97
98
99
100
101
# run as root!
apt-get update -y
apt-get upgrade -y
apt-get install sudo -y
```
Valery Sizov's avatar
Valery Sizov включено в состав коммита
102

GitLab Bot's avatar
GitLab Bot включено в состав коммита
103
104
105
During this installation, some files need to be edited manually. If you are familiar
with vim, set it as default editor with the commands below. If you are not familiar
with vim, skip this and keep using the default editor:
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
106

GitLab Bot's avatar
GitLab Bot включено в состав коммита
107
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
108
109
110
111
# Install vim and set as default editor
sudo apt-get install -y vim
sudo update-alternatives --set editor /usr/bin/vim.basic
```
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
112

dosire's avatar
dosire включено в состав коммита
113
Install the required packages (needed to compile Ruby and native extensions to Ruby gems):
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
114

GitLab Bot's avatar
GitLab Bot включено в состав коммита
115
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
116
117
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libre2-dev \
  libreadline-dev libncurses5-dev libffi-dev curl openssh-server checkinstall libxml2-dev \
Nick Thomas's avatar
Nick Thomas включено в состав коммита
118
119
  libxslt-dev libcurl4-openssl-dev libicu-dev logrotate rsync python-docutils pkg-config cmake \
  runit
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
120
```
Jakub Jirutka's avatar
Jakub Jirutka включено в состав коммита
121

Nick Thomas's avatar
Nick Thomas включено в состав коммита
122
123
124
Ubuntu 14.04 (Trusty Tahr) doesn't have the `libre2-dev` package available, but
you can [install re2 manually](https://github.com/google/re2/wiki/Install).

GitLab Bot's avatar
GitLab Bot включено в состав коммита
125
126
If you want to use Kerberos for user authentication, install `libkrb5-dev`
(if you don't know what Kerberos is, you can assume you don't need it):
Jakub Jirutka's avatar
Jakub Jirutka включено в состав коммита
127

GitLab Bot's avatar
GitLab Bot включено в состав коммита
128
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
129
130
sudo apt-get install libkrb5-dev
```
Jakub Jirutka's avatar
Jakub Jirutka включено в состав коммита
131

Evan Read's avatar
Evan Read включено в состав коммита
132
Make sure you have the right version of Git installed:
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
133

GitLab Bot's avatar
GitLab Bot включено в состав коммита
134
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
135
136
# Install Git
sudo apt-get install -y git-core
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
137

GitLab Bot's avatar
GitLab Bot включено в состав коммита
138
# Make sure Git is version 2.24.0 or higher (recommended version is 2.28.0)
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
139
140
git --version
```
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
141

John Cai's avatar
John Cai включено в состав коммита
142
143
144
Starting with GitLab 12.0, Git is required to be compiled with `libpcre2`.
Find out if that's the case:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
145
```shell
GitLab Bot's avatar
GitLab Bot включено в состав коммита
146
ldd $(command -v git) | grep pcre2
John Cai's avatar
John Cai включено в состав коммита
147
148
```

GitLab Bot's avatar
GitLab Bot включено в состав коммита
149
The output should contain `libpcre2-8.so.0`.
John Cai's avatar
John Cai включено в состав коммита
150

GitLab Bot's avatar
GitLab Bot включено в состав коммита
151
If the system packaged Git is too old or not compiled with `pcre2`, remove it:
GitLab Bot's avatar
GitLab Bot включено в состав коммита
152
153
154

```shell
sudo apt-get remove git-core
John Cai's avatar
John Cai включено в состав коммита
155
156
```

GitLab Bot's avatar
GitLab Bot включено в состав коммита
157
On Ubuntu, install Git from [its official PPA](https://git-scm.com/download/linux):
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
158

GitLab Bot's avatar
GitLab Bot включено в состав коммита
159
```shell
GitLab Bot's avatar
GitLab Bot включено в состав коммита
160
161
162
163
164
165
166
167
# run as root!
add-apt-repository ppa:git-core/ppa
apt update
apt install git
# repeat libpcre2 check as above
```

On Debian, use the following compilation instructions:
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
168

GitLab Bot's avatar
GitLab Bot включено в состав коммита
169
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
170
171
# Install dependencies
sudo apt-get install -y libcurl4-openssl-dev libexpat1-dev gettext libz-dev libssl-dev build-essential
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
172

John Cai's avatar
John Cai включено в состав коммита
173
174
175
176
177
178
179
# Download and compile pcre2 from source
curl --silent --show-error --location https://ftp.pcre.org/pub/pcre/pcre2-10.33.tar.gz --output pcre2.tar.gz
tar -xzf pcre2.tar.gz
cd pcre2-10.33
chmod +x configure
./configure --prefix=/usr --enable-jit
make
Kyohei Uemura's avatar
Kyohei Uemura включено в состав коммита
180
sudo make install
John Cai's avatar
John Cai включено в состав коммита
181

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
182
183
# Download and compile from source
cd /tmp
GitLab Bot's avatar
GitLab Bot включено в состав коммита
184
185
186
curl --remote-name --location --progress https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz
echo 'f914c60a874d466c1e18467c864a910dd4ea22281ba6d4d58077cb0c3f115170  git-2.28.0.tar.gz' | shasum -a256 -c - && tar -xzf git-2.28.0.tar.gz
cd git-2.28.0/
John Cai's avatar
John Cai включено в состав коммита
187
./configure --with-libpcre
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
188
make prefix=/usr/local all
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
189

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
190
191
# Install into /usr/local/bin
sudo make prefix=/usr/local install
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
192

GitLab Bot's avatar
GitLab Bot включено в состав коммита
193
# When editing config/gitlab.yml later, change the git -> bin_path to /usr/local/bin/git
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
194
```
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
195

GitLab Bot's avatar
GitLab Bot включено в состав коммита
196
For the [Custom Favicon](../user/admin_area/appearance.md#favicon) to work, GraphicsMagick
Alexis Reigel's avatar
Alexis Reigel включено в состав коммита
197
198
needs to be installed.

GitLab Bot's avatar
GitLab Bot включено в состав коммита
199
```shell
Alexis Reigel's avatar
Alexis Reigel включено в состав коммита
200
201
202
sudo apt-get install -y graphicsmagick
```

GitLab Bot's avatar
GitLab Bot включено в состав коммита
203
204
205
206
207
In order to receive mail notifications, make sure to install a mail server.
By default, Debian is shipped with `exim4` but this
[has problems](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/12754) while
Ubuntu does not ship with one. The recommended mail server is `postfix` and you
can install it with:
Axilleas Pipinellis's avatar
Axilleas Pipinellis включено в состав коммита
208

GitLab Bot's avatar
GitLab Bot включено в состав коммита
209
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
210
211
sudo apt-get install -y postfix
```
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
212
213

Then select 'Internet Site' and press enter to confirm the hostname.
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
214

GitLab Bot's avatar
GitLab Bot включено в состав коммита
215
216
217
218
219
220
221
[GitLab Workhorse](https://gitlab.com/gitlab-org/gitlab-workhorse#dependencies)
requires `exiftool` to remove EXIF data from uploaded images.

```shell
sudo apt-get install -y libimage-exiftool-perl
```

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
222
## 2. Ruby
Valery Sizov's avatar
Valery Sizov включено в состав коммита
223

Luís Pedro Algarvio's avatar
Luís Pedro Algarvio включено в состав коммита
224
The Ruby interpreter is required to run GitLab.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
225
226
See the [requirements page](requirements.md#ruby-versions) for the minimum
Ruby requirements.
dosire's avatar
dosire включено в состав коммита
227

GitLab Bot's avatar
GitLab Bot включено в состав коммита
228
The use of Ruby version managers such as [RVM](https://rvm.io/), [rbenv](https://github.com/rbenv/rbenv) or [chruby](https://github.com/postmodern/chruby) with GitLab
GitLab Bot's avatar
GitLab Bot включено в состав коммита
229
230
231
in production, frequently leads to hard to diagnose problems. Version managers
are not supported and we strongly advise everyone to follow the instructions
below to use a system Ruby.
Luís Pedro Algarvio's avatar
Luís Pedro Algarvio включено в состав коммита
232
233
234

Linux distributions generally have older versions of Ruby available, so these
instructions are designed to install Ruby from the official source code.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
235
236

Remove the old Ruby 1.8 if present:
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
237

GitLab Bot's avatar
GitLab Bot включено в состав коммита
238
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
239
240
sudo apt-get remove ruby1.8
```
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
241

Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
242
Download Ruby and compile it:
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
243

GitLab Bot's avatar
GitLab Bot включено в состав коммита
244
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
245
mkdir /tmp/ruby && cd /tmp/ruby
GitLab Bot's avatar
GitLab Bot включено в состав коммита
246
247
248
curl --remote-name --progress https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.6.tar.gz
echo '2d78048e293817f38d4ede4ebc7873013e97bb0b  ruby-2.6.6.tar.gz' | shasum -c - && tar xzf ruby-2.6.6.tar.gz
cd ruby-2.6.6
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
249
250
251
252
253

./configure --disable-install-rdoc
make
sudo make install
```
Valery Sizov's avatar
Valery Sizov включено в состав коммита
254

Evan Read's avatar
Evan Read включено в состав коммита
255
Then install the Bundler gem (a version below 2.x):
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
256

GitLab Bot's avatar
GitLab Bot включено в состав коммита
257
```shell
Takuya Noguchi's avatar
Takuya Noguchi включено в состав коммита
258
sudo gem install bundler --no-document --version '< 2'
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
259
```
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
260

Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
261
262
## 3. Go

GitLab Bot's avatar
GitLab Bot включено в состав коммита
263
In GitLab 8.0 and later, GitLab has several daemons written in Go. To install
Kim "BKC" Carlbäcker's avatar
Kim "BKC" Carlbäcker включено в состав коммита
264
265
GitLab we need a Go compiler. The instructions below assume you use 64-bit
Linux. You can find downloads for other platforms at the [Go download
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
266
page](https://golang.org/dl).
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
267

GitLab Bot's avatar
GitLab Bot включено в состав коммита
268
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
269
270
271
# Remove former Go installation folder
sudo rm -rf /usr/local/go

GitLab Bot's avatar
GitLab Bot включено в состав коммита
272
273
274
curl --remote-name --progress https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz
echo '512103d7ad296467814a6e3f635631bd35574cab3369a97a323c9a585ccaa569  go1.13.5.linux-amd64.tar.gz' | shasum -a256 -c - && \
  sudo tar -C /usr/local -xzf go1.13.5.linux-amd64.tar.gz
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
275
sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/
GitLab Bot's avatar
GitLab Bot включено в состав коммита
276
rm go1.13.5.linux-amd64.tar.gz
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
277
```
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
278

Mike Greiling's avatar
Mike Greiling включено в состав коммита
279
280
## 4. Node

GitLab Bot's avatar
GitLab Bot включено в состав коммита
281
In GitLab 8.17 and later, GitLab requires the use of Node to compile JavaScript
Evan Read's avatar
Evan Read включено в состав коммита
282
283
284
assets, and Yarn to manage JavaScript dependencies. The current minimum
requirements for these are:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
285
- `node` >= v10.13.0. (We recommend node 12.x as it is faster)
Evan Read's avatar
Evan Read включено в состав коммита
286
287
288
- `yarn` >= v1.10.0.

In many distros,
Mike Greiling's avatar
Mike Greiling включено в состав коммита
289
the versions provided by the official package repositories are out of date, so
GitLab Bot's avatar
GitLab Bot включено в состав коммита
290
we need to install through the following commands:
Mike Greiling's avatar
Mike Greiling включено в состав коммита
291

GitLab Bot's avatar
GitLab Bot включено в состав коммита
292
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
293
294
# install node v12.x
curl --location https://deb.nodesource.com/setup_12.x | sudo bash -
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
295
296
297
298
299
300
sudo apt-get install -y nodejs

curl --silent --show-error https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update
sudo apt-get install yarn
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
301
```
Mike Greiling's avatar
Mike Greiling включено в состав коммита
302

GitLab Bot's avatar
GitLab Bot включено в состав коммита
303
Visit the official websites for [node](https://nodejs.org/en/download/package-manager/) and [yarn](https://classic.yarnpkg.com/en/docs/install/) if you have any trouble with these steps.
Mike Greiling's avatar
Mike Greiling включено в состав коммита
304

Evan Read's avatar
Evan Read включено в состав коммита
305
## 5. System users
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
306

Robert Schilling's avatar
Robert Schilling включено в состав коммита
307
Create a `git` user for GitLab:
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
308

GitLab Bot's avatar
GitLab Bot включено в состав коммита
309
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
310
311
sudo adduser --disabled-login --gecos 'GitLab' git
```
Valery Sizov's avatar
Valery Sizov включено в состав коммита
312

Mike Greiling's avatar
Mike Greiling включено в состав коммита
313
## 6. Database
randx's avatar
randx включено в состав коммита
314

Evan Read's avatar
Evan Read включено в состав коммита
315
NOTE: **Note:**
GitLab Bot's avatar
GitLab Bot включено в состав коммита
316
In GitLab 12.1 and later, only PostgreSQL is supported. In GitLab 13.0 and later, we [require PostgreSQL 11+](requirements.md#postgresql-requirements).
Douwe Maan's avatar
Douwe Maan включено в состав коммита
317

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
318
319
1. Install the database packages:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
320
   ```shell
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
321
322
   sudo apt-get install -y postgresql postgresql-client libpq-dev postgresql-contrib
   ```
GitLab Bot's avatar
GitLab Bot включено в состав коммита
323

GitLab Bot's avatar
GitLab Bot включено в состав коммита
324
325
326
327
328
329
1. Verify the PostgreSQL version you have is supported by the version of GitLab you're
   installing:

   ```shell
   psql --version
   ```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
330

GitLab Bot's avatar
GitLab Bot включено в состав коммита
331
332
333
334
335
336
337
1. Start the PostgreSQL service and confirm that the service is running:

   ```shell
   sudo service postgresql start
   sudo service postgresql status
   ```

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
338
339
1. Create a database user for GitLab:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
340
   ```shell
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
341
342
   sudo -u postgres psql -d template1 -c "CREATE USER git CREATEDB;"
   ```
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
343

GitLab Bot's avatar
GitLab Bot включено в состав коммита
344
1. Create the `pg_trgm` extension:
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
345

GitLab Bot's avatar
GitLab Bot включено в состав коммита
346
   ```shell
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
347
348
   sudo -u postgres psql -d template1 -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;"
   ```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
349

GitLab Bot's avatar
GitLab Bot включено в состав коммита
350
351
352
353
354
355
1. Create the `btree_gist` extension (required for GitLab 13.1+):

   ```shell
   sudo -u postgres psql -d template1 -c "CREATE EXTENSION IF NOT EXISTS btree_gist;"
   ```

GitLab Bot's avatar
GitLab Bot включено в состав коммита
356
1. Create the GitLab production database and grant all privileges on the database:
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
357

GitLab Bot's avatar
GitLab Bot включено в состав коммита
358
   ```shell
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
359
360
   sudo -u postgres psql -d template1 -c "CREATE DATABASE gitlabhq_production OWNER git;"
   ```
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
361

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
362
363
1. Try connecting to the new database with the new user:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
364
   ```shell
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
365
366
   sudo -u git -H psql -d gitlabhq_production
   ```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
367
368
369

1. Check if the `pg_trgm` extension is enabled:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
370
   ```sql
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
371
372
373
374
375
   SELECT true AS enabled
   FROM pg_available_extensions
   WHERE name = 'pg_trgm'
   AND installed_version IS NOT NULL;
   ```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
376

GitLab Bot's avatar
GitLab Bot включено в состав коммита
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
   If the extension is enabled this produces the following output:

   ```plaintext
   enabled
   ---------
    t
   (1 row)
   ```

1. Check if the `btree_gist` extension is enabled:

   ```sql
   SELECT true AS enabled
   FROM pg_available_extensions
   WHERE name = 'btree_gist'
   AND installed_version IS NOT NULL;
   ```

   If the extension is enabled this produces the following output:
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
396

GitLab Bot's avatar
GitLab Bot включено в состав коммита
397
   ```plaintext
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
398
399
400
401
402
   enabled
   ---------
    t
   (1 row)
   ```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
403
404

1. Quit the database session:
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
405

GitLab Bot's avatar
GitLab Bot включено в состав коммита
406
   ```shell
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
407
408
   gitlabhq_production> \q
   ```
randx's avatar
randx включено в состав коммита
409

Mike Greiling's avatar
Mike Greiling включено в состав коммита
410
## 7. Redis
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
411

GitLab Bot's avatar
GitLab Bot включено в состав коммита
412
413
See the [requirements page](requirements.md#redis-versions) for the minimum
Redis requirements.
Stan Hu's avatar
Stan Hu включено в состав коммита
414

GitLab Bot's avatar
GitLab Bot включено в состав коммита
415
Install Redis with:
Robert Speicher's avatar
Robert Speicher включено в состав коммита
416

GitLab Bot's avatar
GitLab Bot включено в состав коммита
417
```shell
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
418
419
sudo apt-get install redis-server
```
Robert Speicher's avatar
Robert Speicher включено в состав коммита
420

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
421
Once done, you can configure Redis:
Robert Speicher's avatar
Robert Speicher включено в состав коммита
422

GitLab Bot's avatar
GitLab Bot включено в состав коммита
423
```shell
Robert Speicher's avatar
Robert Speicher включено в состав коммита
424
425
# Configure redis to use sockets
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.orig
Stan Hu's avatar
Stan Hu включено в состав коммита
426

Robert Speicher's avatar
Robert Speicher включено в состав коммита
427
# Disable Redis listening on TCP by setting 'port' to 0
Peter Vandenabeele's avatar
Peter Vandenabeele включено в состав коммита
428
sudo sed 's/^port .*/port 0/' /etc/redis/redis.conf.orig | sudo tee /etc/redis/redis.conf
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
429

Robert Speicher's avatar
Robert Speicher включено в состав коммита
430
431
# Enable Redis socket for default Debian / Ubuntu path
echo 'unixsocket /var/run/redis/redis.sock' | sudo tee -a /etc/redis/redis.conf
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
432

Robert Speicher's avatar
Robert Speicher включено в состав коммита
433
434
# Grant permission to the socket to all members of the redis group
echo 'unixsocketperm 770' | sudo tee -a /etc/redis/redis.conf
Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
435

Robert Speicher's avatar
Robert Speicher включено в состав коммита
436
# Create the directory which contains the socket
Peter Vandenabeele's avatar
Peter Vandenabeele включено в состав коммита
437
438
439
sudo mkdir -p /var/run/redis
sudo chown redis:redis /var/run/redis
sudo chmod 755 /var/run/redis
Hugo Osvaldo Barrera's avatar
Hugo Osvaldo Barrera включено в состав коммита
440

Robert Speicher's avatar
Robert Speicher включено в состав коммита
441
442
443
444
# Persist the directory which contains the socket, if applicable
if [ -d /etc/tmpfiles.d ]; then
  echo 'd  /var/run/redis  0755  redis  redis  10d  -' | sudo tee -a /etc/tmpfiles.d/redis.conf
fi
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
445

Robert Speicher's avatar
Robert Speicher включено в состав коммита
446
# Activate the changes to redis.conf
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
447
sudo service redis-server restart
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
448

Robert Speicher's avatar
Robert Speicher включено в состав коммита
449
450
451
# Add git to the redis group
sudo usermod -aG redis git
```
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
452

Mike Greiling's avatar
Mike Greiling включено в состав коммита
453
## 8. GitLab
Valery Sizov's avatar
Valery Sizov включено в состав коммита
454

GitLab Bot's avatar
GitLab Bot включено в состав коммита
455
```shell
GitLab Bot's avatar
GitLab Bot включено в состав коммита
456
# We'll install GitLab into the home directory of the user "git"
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
457
458
cd /home/git
```
randx's avatar
randx включено в состав коммита
459

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
460
### Clone the Source
randx's avatar
randx включено в состав коммита
461

GitLab Bot's avatar
GitLab Bot включено в состав коммита
462
463
Clone Community Edition:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
464
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
465
# Clone GitLab repository
GitLab Bot's avatar
GitLab Bot включено в состав коммита
466
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-foss.git -b X-Y-stable gitlab
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
467
```
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
468

GitLab Bot's avatar
GitLab Bot включено в состав коммита
469
470
471
472
Clone Enterprise Edition:

```shell
# Clone GitLab repository
GitLab Bot's avatar
GitLab Bot включено в состав коммита
473
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab.git -b X-Y-stable gitlab
GitLab Bot's avatar
GitLab Bot включено в состав коммита
474
475
```

Yorick Peterse's avatar
Yorick Peterse включено в состав коммита
476
477
478
479
Make sure to replace `X-Y-stable` with the stable branch that matches the
version you want to install. For example, if you want to install 11.8 you would
use the branch name `11-8-stable`.

Evan Read's avatar
Evan Read включено в состав коммита
480
CAUTION: **Caution:**
Yorick Peterse's avatar
Yorick Peterse включено в состав коммита
481
You can change `X-Y-stable` to `master` if you want the *bleeding edge* version, but never install `master` on a production server!
randx's avatar
randx включено в состав коммита
482

Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
483
### Configure It
randx's avatar
randx включено в состав коммита
484

GitLab Bot's avatar
GitLab Bot включено в состав коммита
485
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
486
487
# Go to GitLab installation folder
cd /home/git/gitlab
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
488

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
489
490
# Copy the example GitLab config
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
Valery Sizov's avatar
Valery Sizov включено в состав коммита
491

GitLab Bot's avatar
GitLab Bot включено в состав коммита
492
# Update GitLab config file, follow the directions at top of the file
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
493
sudo -u git -H editor config/gitlab.yml
Robert Speicher's avatar
Robert Speicher включено в состав коммита
494

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
495
496
497
# Copy the example secrets file
sudo -u git -H cp config/secrets.yml.example config/secrets.yml
sudo -u git -H chmod 0600 config/secrets.yml
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
498

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
499
500
501
502
503
# Make sure GitLab can write to the log/ and tmp/ directories
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX tmp/
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
504

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
505
506
507
# Make sure GitLab can write to the tmp/pids/ and tmp/sockets/ directories
sudo chmod -R u+rwX tmp/pids/
sudo chmod -R u+rwX tmp/sockets/
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
508

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
509
# Create the public/uploads/ directory
Peter Vandenabeele's avatar
Peter Vandenabeele включено в состав коммита
510
sudo -u git -H mkdir -p public/uploads/
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
511

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
512
513
514
# Make sure only the GitLab user has access to the public/uploads/ directory
# now that files in public/uploads are served by gitlab-workhorse
sudo chmod 0700 public/uploads
Robert Speicher's avatar
Robert Speicher включено в состав коммита
515

GitLab Bot's avatar
GitLab Bot включено в состав коммита
516
# Change the permissions of the directory where CI job logs are stored
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
517
sudo chmod -R u+rwX builds/
Axilleas Pipinellis's avatar
Axilleas Pipinellis включено в состав коммита
518

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
519
520
# Change the permissions of the directory where CI artifacts are stored
sudo chmod -R u+rwX shared/artifacts/
Kamil Trzcinski's avatar
Kamil Trzcinski включено в состав коммита
521

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
522
523
# Change the permissions of the directory where GitLab Pages are stored
sudo chmod -R ug+rwX shared/pages/
Kamil Trzcinski's avatar
Kamil Trzcinski включено в состав коммита
524

GitLab Bot's avatar
GitLab Bot включено в состав коммита
525
526
# Copy the example Puma config
sudo -u git -H cp config/puma.rb.example config/puma.rb
Andrey Kumanyaev's avatar
Andrey Kumanyaev включено в состав коммита
527

GitLab Bot's avatar
GitLab Bot включено в состав коммита
528
529
530
531
# Refer to https://github.com/puma/puma#configuration for more information.
# You should scale Puma workers and threads based on the number of CPU
# cores you have available. You can get that number via the `nproc` command.
sudo -u git -H editor config/puma.rb
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
532

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
533
534
535
# Configure Git global settings for git user
# 'autocrlf' is needed for the web editor
sudo -u git -H git config --global core.autocrlf input
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
536

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
537
538
# Disable 'git gc --auto' because GitLab already runs 'git gc' when needed
sudo -u git -H git config --global gc.auto 0
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
539

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
540
541
# Enable packfile bitmaps
sudo -u git -H git config --global repack.writeBitmaps true
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
542

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
543
544
# Enable push options
sudo -u git -H git config --global receive.advertisePushOptions true
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
545

GitLab Bot's avatar
GitLab Bot включено в состав коммита
546
547
548
# Enable fsyncObjectFiles to reduce risk of repository corruption if the server crashes
sudo -u git -H git config --global core.fsyncObjectFiles true

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
549
550
# Configure Redis connection settings
sudo -u git -H cp config/resque.yml.example config/resque.yml
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
551

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
552
553
554
# Change the Redis socket path if you are not using the default Debian / Ubuntu configuration
sudo -u git -H editor config/resque.yml
```
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
555

GitLab Bot's avatar
GitLab Bot включено в состав коммита
556
557
Make sure to edit both `gitlab.yml` and `puma.rb` to match your setup.
If you want to use the Unicorn web server, see [Using Unicorn](#using-unicorn) for the additional steps.
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
558

Evan Read's avatar
Evan Read включено в состав коммита
559
If you want to use HTTPS, see [Using HTTPS](#using-https) for the additional steps.
Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
560

Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
561
### Configure GitLab DB Settings
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
562

GitLab Bot's avatar
GitLab Bot включено в состав коммита
563
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
564
565
sudo -u git cp config/database.yml.postgresql config/database.yml

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
566
567
568
569
570
571
572
573
574
575
# Remove host, username, and password lines from config/database.yml.
# Once modified, the `production` settings will be as follows:
#
#   production:
#     adapter: postgresql
#     encoding: unicode
#     database: gitlabhq_production
#
sudo -u git -H editor config/database.yml

Nick Thomas's avatar
Nick Thomas включено в состав коммита
576
# Remote PostgreSQL only:
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
577
578
579
580
581
582
583
584
585
586
# Update username/password in config/database.yml.
# You only need to adapt the production settings (first part).
# If you followed the database guide then please do as follows:
# Change 'secure password' with the value you have given to $password
# You can keep the double quotes around the password
sudo -u git -H editor config/database.yml

# Make config/database.yml readable to git only
sudo -u git -H chmod o-rwx config/database.yml
```
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
587

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
588
### Install Gems
sylis's avatar
sylis включено в состав коммита
589

Evan Read's avatar
Evan Read включено в состав коммита
590
NOTE: **Note:**
GitLab Bot's avatar
GitLab Bot включено в состав коммита
591
As of Bundler 1.5.2, you can invoke `bundle install -jN` (where `N` is the number of your processor cores) and enjoy parallel gems installation with measurable difference in completion time (~60% faster). Check the number of your cores with `nproc`. For more information, see this [post](https://thoughtbot.com/blog/parallel-gem-installing-using-bundler).
Evan Read's avatar
Evan Read включено в состав коммита
592
593
594

Make sure you have `bundle` (run `bundle -v`):

GitLab Bot's avatar
GitLab Bot включено в состав коммита
595
- `>= 1.5.2`, because some [issues](https://devcenter.heroku.com/changelog-items/411) were [fixed](https://github.com/rubygems/bundler/pull/2817) in 1.5.2.
Evan Read's avatar
Evan Read включено в состав коммита
596
- `< 2.x`.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
597

GitLab Bot's avatar
GitLab Bot включено в состав коммита
598
599
600
Install the gems (if you want to use Kerberos for user authentication, omit
`kerberos` in the `--without` option below):

GitLab Bot's avatar
GitLab Bot включено в состав коммита
601
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
602
603
sudo -u git -H bundle install --deployment --without development test mysql aws kerberos
```
Jakub Jirutka's avatar
Jakub Jirutka включено в состав коммита
604

Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
605
### Install GitLab Shell
Cyril Rohr's avatar
Cyril Rohr включено в состав коммита
606

Robert Schilling's avatar
Robert Schilling включено в состав коммита
607
GitLab Shell is an SSH access and repository management software developed specially for GitLab.
Cyril Rohr's avatar
Cyril Rohr включено в состав коммита
608

GitLab Bot's avatar
GitLab Bot включено в состав коммита
609
```shell
GitLab Bot's avatar
GitLab Bot включено в состав коммита
610
611
# Run the installation task for gitlab-shell:
sudo -u git -H bundle exec rake gitlab:shell:install RAILS_ENV=production
Cyril Rohr's avatar
Cyril Rohr включено в состав коммита
612

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
613
614
615
616
# By default, the gitlab-shell config is generated from your main GitLab config.
# You can review (and modify) the gitlab-shell config as follows:
sudo -u git -H editor /home/git/gitlab-shell/config.yml
```
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
617

Evan Read's avatar
Evan Read включено в состав коммита
618
If you want to use HTTPS, see [Using HTTPS](#using-https) for the additional steps.
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
619

GitLab Bot's avatar
GitLab Bot включено в состав коммита
620
Make sure your hostname can be resolved on the machine itself by either a proper DNS record or an additional line in `/etc/hosts` ("127.0.0.1 hostname"). This might be necessary, for example, if you set up GitLab behind a reverse proxy. If the hostname cannot be resolved, the final installation check fails with `Check GitLab API access: FAILED. code: 401` and pushing commits are rejected with `[remote rejected] master -> master (hook declined)`.
Holger Segnitz's avatar
Holger Segnitz включено в состав коммита
621

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
622
### Install GitLab Workhorse
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
623

Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
624
GitLab-Workhorse uses [GNU Make](https://www.gnu.org/software/make/). The
GitLab Bot's avatar
GitLab Bot включено в состав коммита
625
following command-line installs GitLab-Workhorse in `/home/git/gitlab-workhorse`
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
626
which is the recommended location.
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
627

GitLab Bot's avatar
GitLab Bot включено в состав коммита
628
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
629
630
sudo -u git -H bundle exec rake "gitlab:workhorse:install[/home/git/gitlab-workhorse]" RAILS_ENV=production
```
Rémy Coutable's avatar
Rémy Coutable включено в состав коммита
631

Ville Skyttä's avatar
Ville Skyttä включено в состав коммита
632
You can specify a different Git repository by providing it as an extra parameter:
Mike Ricketts's avatar
Mike Ricketts включено в состав коммита
633

GitLab Bot's avatar
GitLab Bot включено в состав коммита
634
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
635
636
sudo -u git -H bundle exec rake "gitlab:workhorse:install[/home/git/gitlab-workhorse,https://example.com/gitlab-workhorse.git]" RAILS_ENV=production
```
Mike Ricketts's avatar
Mike Ricketts включено в состав коммита
637

GitLab Bot's avatar
GitLab Bot включено в состав коммита
638
### Install GitLab-Elasticsearch-indexer on Enterprise Edition **(STARTER ONLY)**
GitLab Bot's avatar
GitLab Bot включено в состав коммита
639
640

GitLab-Elasticsearch-Indexer uses [GNU Make](https://www.gnu.org/software/make/). The
GitLab Bot's avatar
GitLab Bot включено в состав коммита
641
following command-line installs GitLab-Elasticsearch-Indexer in `/home/git/gitlab-elasticsearch-indexer`
GitLab Bot's avatar
GitLab Bot включено в состав коммита
642
643
which is the recommended location.

GitLab Bot's avatar
GitLab Bot включено в состав коммита
644
```shell
GitLab Bot's avatar
GitLab Bot включено в состав коммита
645
646
647
648
649
sudo -u git -H bundle exec rake "gitlab:indexer:install[/home/git/gitlab-elasticsearch-indexer]" RAILS_ENV=production
```

You can specify a different Git repository by providing it as an extra parameter:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
650
```shell
GitLab Bot's avatar
GitLab Bot включено в состав коммита
651
652
653
sudo -u git -H bundle exec rake "gitlab:indexer:install[/home/git/gitlab-elasticsearch-indexer,https://example.com/gitlab-elasticsearch-indexer.git]" RAILS_ENV=production
```

GitLab Bot's avatar
GitLab Bot включено в состав коммита
654
655
The source code first is fetched to the path specified by the first parameter. Then a binary is built under its `bin` directory.
You then need to update `gitlab.yml`'s `production -> elasticsearch -> indexer_path` setting to point to that binary.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
656

Evan Read's avatar
Evan Read включено в состав коммита
657
### Install GitLab Pages
Richard Hancock's avatar
Richard Hancock включено в состав коммита
658

GitLab Bot's avatar
GitLab Bot включено в состав коммита
659
GitLab Pages uses [GNU Make](https://www.gnu.org/software/make/). This step is optional and only needed if you wish to host static sites from within GitLab. The following commands install GitLab Pages in `/home/git/gitlab-pages`. For additional setup steps, consult the [administration guide](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/administration/pages/source.md) for your version of GitLab as the GitLab Pages daemon can be run several different ways.
Richard Hancock's avatar
Richard Hancock включено в состав коммита
660

GitLab Bot's avatar
GitLab Bot включено в состав коммита
661
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
662
663
664
665
666
667
cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
cd gitlab-pages
sudo -u git -H git checkout v$(</home/git/gitlab/GITLAB_PAGES_VERSION)
sudo -u git -H make
```
Mike Ricketts's avatar
Mike Ricketts включено в состав коммита
668

Aniela Ziółkowski's avatar
Aniela Ziółkowski включено в состав коммита
669
670
### Install Gitaly

GitLab Bot's avatar
GitLab Bot включено в состав коммита
671
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
672
# Fetch Gitaly source with Git and compile with Go
Peter Vandenabeele's avatar
Peter Vandenabeele включено в состав коммита
673
cd /home/git/gitlab
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
674
675
sudo -u git -H bundle exec rake "gitlab:gitaly:install[/home/git/gitaly,/home/git/repositories]" RAILS_ENV=production
```
Aniela Ziółkowski's avatar
Aniela Ziółkowski включено в состав коммита
676
677
678

You can specify a different Git repository by providing it as an extra parameter:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
679
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
680
681
sudo -u git -H bundle exec rake "gitlab:gitaly:install[/home/git/gitaly,/home/git/repositories,https://example.com/gitaly.git]" RAILS_ENV=production
```
Aniela Ziółkowski's avatar
Aniela Ziółkowski включено в состав коммита
682

Nourdin el Bacha's avatar
Nourdin el Bacha включено в состав коммита
683
Next, make sure that Gitaly is configured:
Aniela Ziółkowski's avatar
Aniela Ziółkowski включено в состав коммита
684

GitLab Bot's avatar
GitLab Bot включено в состав коммита
685
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
686
687
688
# Restrict Gitaly socket access
sudo chmod 0700 /home/git/gitlab/tmp/sockets/private
sudo chown git /home/git/gitlab/tmp/sockets/private
Aniela Ziółkowski's avatar
Aniela Ziółkowski включено в состав коммита
689

GitLab Bot's avatar
GitLab Bot включено в состав коммита
690
# If you are using non-default settings, you need to update config.toml
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
691
692
693
cd /home/git/gitaly
sudo -u git -H editor config.toml
```
Aniela Ziółkowski's avatar
Aniela Ziółkowski включено в состав коммита
694
695

For more information about configuring Gitaly see
GitLab Bot's avatar
GitLab Bot включено в состав коммита
696
[the Gitaly documentation](../administration/gitaly/index.md).
Aniela Ziółkowski's avatar
Aniela Ziółkowski включено в состав коммита
697

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
698
699
700
701
### Start Gitaly

Gitaly must be running for the next section.

GitLab Bot's avatar
GitLab Bot включено в состав коммита
702
```shell
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
703
704
705
gitlab_path=/home/git/gitlab
gitaly_path=/home/git/gitaly

Kyohei Uemura's avatar
Kyohei Uemura включено в состав коммита
706
707
sudo -u git -H sh -c "$gitlab_path/bin/daemon_with_pidfile $gitlab_path/tmp/pids/gitaly.pid \
  $gitaly_path/gitaly $gitaly_path/config.toml >> $gitlab_path/log/gitaly.log 2>&1 &"
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
708
709
```

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
710
### Initialize Database and Activate Advanced Features
Robert Speicher's avatar
Robert Speicher включено в состав коммита
711

GitLab Bot's avatar
GitLab Bot включено в состав коммита
712
```shell
Peter Vandenabeele's avatar
Peter Vandenabeele включено в состав коммита
713
cd /home/git/gitlab
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
714
715
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
# Type 'yes' to create the database tables.
Bob Van Landuyt's avatar
Bob Van Landuyt включено в состав коммита
716

Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
717
718
# or you can skip the question by adding force=yes
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production force=yes
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
719

GitLab Bot's avatar
GitLab Bot включено в состав коммита
720
# When done, you see 'Administrator account created:'
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
721
```
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
722

GitLab Bot's avatar
GitLab Bot включено в состав коммита
723
You can set the Administrator/root password and email by supplying them in environmental variables, `GITLAB_ROOT_PASSWORD` and `GITLAB_ROOT_EMAIL` respectively, as seen below. If you don't set the password (and it is set to the default one), wait to expose GitLab to the public internet until the installation is done and you've logged into the server the first time. During the first login, you'll be forced to change the default password. An Enterprise Edition license may also be installed at this time by supplying a full path in the `GITLAB_LICENSE_FILE` environment variable.
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
724

GitLab Bot's avatar
GitLab Bot включено в состав коммита
725
```shell
Robert Marshall's avatar
Robert Marshall включено в состав коммита
726
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production GITLAB_ROOT_PASSWORD=yourpassword GITLAB_ROOT_EMAIL=youremail GITLAB_LICENSE_FILE="/path/to/license"
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
727
```
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
728

Kamil Trzcinski's avatar
Kamil Trzcinski включено в состав коммита
729
730
731
732
### Secure secrets.yml

The `secrets.yml` file stores encryption keys for sessions and secure variables.
Backup `secrets.yml` someplace safe, but don't store it in the same place as your database backups.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
733
Otherwise, your secrets are exposed if one of your backups is compromised.
Kamil Trzcinski's avatar
Kamil Trzcinski включено в состав коммита
734

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
735
### Install Init Script
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
736

GitLab Bot's avatar
GitLab Bot включено в состав коммита
737
Download the init script (is `/etc/init.d/gitlab`):
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
738

GitLab Bot's avatar
GitLab Bot включено в состав коммита
739
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
740
741
sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
```
Rovanion Luckey's avatar
Rovanion Luckey включено в состав коммита
742

GitLab Bot's avatar
GitLab Bot включено в состав коммита
743
And if you are installing with a non-default folder or user, copy and edit the defaults file:
Rovanion Luckey's avatar
Rovanion Luckey включено в состав коммита
744

GitLab Bot's avatar
GitLab Bot включено в состав коммита
745
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
746
747
sudo cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
```
Rovanion Luckey's avatar
Rovanion Luckey включено в состав коммита
748

GitLab Bot's avatar
GitLab Bot включено в состав коммита
749
If you installed GitLab in another directory or as a user other than the default, you should change these settings in `/etc/default/gitlab`. Do not edit `/etc/init.d/gitlab` as it is changed on upgrade.
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
750
751
752

Make GitLab start on boot:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
753
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
754
755
sudo update-rc.d gitlab defaults 21
```
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
756

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
757
### Set up Logrotate
Jacob Vosmaer's avatar
Jacob Vosmaer включено в состав коммита
758

GitLab Bot's avatar
GitLab Bot включено в состав коммита
759
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
760
761
sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab
```
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
762

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
763
### Check Application Status
Robert Speicher's avatar
Robert Speicher включено в состав коммита
764

Axilleas Pipinellis's avatar
Axilleas Pipinellis включено в состав коммита
765
Check if GitLab and its environment are configured correctly:
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
766

GitLab Bot's avatar
GitLab Bot включено в состав коммита
767
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
768
769
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
```
Rubén Dávila's avatar
Rubén Dávila включено в состав коммита
770
771
772

### Compile GetText PO files

GitLab Bot's avatar
GitLab Bot включено в состав коммита
773
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
774
775
sudo -u git -H bundle exec rake gettext:compile RAILS_ENV=production
```
Rubén Dávila's avatar
Rubén Dávila включено в состав коммита
776

Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
777
### Compile Assets
dosire's avatar
dosire включено в состав коммита
778

GitLab Bot's avatar
GitLab Bot включено в состав коммита
779
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
780
781
782
sudo -u git -H yarn install --production --pure-lockfile
sudo -u git -H bundle exec rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production
```
dosire's avatar
dosire включено в состав коммита
783

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
784
785
If `rake` fails with `JavaScript heap out of memory` error, try to run it with `NODE_OPTIONS` set as follows.

GitLab Bot's avatar
GitLab Bot включено в состав коммита
786
```shell
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
787
788
789
sudo -u git -H bundle exec rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production NODE_OPTIONS="--max_old_space_size=4096"
```

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
790
### Start Your GitLab Instance
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
791

GitLab Bot's avatar
GitLab Bot включено в состав коммита
792
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
793
794
795
796
sudo service gitlab start
# or
sudo /etc/init.d/gitlab restart
```
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
797

GitLab Bot's avatar
GitLab Bot включено в состав коммита
798
## 9. NGINX
Valery Sizov's avatar
Valery Sizov включено в состав коммита
799

GitLab Bot's avatar
GitLab Bot включено в состав коммита
800
NGINX is the officially supported web server for GitLab. If you cannot or do not want to use NGINX as your web server, see [GitLab recipes](https://gitlab.com/gitlab-org/gitlab-recipes/).
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
801

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
802
### Installation
Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
803

GitLab Bot's avatar
GitLab Bot включено в состав коммита
804
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
805
806
sudo apt-get install -y nginx
```
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
807

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
808
### Site Configuration
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
809

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
810
Copy the example site config:
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
811

GitLab Bot's avatar
GitLab Bot включено в состав коммита
812
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
813
814
815
sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
```
Valery Sizov's avatar
Valery Sizov включено в состав коммита
816

Evan Read's avatar
Evan Read включено в состав коммита
817
Make sure to edit the config file to match your setup. Also, ensure that you match your paths to GitLab, especially if installing for a user other than the `git` user:
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
818

GitLab Bot's avatar
GitLab Bot включено в состав коммита
819
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
820
821
822
823
824
825
826
827
828
829
830
# Change YOUR_SERVER_FQDN to the fully-qualified
# domain name of your host serving GitLab.
#
# Remember to match your paths to GitLab, especially
# if installing for a user other than 'git'.
#
# If using Ubuntu default nginx install:
# either remove the default_server from the listen line
# or else sudo rm -f /etc/nginx/sites-enabled/default
sudo editor /etc/nginx/sites-available/gitlab
```
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
831

GitLab Bot's avatar
GitLab Bot включено в состав коммита
832
If you intend to enable GitLab Pages, there is a separate NGINX config you need
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
833
to use. Read all about the needed configuration at the
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
834
[GitLab Pages administration guide](../administration/pages/index.md).
Kamil Trzcinski's avatar
Kamil Trzcinski включено в состав коммита
835

GitLab Bot's avatar
GitLab Bot включено в состав коммита
836
If you want to use HTTPS, replace the `gitlab` NGINX config with `gitlab-ssl`. See [Using HTTPS](#using-https) for HTTPS configuration details.
Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
837
838
839

### Test Configuration

GitLab Bot's avatar
GitLab Bot включено в состав коммита
840
Validate your `gitlab` or `gitlab-ssl` NGINX config file with the following command:
Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
841

GitLab Bot's avatar
GitLab Bot включено в состав коммита
842
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
843
844
sudo nginx -t
```
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
845

GitLab Bot's avatar
GitLab Bot включено в состав коммита
846
You should receive `syntax is okay` and `test is successful` messages. If you receive errors check your `gitlab` or `gitlab-ssl` NGINX config file for typos, etc. as indicated in the error message given.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
847

GitLab Bot's avatar
GitLab Bot включено в состав коммита
848
849
850
851
852
853
854
855
856
857
858
859
Verify that the installed version is greater than 1.12.1:

```shell
nginx -v
```

If it's lower, you may receive the error below:

```plaintext
nginx: [emerg] unknown "start$temp=[filtered]$rest" variable
nginx: configuration file /etc/nginx/nginx.conf test failed
```
sahbabou's avatar
sahbabou включено в состав коммита
860

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
861
### Restart
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
862

GitLab Bot's avatar
GitLab Bot включено в состав коммита
863
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
864
865
sudo service nginx restart
```
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
866

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
867
## Post-install
randx's avatar
randx включено в состав коммита
868

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
869
### Double-check Application Status
Sajan Parikh's avatar
Sajan Parikh включено в состав коммита
870
871
872

To make sure you didn't miss anything run a more thorough check with:

GitLab Bot's avatar
GitLab Bot включено в состав коммита
873
```shell
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
874
875
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
```
Sajan Parikh's avatar
Sajan Parikh включено в состав коммита
876

Evan Read's avatar
Evan Read включено в состав коммита
877
If all items are green, congratulations on successfully installing GitLab!
Sajan Parikh's avatar
Sajan Parikh включено в состав коммита
878

GitLab Bot's avatar
GitLab Bot включено в состав коммита
879
880
TIP:  **Tip:**
Supply the `SANITIZE=true` environment variable to `gitlab:check` to omit project names from the output of the check command.
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
881

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
882
### Initial Login
Sajan Parikh's avatar
Sajan Parikh включено в состав коммита
883

Robert Speicher's avatar
Robert Speicher включено в состав коммита
884
Visit YOUR_SERVER in your web browser for your first GitLab login.
Valery Sizov's avatar
Valery Sizov включено в состав коммита
885

Robert Speicher's avatar
Robert Speicher включено в состав коммита
886
887
888
889
If you didn't [provide a root password during setup](#initialize-database-and-activate-advanced-features),
you'll be redirected to a password reset screen to provide the password for the
initial administrator account. Enter your desired password and you'll be
redirected back to the login screen.
sylis's avatar
sylis включено в состав коммита
890

Robert Speicher's avatar
Robert Speicher включено в состав коммита
891
The default account's username is **root**. Provide the password you created
GitLab Bot's avatar
GitLab Bot включено в состав коммита
892
earlier and login. After login, you can change the username if you wish.
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
893
894
895

**Enjoy!**

Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
896
897
You can use `sudo service gitlab start` and `sudo service gitlab stop` to start and stop GitLab.

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
898
## Advanced Setup Tips
Valery Sizov's avatar
Valery Sizov включено в состав коммита
899

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
900
901
902
### Relative URL support

See the [Relative URL documentation](relative_url.md) for more information on
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
903
how to configure GitLab with a relative URL.
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
904

Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
905
906
### Using HTTPS

Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
907
908
909
To use GitLab with HTTPS:

1. In `gitlab.yml`:
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
910
911
   1. Set the `port` option in section 1 to `443`.
   1. Set the `https` option in section 1 to `true`.
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
912
1. In the `config.yml` of GitLab Shell:
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
913
914
   1. Set `gitlab_url` option to the HTTPS endpoint of GitLab (e.g. `https://git.example.com`).
   1. Set the certificates using either the `ca_file` or `ca_path` option.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
915
1. Use the `gitlab-ssl` NGINX example config instead of the `gitlab` config.
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
916
917
918
   1. Update `YOUR_SERVER_FQDN`.
   1. Update `ssl_certificate` and `ssl_certificate_key`.
   1. Review the configuration file and consider applying other security and performance enhancing features.
Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
919

Evan Read's avatar
Evan Read включено в состав коммита
920
Using a self-signed certificate is discouraged but if you must use it, follow the normal directions. Then:
Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
921

Ben Bodenmiller's avatar
Ben Bodenmiller включено в состав коммита
922
1. Generate a self-signed SSL certificate:
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
923

GitLab Bot's avatar
GitLab Bot включено в состав коммита
924
   ```shell
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
925
926
927
928
929
930
   mkdir -p /etc/nginx/ssl/
   cd /etc/nginx/ssl/
   sudo openssl req -newkey rsa:2048 -x509 -nodes -days 3560 -out gitlab.crt -keyout gitlab.key
   sudo chmod o-r gitlab.key
   ```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
931
1. In the `config.yml` of GitLab Shell set `self_signed_cert` to `true`.
Marin Jankovski's avatar
Marin Jankovski включено в состав коммита
932

Douwe Maan's avatar
Douwe Maan включено в состав коммита
933
### Enable Reply by email
Valery Sizov's avatar
Valery Sizov включено в состав коммита
934

Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
935
See the ["Reply by email" documentation](../administration/reply_by_email.md) for more information on how to set this up.
Douwe Maan's avatar
Douwe Maan включено в состав коммита
936
937
938

### LDAP Authentication

Evan Read's avatar
Evan Read включено в состав коммита
939
You can configure LDAP authentication in `config/gitlab.yml`. Restart GitLab after editing this file.
Douwe Maan's avatar
Douwe Maan включено в состав коммита
940

GitLab Bot's avatar
GitLab Bot включено в состав коммита
941
### Using Custom OmniAuth Providers
Douwe Maan's avatar
Douwe Maan включено в состав коммита
942

GitLab Bot's avatar
GitLab Bot включено в состав коммита
943
See the [OmniAuth integration documentation](../integration/omniauth.md).
Douwe Maan's avatar
Douwe Maan включено в состав коммита
944
945
946

### Build your projects

GitLab Bot's avatar
GitLab Bot включено в состав коммита
947
GitLab can build your projects. To enable that feature, you need runners to do that for you.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
948
See the [GitLab Runner section](https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/#gitlab-runner) to install it.
dosire's avatar
dosire включено в состав коммита
949

950
951
### Adding your Trusted Proxies

Ville Skyttä's avatar
Ville Skyttä включено в состав коммита
952
If you are using a reverse proxy on a separate machine, you may want to add the
GitLab Bot's avatar
GitLab Bot включено в состав коммита
953
proxy to the trusted proxies list. Otherwise users appear signed in from the
954
955
956
proxy's IP address.

You can add trusted proxies in `config/gitlab.yml` by customizing the `trusted_proxies`
DJ Mountney's avatar
DJ Mountney включено в состав коммита
957
958
option in section 1. Save the file and [reconfigure GitLab](../administration/restart_gitlab.md)
for the changes to take effect.
959

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
960
### Custom Redis Connection
Robert Speicher's avatar
Robert Speicher включено в состав коммита
961

GitLab Bot's avatar
GitLab Bot включено в состав коммита
962
If you'd like to connect to a Redis server on a non-standard port or a different host, you can configure its connection string via the `config/resque.yml` file.
sylis's avatar
sylis включено в состав коммита
963

GitLab Bot's avatar
GitLab Bot включено в состав коммита
964
```yaml
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
965
966
967
968
# example
production:
  url: redis://redis.example.tld:6379
```
Riyad Preukschas's avatar
Riyad Preukschas включено в состав коммита
969

Evan Read's avatar
Evan Read включено в состав коммита
970
If you want to connect the Redis server via socket, use the "unix:" URL scheme and the path to the Redis socket file in the `config/resque.yml` file.
Dirk Rüdiger's avatar
Dirk Rüdiger включено в состав коммита
971

GitLab Bot's avatar
GitLab Bot включено в состав коммита
972
```yaml
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
973
974
975
976
# example
production:
  url: unix:/path/to/redis/socket
```
Dirk Rüdiger's avatar
Dirk Rüdiger включено в состав коммита
977

GitLab Bot's avatar
GitLab Bot включено в состав коммита
978
Also, you can use environment variables in the `config/resque.yml` file:
Semyon Pupkov's avatar
Semyon Pupkov включено в состав коммита
979

GitLab Bot's avatar
GitLab Bot включено в состав коммита
980
```yaml
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
981
982
983
984
# example
production:
  url: <%= ENV.fetch('GITLAB_REDIS_URL') %>
```
Semyon Pupkov's avatar
Semyon Pupkov включено в состав коммита
985

Ciro Santilli's avatar
Ciro Santilli включено в состав коммита
986
### Custom SSH Connection
Stardrad Yin's avatar
Stardrad Yin включено в состав коммита
987

Robert Schilling's avatar
Robert Schilling включено в состав коммита
988
If you are running SSH on a non-standard port, you must change the GitLab user's SSH config.
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
989

GitLab Bot's avatar
GitLab Bot включено в состав коммита
990
```plaintext
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
991
992
993
994
995
996
# Add to /home/git/.ssh/config
host localhost          # Give your setup a name (here: override localhost)
    user git            # Your remote git user
    port 2222           # Your port number
    hostname 127.0.0.1; # Your server name or IP
```
Stardrad Yin's avatar
Stardrad Yin включено в состав коммита
997

Robert Schilling's avatar
Robert Schilling включено в состав коммита
998
You also need to change the corresponding options (e.g. `ssh_user`, `ssh_host`, `admin_uri`) in the `config\gitlab.yml` file.
Sytse Sijbrandij's avatar
Sytse Sijbrandij включено в состав коммита
999

Douwe Maan's avatar
Douwe Maan включено в состав коммита
1000
### Additional Markup Styles
Для ускорения просмотра не вся история отображается Просмотреть всю вину