Гид по технологиям

Установка GitLab CE на Ubuntu 20.04

• 6 min read • DevOps • Обновлено 18 Nov 2025
Установка GitLab CE на Ubuntu 20.04
Установка GitLab CE на Ubuntu 20.04

TL;DR

Установите GitLab CE на сервер Ubuntu 20.04 через официальный репозиторий Omnibus, настройте external_url и включите Let’s Encrypt для SSL. После установки проверьте статус служб, отключите публичную регистрацию, создайте проект и выполните простые операции Git для верификации.

Краткое введение

GitLab — это платформа DevOps с открытым исходным кодом для хранения и управления Git-репозиториями, обзора кода, управления задачами, CI/CD и мониторинга. В этой инструкции показан быстрый и надёжный способ установки GitLab Community Edition (CE) на Ubuntu 20.04 с использованием пакетов Omnibus.

Требования

  • Сервер с Ubuntu 20.04 LTS. Рекомендуется выделить минимум 4 ГБ ОЗУ и 2 vCPU для базовой рабочей нагрузки; для производственных установок — больше ресурсов и отдельный диск для данных.
  • Действующий домен, указывающий на IP вашего VPS (A/AAAA запись).
  • Пароль root или учётная запись с правами sudo.
  • Открытые порты: 80 и 443 (HTTP/HTTPS) и 22 при необходимости для SSH.

Important: Настройте DNS заранее, иначе Let’s Encrypt не сможет подтвердить домен.

Шаг 1. Обновление системы и установка зависимостей

Обновите пакеты и установите требуемые утилиты:

apt-get update -y
apt-get upgrade -y

Установите дополнительные пакеты:

apt-get install apt-transport-https gnupg2 curl -y

Notes: apt-transport-https позволяет APT работать через HTTPS; curl используется для загрузки GPG-ключей.

Шаг 2. Добавление официального репозитория GitLab

GitLab не входит в стандартный репозиторий Ubuntu 20.04, поэтому добавим официальный репозиторий Omnibus.

Скачайте и добавьте GPG-ключ:

curl -sL https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | apt-key add -

Создайте файл репозитория:

nano /etc/apt/sources.list.d/gitlab.list

Добавьте в него следующие строки:

deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic main
deb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic main

Сохраните файл и обновите индексы пакетов:

apt-get update -y
apt-get install gitlab-ce -y

После завершения установки вы увидите сообщение об успешной установке и подсказку про параметр external_url в /etc/gitlab/gitlab.rb. Пример вывода инсталлятора содержит ASCII-логаотип и указание запустить gitlab-ctl reconfigure после задания external_url.

Шаг 3. Настройка external_url и первичная конфигурация

Отредактируйте конфигурационный файл и укажите ваш домен:

nano /etc/gitlab/gitlab.rb

Найдите и измените строку на ваш действующий URL (HTTP или HTTPS):

external_url 'http://gitlab.example.com'

Сохраните файл и примените конфигурацию:

gitlab-ctl reconfigure

Ожидаемый вывод покажет выполнение рецептов (puma, sidekiq, nginx и т.д.) и сообщение “gitlab Reconfigured!”.

Проверка статуса служб:

gitlab-ctl status

Вы получите список сервисов и их статусы (puma, sidekiq, postgresql, nginx и пр.).

Шаг 4. Включение HTTPS через Let’s Encrypt

Рекомендуется защитить инстанс HTTPS. Убедитесь, что ваш домен указывает на сервер.

Установите клиент Let’s Encrypt (Certbot):

apt-get install letsencrypt -y

Внесите изменения в /etc/gitlab/gitlab.rb:

nano /etc/gitlab/gitlab.rb

Измените и добавьте строки:

external_url 'https://gitlab.example.com'
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['[email protected]']
letsencrypt['auto_renew'] = true

Сохраните и примените:

gitlab-ctl reconfigure

Notes: Omnibus GitLab автоматически выполнит запрос сертификата при корректно настроенном DNS и открытых портах 80/443. Если сертификат не будет выписан автоматически, проверьте логи и статус nginx.

Шаг 5. Первый вход в веб-интерфейс

Откройте в браузере URL вашего GitLab, например https://gitlab.example.com.

Экран приветствия GitLab с полем смены пароля

Установите новый пароль для пользователя root и затем выполните вход.

Форма смены пароля пользователя root

Форма входа в GitLab

Если вход выполнен успешно — вы попадаете на панель администратора.

Шаг 6. Отключение публичной регистрации

По умолчанию регистрация открыта — это удобно для публичных проектов. Для частного корпоративного инстанса рекомендуется её отключить.

На панели администратора перейдите в раздел администрирования и откройте Настройки:

Панель администратора

Меню администратора

В настройках найдите блок регистрации, разверните и снимите галочку Разрешить регистрацию. Сохраните изменения:

Настройки регистрации пользователей

После выхода вы увидите страницу входа без опции регистрации:

Экран входа без возможности регистрации

Important: Если планируете централизованную аутентификацию, настройте LDAP/SSO до отключения регистрации.

Шаг 7. Создание проекта и проверка функциональности Git

Создайте новый проект в веб-интерфейсе:

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

Форма создания проекта

После создания клонируйте репозиторий на удалённую машину:

git config --global user.name "Ваше Имя"
git config --global user.email "[email protected]"

git clone https://gitlab.example.com/root/project1.git

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

Создайте README, закоммитьте и запушьте изменения:

cd project1
echo "This is my first file" > README.md
git add README.md
git commit -m "add README"
git push -u origin master

После успешного push зайдите в веб-интерфейс и убедитесь, что файл появился в проекте:

Просмотр файлов в проекте

Чеклист ролей перед вводом в эксплуатацию

  • Администратор:
    • Настроить резервное копирование /var/opt/gitlab.
    • Настроить мониторинг и алерты (Prometheus/Grafana по желанию).
    • Проверить автоматическое обновление сертификатов Let’s Encrypt.
  • DevOps:
    • Настроить доступный объём диска и retention для логов и CI артефактов.
    • Ограничить доступ в брандмауэре до необходимых портов.
  • Разработчики:
    • Проверить SSH-ключи и доступ по HTTPS/SSH.
    • Создать шаблон проекта и CI/CD pipeline.

Мини‑методология установки (короткий план):

  1. Подготовка: резервное копирование, DNS и порты.
  2. Установка зависимостей и репозитория.
  3. Установка пакета gitlab-ce и базовая конфигурация external_url.
  4. Включение HTTPS и проверка статуса служб.
  5. Настройка политики доступа и тестирование рабочих сценариев.

Тесты приёмки и проверка после установки

Критерии приёмки:

  • Веб-интерфейс доступен по HTTPS без ошибок сертификата.
  • Службы gitlab-ctl status показывают все ключевые сервисы в состоянии run.
  • В проект можно успешно запушить изменения по HTTPS или SSH.
  • Let’s Encrypt сертификат автоматически обновляется (проверка cron/renew).

Примеры тестов:

  • Выполнить git clone/push/pull из внешней машины.
  • Провести вход под root и обычным пользователем.
  • Отключить регистрацию и попытаться зарегистрировать нового пользователя (ожидается отказ).

Альтернативные подходы к развёртыванию

  • Docker / Docker Compose: подойдёт для тестовых инстансов и простоты развёртывания, но требует настройки персистентных томов и сети.
  • Kubernetes с Helm chart: подходит для масштабируемых production-окружений и для мульти‑node установок.
  • Установка из исходников: используется редко, требует глубокой экспертизы и поддержки зависимостей.

Counterexample: Если нужен только лёгкий Git-сервер без CI/CD и мониторинга, можно использовать bare Git + Gitea для экономии ресурсов.

Разбор типичных проблем и рекомендации по устранению неполадок

  • Проблема: Не удаётся получить Let’s Encrypt сертификат.
    Причины: DNS не указывает на сервер, порты 80/443 заблокированы, rate limit Let’s Encrypt.
    Решение: проверить DNS, открыть порты, временно отключить брандмауэр, запросить сертификат вручную и проверить логи /var/log/letsencrypt.

  • Проблема: gitlab-ctl status показывает down для alertmanager или gitaly.
    Решение: посмотреть логи через gitlab-ctl tail , проверить доступность портов, целостность базы данных.

  • Проблема: при push запросит имя/пароль и не принимает токен.
    Решение: использовать Personal Access Token вместо пароля для доступа по HTTPS, либо настроить SSH-ключи.

Секьюрити и конфиденциальность

  • Включите HTTPS и тестируйте автоматическое обновление сертификатов.
  • Ограничьте доступ к административной панели по IP, если возможно.
  • Настройте резервное копирование с шифрованием и offsite‑реплику.
  • Если храните персональные данные пользователей, проверьте требования локального законодательства о защите данных и настройте retention и логи в соответствии с политиками компании.

Шпаргалка команд (cheat sheet)

  • Обновить конфигурацию GitLab: gitlab-ctl reconfigure
  • Проверить статус сервисов: gitlab-ctl status
  • Посмотреть логи сервиса: gitlab-ctl tail
  • Перезапустить сервис: gitlab-ctl restart
  • Полный список служб: gitlab-ctl list

Однострочная глоссарий

  • Omnibus GitLab — пакет, который включает все компоненты GitLab (Nginx, PostgreSQL, Redis и т.д.) в одном установочном пакете.

Заключение

В этой инструкции вы установили GitLab CE на Ubuntu 20.04, настроили external_url, включили Let’s Encrypt SSL, отключили публичную регистрацию и проверили базовую функциональность с помощью создания проекта и операций Git. Для production-инфраструктуры доработайте резервное копирование, мониторинг и политики безопасности.

Summary:

  • Установка через Omnibus — быстрый и надёжный способ развёртывания GitLab.
  • Обязательно укажите external_url перед первичной конфигурацией.
  • Настройка HTTPS через Let’s Encrypt повышает безопасность и доверие к инстансу.

Если вам нужна помощь с настройкой бэкапов, CI/CD pipelines или миграцией данных — задайте конкретный вопрос, и я подготовлю пошаговую инструкцию.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро