Настройка GitLab-CE после установки


Итак, вы установили GitLab в редакции Community Edition и хотите провести подготовку системы к работе. Первое, что необходимо сделать это настроить отправку электронной почты через почтовый шлюз вашей компании.

Настройка GITLAB для отправки почты через внутренний MTA компании

Параметры вашего MTA, такие как адрес сервера через который мы будем отправлять электронную почту, пользователь и пароль которые будут авторизовываться на сервере для отправки почты необходимо внести в файл /etc/gitlab/gitlab.rb.

Я в свою очередь, приведу пример конфигурации которую использую для собственного почтового сервера:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.gita-dev.ru"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "reports@gita-dev.ru"
gitlab_rails['smtp_password'] = "xxxPasswordxxx"
gitlab_rails['smtp_authentication'] = "plain"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "reports@gita-dev.ru"

Выполняем реконфигурирование сервера GITLAB:

# gitlab-ctl reconfigure

Возможно потребуется полный перезапуск сервера GITLAB:

# systemctl restart gitlab-runsvdir.service

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

# gitlab-rails console
> Notify.test_email('anton@gita-dev.ru', 'Test Subject', 'Hello Friend').deliver

Примеры настройки для популярных почтовых серверов можно найти на официальной странице руководства https://docs.gitlab.com/omnibus/settings/smtp.html.

Интеграция GITLAB с доменом Active Directory вашей компании

Если у вас не рабочая группа на три человека, то поддерживать локальную базу пользователей становится довольно сложно, поэтому разумнее интегрировать механизмы авторизации GITLAB с Active Directory вашей компании.

Аналогично настройке электронной почты, мы вносим изменения в основной конфигурационный файл gitlab (/etc/gitlab/gitlab.rb):

gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = {
  'main' => {
    'label' => 'GitLab Users',
    'host' =>  'ad-1.internal.gita-dev.ru',
    'port' => 636,
    'uid' => 'sAMAccountName',
    'encryption' => 'simple_tls',
    'verify_certificates' => false,
    'bind_dn' => 'CN=ldap-manager,CN=Users,DC=internal,DC=gita-dev,DC=ru',
    'password' => 'xxxPasswordxxx',
    'active_directory' => true,
    'base' => 'OU=web-portal,DC=internal,DC=gita-dev,DC=ru',
    'group_base' => 'OU=gitlab-groups,OU=GITA-DEV,DC=internal,DC=gita-dev,DC=ru',
    'admin_group' => '_gitlab-admins'
    }
}

Выполняем реконфигурирование сервера GITLAB:

# gitlab-ctl reconfigure

Возможно потребуется полный перезапуск сервера GITLAB:

# systemctl restart gitlab-runsvdir.service

Запрещаем самостоятельную регистрацию пользователей

Если ваш сервер доступен из сети интернет, то я думаю, что вам не сильно захочеся, чтобы там могли регистрироваться всякие левые Васи. Это настраивается в web-интерфейсе "Settings -> General -> Sign-Up Enabled"

Настраиваем SSL защиту HTTP-соединения в GITLAB

Сейчас получить сертификат Let's Encrypt уже не составляет никакой проблемы и не использовать HTTPS защиту соединений по крайней мере глупо, поэтому настроим и ее:

external_url 'https://git.gita-dev.ru'
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['chernousov@gita-dev.ru']
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

Как вы видите поддержка Let's encrypt в современных версиях Git Lab присутствует, что называется "из коробки". Более подробно можно посмотреть в официальной документации: https://docs.gitlab.com/omnibus/settings/ssl.html