Установка GitLab в Ubuntu 18.04

Один из самых популярных репозиториев для хранения и общего доступа к коду - это GitHub, однако после покупки проекта компанией Microsoft популярность стали набирать и другие проекты, один из них - GitLab. Это аналогичный свободный менеджер репозиториев, с помощью которого можно работать с кодом, принимать Pull Request'ы, отслеживать сообщения об ошибках и тестировать свои приложения.

У GitLab есть такие же инструменты, как и у GitHub, есть страница Issue для сообщений об ошибках, есть поддержка код-ревью, wiki, а также вы можете работать с несколькими приватными проектами.

Установка GitLab в Ubuntu 18.04

У GitLab есть несколько версий. Кроме онлайн версии, в которую вы можете выгружать свои проекты, доступной на веб-сайте GitLab.com, есть версия Community Edition и платная версия Enterprice Edition, которые можно установить на свой компьютер и создать собственный Git-сервер. В этой инструкции мы рассмотрим, как установить GitLab Ubuntu 18.04 версии Community Edition. Для этого будем использовать официальный репозиторий.

Сначала обновите репозитории до самой последний версии:

sudo apt upgrade

1. Установка репозитория

Затем нужно загрузить установщик репозитори из официального сайта. Этот скрипт загрузит и установит все ключи и инструменты необходимые, чтобы подключить репозиторий Gitlab в систему. Для его загрузки и запуска выполните команду:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

2. Установка пакета программы

После завершения вы можете установить gitlab-ce командой:

sudo apt install gitlab-ce

Когда установка GitLab Ubuntu 18.04 будет завершена, вы увидите такое сообщение:

3. Развёртывание GitLab

Теперь нам необходимо подготовить программу к работе. Сначала нужно настроить URL, по которой будет открываться интерфейс GitLab. Для этого откройте файл /etc/gitlab/gitlab.rb и найдите там строчку external_url. Здесь нужно указать ваш домен. На своём локальном компьютере я буду использовать домен gitlab.local:

sudo vi /etc/gitlab/gitlab.rb

external_url 'http://gitlab.local'

Сохраните и закройте файл. После этого надо пересобрать программу, учитывая изменённую конфигурацию:

sudo gitlab-ctl reconfigure

Если на вашем сервере включён брандмауэр, необходимо добавить в исключения порты для протоколов http и ssh:

sudo ufw allow ssh
sudo ufw allow http

Чтобы наш локальный домен работал, необходимо добавить запись о нём в файл /etc/hosts:

sudo vi /etc/hosts

127.0.0.1 gitlab.local

4. Развёртывание программы с установленным Apache

Если на вашем компьютере уже установлен веб-сервер Apache, вы можете настроить программу таким образом, чтобы она работала через существующий веб-сервер. Для этого измените такие строки в /etc/gitlab/gitlab.rb:

sudo vi /etc/gitlab/gitlab.rb

external_url 'http://gitlab.local'
nginx['enable'] = false
web_server['external_users'] = ['www-data']

Затем пересоберите программу:

sudo gitlab-ctl reconfigure

В Apache надо добавить новый виртуальный хост с такой конфигурацией:

sudo vi /etc/apache2/sites-available/gitlab.conf

<VirtualHost *:80>
ServerName gitlab.local
ServerSignature Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Location />
  Require all granted
  ProxyPassReverse http://127.0.0.1:8080
  ProxyPassReverse http://gitlab.local
</Location>
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public
ErrorDocument 404 /404.html
ErrorDocument 422 /422.html
ErrorDocument 500 /500.html
ErrorDocument 503 /deploy.html
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
ErrorLog /var/log/apache2/gitlab_error.log
CustomLog /var/log/apache2/gitlab_forwarded.log common_forwarded
CustomLog /var/log/apache2/gitlab_access.log combined env=!dontlog
CustomLog /var/log/apache2/gitlab.log combined
</VirtualHost>

Здесь gitlab.local - это домен, который будет использоваться для доступа к gitlab, а порт 8080 - тот порт, на котором сервис gitlab ожидает соединений. Его можно посмотреть командой:

sudo netstat -pant | grep unicorn

После этого активируйте модули Apache - rewrite, proxy и proxy_http:

sudo a2enmod rewrite
sudo a2enmod proxy
sudo a2enmod proxy_http

А потом активируйте наш виртуальный хост и перезапустите Apache:

sudo a2ensite gitlab
sudo systemctl restart apache2

Настройка GitLab в Ubuntu

1. Авторизация

Дальше вы можете войти в веб-интерфейс. Для этого откройте в браузере выбранный домен: http://gitlab.local

На первом шаге вам нужно ввести пароль для суперпользователя.

Далее надо авторизоваться в системе. Для этого введите логин root и ранее выбранный пароль, затем нажмите Sign in.

2. Настройка аккаунта

Затем настроим имя вашего пользователя. По умолчанию используется Administrator. Откройте меню Settings и найдите там пункт Full Name и укажите там желаемое имя:

Затем нажмите кнопку Update profile settings.

3. Настройка SSH-ключа

Для того чтобы вы могли без ввода логина и пароля отправлять данные в этот репозиторий, нужно прописать сюда ваш публичный ключ. Для этого сначала создайте соответствующий ключ для GitLab командой:

ssh-keygen

Если в вашей системе уже есть другие ssh-ключи, то вы можете изменить имя создаваемого ключа. Для этого, когда программа спросит путь, куда нужно сохранить ключ, введите старый путь и новое имя:

Ключ будет находится в файле с расширением *.pub. Если вы выбрали имя файла gitlab_rsa, то публичный ключ будет находится в файле gitlab_rsa.pub. Скопируйте этот ключ. Затем откройте в левом меню веб-интерфейса GitLab пункт SSH Keys, вставьте ключ в поле Key и нажмите Add key:

 

После этого ключ будет добавлен и вы сможете пользоваться репозиторием. Однако надо заметить, что с пользователем root на локальной машине такая операция не пройдёт, также ничего не будет работать, если вы попытаетесь использовать того же пользователя, от имени которого вы авторизованы в системе.

4. Отключение регистрации

Кликните по значку ключа на верхней панели, а затем в левом меню выберите Settings. Здесь найдите пункт Sign-up restrictions и снимите галочку с пункта sign-up enabled:

 

Затем сохраните настройки.

5. Создание проекта

Кликните по кнопке со значком Плюс, затем выберите New Project:

В открывшемся окне введите имя проекта, например testproject, и нажмите кнопку Create Project:

Затем откройте терминал и клонируйте полученный репозиторий:

git clone http://gitlab.local/root/testproject.git

Далее добавьте файл README.md:

cd testproject

vi README.md

И отправьте изменения на сервер:

git add --all

git commit -m 'Add README.md'

git push origin master

Теперь в интерфейсе программы вы увидите только что созданный коммит и новый файл:

Выводы

В этой статье мы разобрали, как выполняется установка GitLab Server Ubuntu 18.04. Как видите, это не так сложно, как может показаться на первый взгляд. Здесь очень удобно отслеживать изменения в своих проектах и работать в команде, не рассчитывая на доступность сторонних сервисов.

4 комментария

  1. Artem Май 27, 2019 Ответить
  2. Сергей Май 27, 2019 Ответить
  3. Денис Июль 23, 2019 Ответить
  4. Виталий Сентябрь 30, 2019 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: