Эти настройки выполняются до передачи инстанса пользователям. Изменения в файле /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 --reloadsudo 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Затем переиндексируйте инстанс и включите расширенный поиск в настройках, как описано на странице «Расширенный поиск».