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

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

• 5 min read • DevOps • Обновлено 26 Nov 2025
GitLab CE на Ubuntu: установка и безопасность
GitLab CE на Ubuntu: установка и безопасность

TL;DR

Установите GitLab CE на Ubuntu, установив зависимости, добавив официальный репозиторий и установив пакет omnibus. Затем настройте external_url и включите HTTPS через Let’s Encrypt. Обязательно настройте брандмауэр, резервное копирование и базовую безопасность перед эксплуатацией в продакшне.

Введение

GitLab — это самохостируемое решение для управления Git-репозиториями, похожее на GitHub и Bitbucket. Вы управляете сервером, проектами и политиками обновлений. Коротко: вы контролируете данные и обновления.

Ключевые варианты использования: размещение проектов под собственным доменом, приватные инстансы для команды, полная административная свобода.

Быстрое определение

GitLab (CE) — версия с открытым исходным кодом, поставляемая как Omnibus-пакет, включающий веб-приложение, базу данных и необходимые сервисы.

Преимущества собственного инстанса

  • Полный контроль над доступом и обновлениями.
  • Возможность использовать собственный домен и интегрировать SSO/LDAP.
  • Изоляция данных от внешних провайдеров.

Требования и рекомендации

  • ОС: Ubuntu LTS (рекомендуется текущая LTS-версия).
  • Память: для небольших инстансов рекомендуется минимум 4 ГБ ОЗУ и 2 CPU; для команд и CI/CD — больше.
  • Дисковое пространство: зависит от хранения артефактов и репозиториев. Планируйте резервный объём для backup’ов.
  • Порты: SSH (22), HTTP (80), HTTPS (443).

Важно: запуск GitLab на публичном сервере требует HTTPS и бэкапов.

1. Установка зависимостей

На сервере выполните установку необходимых пакетов. Postfix будет запрашивать тип установки — выберите вариант “Интернет-сайт” или аналогичный, так как GitLab отправляет уведомления по почте.

sudo apt update
sudo apt install -y curl openssh-server ca-certificates postfix

Примечание: если у вас уже настроен MTA (postfix/exim), можно пропустить переустановку.

2. Добавление репозитория GitLab

Добавление репозитория GitLab на сервере

Официальная команда добавляет репозиторий и ключи. Скачайте и выполните инсталляционный скрипт:

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

Скрипт настроит Apt-репозиторий GitLab. Это займёт несколько секунд.

3. Установка GitLab CE

После добавления репозитория установите пакет GitLab CE:

sudo apt install -y gitlab-ce

Установка GitLab завершена

Установка пакета займёт время. GitLab — сложное веб-приложение на Ruby on Rails; Omnibus-пакет поднимет все сервисы и зависимости.

4. Первичная конфигурация и reconfigure

После установки выполните команду для применения конфигурации Omnibus:

sudo gitlab-ctl reconfigure

Повторная конфигурация GitLab

Эта операция может занять несколько минут.

Откройте файл /etc/gitlab/gitlab.rb и задайте адрес, по которому будет доступен GitLab:

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

Если сервер будет доступен извне, укажите домен и настройте HTTPS (см. раздел про SSL). После изменения конфигурации снова выполните:

sudo gitlab-ctl reconfigure

5. Настройка HTTPS через Let’s Encrypt (рекомендовано)

Чтобы защитить доступ к веб-интерфейсу, включите HTTPS. В /etc/gitlab/gitlab.rb укажите https в external_url и включите встроенную поддержку Let’s Encrypt:

external_url "https://gitlab.example.com"
letsencrypt["enable"] = true
letsencrypt["contact_emails"] = ["admin@example.com"]

Затем выполните reconfigure. Убедитесь, что DNS для домена указывает на ваш сервер и порты 80/443 открыты.

6. Первичный вход и создание администратора

Откройте браузер и перейдите по external_url. При первом запуске будет страница со сбросом пароля для рутового аккаунта. По умолчанию логин — root.

Создание учётной записи администратора

Создайте обычную пользовательскую учётную запись для повседневной работы и оставьте root для администрирования.

7. Базовые команды для администрирования и отладки

  • Просмотреть статус сервисов:
sudo gitlab-ctl status
  • Перезапустить всё:
sudo gitlab-ctl restart
  • Просмотреть логи в реальном времени:
sudo gitlab-ctl tail
  • Принудительно пересобрать конфигурацию:
sudo gitlab-ctl reconfigure

8. Резервное копирование и восстановление

GitLab предоставляет встроенные инструменты для бэкапа репозиториев и БД.

Создание резервной копии вручную:

sudo gitlab-rake gitlab:backup:create

Файлы бэкапа по умолчанию хранятся в /var/opt/gitlab/backups. Настройте расписание (cron) и внешний бэкап (например, копирование на удалённый объектный хранилище или NAS).

Восстановление выполняется через gitlab-rake с указанием имени файла бэкапа.

Важно: также храните копию /etc/gitlab/gitlab.rb и /etc/gitlab/trusted-certs для полной возможности восстановления.

9. Базовая безопасность и hardening

  • Включите HTTPS и перенаправление HTTP→HTTPS.
  • Настройте брандмауэр (ufw/iptables) — откройте порты 22, 80, 443 только при необходимости.

Пример для ufw:

sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
  • Отключите регистрацию, если инстанс приватный: в настройках админа выключите “Регистрация”.
  • Ограничьте доступ к панели администратора по IP, если возможно.
  • Настройте двухфакторную аутентификацию (2FA) для пользователей.
  • Обновляйте систему и пакет GitLab регулярно.

10. Поддержка CI/CD и раннеров

Если вы планируете CI/CD, установите GitLab Runner на отдельной машине или контейнере и зарегистрируйте его у вашего инстанса. Runner можно запускать в Docker, shell и других исполнителях.

11. Миграция и импорт проектов

  • Для миграции из GitHub используйте встроенные инструменты импорта через веб-интерфейс (импорт проектов по URL/файлу) или зеркалирование репозиториев.
  • Экспорт/импорт проектов в формате GitLab можно использовать для переносов с сохранением настроек.
  • Не забудьте перенести SSH-ключи пользователей и CI/CD переменные.

12. Рекомендации по мониторингу и обновлениям

  • Настройте мониторинг использования диска и метрик GitLab (Prometheus, интеграции).
  • Проверяйте уведомления об обновлениях GitLab и тестируйте обновления на staging перед продакшеном.

Роли и чеклисты (кто что делает)

  • Администратор:
    • Настроить домен и external_url.
    • Включить HTTPS и настроить сертификаты.
    • Настроить бэкапы и их проверку.
    • Отключить ненужные публичные опции (регистрацию).
  • Разработчик:
    • Создать персональный аккаунт, добавить SSH-ключ.
    • Импортировать/клонировать проекты.
    • Настроить CI/CD pipeline.
  • DevOps-инженер:
    • Установить и регистрировать GitLab Runner.
    • Настроить мониторинг и алерты.
    • Планировать обновления и миграции.

Мини‑методология запуска (шаги)

  1. Подготовить сервер и DNS.
  2. Установить зависимости и репозиторий.
  3. Установить gitlab-ce.
  4. Настроить external_url и HTTPS.
  5. Создать учётные записи и протестировать вход.
  6. Настроить бэкап и мониторинг.
  7. Перенести проекты и запустить CI/CD.

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

  • Веб-интерфейс доступен по HTTPS по заданному домену.
  • Возможность входа под root и под обычным пользователем.
  • Создана и успешно протестирована резервная копия.
  • Брандмауэр разграничивает доступ по портам.

Частые проблемы и базовые шаги отладки

  • Проблема: “Порт 80/443 уже занят” — проверьте, не запущен ли другой веб-сервер (nginx/apache). Остановите или перенастройте.
  • Проблема: reconfigure завершается с ошибкой — изучите логи через sudo gitlab-ctl tail.
  • Проблема: сертификат Let’s Encrypt не получается выдать — проверьте DNS и доступность портов 80/443.

Полезные команды быстрого доступа

  • Проверка статуса: sudo gitlab-ctl status
  • Просмотр логов: sudo gitlab-ctl tail
  • Бэкап: sudo gitlab-rake gitlab:backup:create
  • Восстановление: sudo gitlab-rake gitlab:backup:restore

Краткий глоссарий (одно предложение)

  • Omnibus-пакет — комплектный дистрибутив GitLab, который включает все необходимые сервисы и конфигурацию.
  • external_url — параметр в gitlab.rb, указывающий базовый URL для доступа к инстансу.
  • Runner — исполнитель для CI/CD задач, регистрируется в GitLab.

Итог и дальнейшие шаги

После базовой установки проверьте: доступ по HTTPS, создание проектов, импорт репозиториев и корректность бэкапов. Планируйте процесс обновлений и тестирование на staging. Для больших команд рассмотрите отказоустойчивую архитектуру и интеграцию с внешним хранилищем для артефактов.

Панель управления GitLab

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

Поделиться: 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 быстро