Эти настройки выполняются до передачи инстанса пользователям. Изменения в файле /etc/gitlab/gitlab.rb применяются командой sudo gitlab-ctl reconfigure.

Язык интерфейса

Язык задаётся для всего инстанса администратором и отдельно каждым пользователем для себя.

Русский язык для всего инстанса действует на страницу входа и на всех пользователей, которые не выбирали язык вручную. Войдите администратором, в правом верхнем углу выберите «Admin», в левой панели перейдите в «Settings» → «Preferences», прокрутите страницу до раздела «Localization», в поле «Default language» выберите «Russian - русский» и нажмите «Save changes».

Пользователь меняет язык для себя: аватар в правом верхнем углу → «Preferences» → «Localization» → «Language» → «Russian - русский» → «Save changes». Интерфейс переключится после обновления страницы. Личный выбор имеет приоритет над языком инстанса.

Почта (SMTP)

Без почты не работают сброс пароля, приглашения и уведомления. Задайте параметры подключения к серверу почты в файле /etc/gitlab/gitlab.rb:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "<SMTP_HOST>"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "<SMTP_USER>"
gitlab_rails['smtp_password'] = "<SMTP_PASSWORD>"
gitlab_rails['smtp_domain'] = "<DOMAIN>"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "deckhouse-code@<DOMAIN>"

Примените конфигурацию и отправьте тестовое письмо на свой адрес:

sudo gitlab-ctl reconfigure
sudo gitlab-rails runner \
  "Notify.test_email('<ADMIN_EMAIL>', 'Тест', 'Работает').deliver_now"

Сетевой доступ (файрвол)

Инстансу нужны порты 22 (Git по SSH через системный sshd), 80 (перенаправление на HTTPS) и 443 (веб-интерфейс и Git по HTTPS). Откройте их средствами вашей ОС.

  • firewalld (РЕД ОС)
  • ufw (Ubuntu)
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service={ssh,http,https}
sudo firewall-cmd --reload
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable

Ресурсы

При памяти 6–8 ГБ закрепите число рабочих процессов, чтобы автоматическая настройка не заняла всю память. Задайте значения в файле /etc/gitlab/gitlab.rb:

puma['worker_processes'] = 2
sidekiq['concurrency'] = 10

Примените конфигурацию:

sudo gitlab-ctl reconfigure

Проверьте, что на сервере настроен раздел подкачки (swap): он покрывает пики потребления памяти при миграциях во время обновления и при тяжёлых операциях с репозиториями.

Порт SSH

Если служба SSH инстанса слушает порт, отличный от 22, укажите его в /etc/gitlab/gitlab.rb, чтобы URL для клонирования в веб-интерфейсе содержали этот порт:

gitlab_rails['gitlab_shell_ssh_port'] = 2222

Примените конфигурацию:

sudo gitlab-ctl reconfigure

Расширенный поиск (OpenSearch)

Расширенный поиск работает на внешнем кластере OpenSearch. Задайте подключение в /etc/gitlab/gitlab.rb и направьте задачи индексации в отдельную очередь Sidekiq:

gitlab_rails['fe_search'] = {
  'advanced_search_enabled' => true,
  'opensearch' => {
    'url' => 'https://<OPENSEARCH_HOST>:9200',
    'username' => '<OPENSEARCH_USER>',
    'password' => '<OPENSEARCH_PASSWORD>'
  }
}
sidekiq['routing_rules'] = [
  ['feature_category=fe_global_search', 'global-search-indexing'],
  ['*', 'default']
]

<OPENSEARCH_HOST> — адрес кластера OpenSearch, <OPENSEARCH_USER> и <OPENSEARCH_PASSWORD> — учётные данные аккаунта, которому принадлежат индексы. Примените конфигурацию:

sudo gitlab-ctl reconfigure

Затем переиндексируйте инстанс и включите расширенный поиск в настройках, как описано на странице «Расширенный поиск».