<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация

Что такое GitLab и кому он необходим

Роман Панков
Роман Панков
Технический писатель
03 апреля 2025 г.
135
14 минут чтения
Средний рейтинг статьи: 3

GitLab — это платформа для контроля версий, совместной работы над кодом и организации DevOps-процессов. 

GitLab часто сравнивают с GitHub, но у неё есть своя специфика. Если вы ищете удобное решение для командной разработки, планирования задач и автоматизации сборки, то GitLab стоит рассмотреть в первую очередь.

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

Основные функции GitLab

Рассмотрим ключевые функции GitLab:

  1. Хранение кода (репозиторий). Как и в GitHub, можно хранить исходники проектов, вести ветвление, откатываться к нужным версиям, проводить сравнения и код-ревью.

  2. Планирование и трекинг задач. GitLab Issues позволяют быстро фиксировать баги, назначать ответственных, ставить сроки и следить за прогрессом. Есть доски (Kanban) для визуального управления задачами.

  3. CI/CD-пайплайны. GitLab CI/CD автоматизирует сборку, тесты и деплой. Каждый пуш в репозиторий может запустить проверку и сборку кода. Настроить это можно через специальный файл .gitlab-ci.yml.

  4. Контроль доступа. Гибкая система ролей помогает разграничить права участников. Это защищает от случайных удалений веток или нежелательных слияний кода.

  5. Вики и документация. У каждого проекта есть встроенная Wiki. Можно вести инструкции для разработчиков, тестировщиков и пользователей.

  6. Управление релизами. GitLab помогает отмечать конкретные версии кода тегами, создавать релизы и хранить всю историю изменений.

  7. Мониторинг и безопасность. В GitLab есть функции статического анализа кода (SAST), сканирования зависимостей и другие инструменты для обеспечения безопасности проекта.

Все эти возможности интегрируются в единый интерфейс. Разработчики, менеджеры, аналитики и тестировщики работают в рамках одной платформы, видят актуальное состояние проекта и могут взаимодействовать в режиме реального времени.

Для кого предназначен GitLab

Выделим несколько категорий, которым платформа особенно полезна:

  1. Небольшие команды стартапов. Стартапы хотят выпускать продукт быстрее, но без потери качества. GitLab даёт всё для прозрачной работы с кодом: хранение в Git, доски задач, CI/CD и код-ревью.

  2. Крупные предприятия. Когда в компании десятки или сотни разработчиков, важно единое пространство для кода и документации. GitLab поддерживает масштабирование и позволяет контролировать доступ на уровне отдельных групп и проектов. Есть функции аудита, которые отслеживают все действия, что важно для безопасности.

  3. Команды DevOps. DevOps-инженерам нужны инструменты для автоматизации жизненного цикла приложения. GitLab CI/CD запускает пайплайны при каждом изменении кода. Легко интегрировать тесты, линтеры, анализаторы безопасности и другие проверки. Это сокращает время выхода продукта на рынок.

  4. Фрилансеры и отдельные разработчики. Частные специалисты, ведущие проекты в одиночку, тоже получают пользу от GitLab. Удобно хранить портфолио, собирать проекты на бесплатной версии и приглашать клиентов смотреть прогресс. А функции трекинга задач делают взаимодействие с заказчиками более прозрачным.

  5. Команды с особыми требованиями к безопасности. Некоторые организации, особенно в финансовой или медицинской сфере, не могут хранить код в публичном облаке. GitLab можно установить на собственный сервер. Тогда доступ к исходникам и настройкам ограничен корпоративной сетью, и это соответствует требованиям по безопасности и приватности.

Чем GitLab отличается от аналогичных решений

На рынке есть другие платформы: GitHub, Bitbucket, Azure DevOps и другие сервисы с поддержкой Git. Однако GitLab привлекает к себе внимание благодаря нескольким аспектам.

  1. Подход «всё в одном». GitLab создавался как полнофункциональная DevOps-платформа. Не нужно отдельно внедрять системы для CI/CD, трекинга задач, документирования. Всё работает из одной коробки, часто без дополнительных затрат на интеграцию.

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

  3. Гибкость развертывания. GitLab доступен как облачный сервис и как приложение для установки на собственные сервера. Многие компании выбирают второй вариант из-за требований к безопасности и ограничений локального законодательства о данных.

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

Как начать работать с GitLab

GitLab прост в освоении. Рассмотрим, как развернуть GitLab на облачном сервере Timeweb Cloud под управлением ОС Ubuntu 24.04. 

cloud

Выбор конфигурации

В таблице рассмотрены фиксированные конфигурации с рекомендациями по использованию. На более слабых серверах GitLab не сможет корректно работать. 

Конфигурация

Цена в мес. (с учетом IPv4)

Цена в час

Рекомендация

CPU 2 × 3.3ГГц

RAM 4 ГБ

NVMe 50 ГБ

1 000 ₽

1,16 ₽

Достаточно для небольших команд (до ~5 активных пользователей), которые ведут один или несколько проектов с минимальной нагрузкой на CI/CD (например, простые тесты без тяжёлых сборок). 

CPU 4 × 3.3ГГц

RAM 8 ГБ

NVMe 80 ГБ

1 650 ₽

2,05 ₽

Конфигурации хватает для одновременной работы с несколькими проектами, регулярных сборок, интеграционного тестирования и частых merge request'ов.

CPU 8 × 3.3ГГц

RAM 12 ГБ

NVMe 100 ГБ

2 800 ₽

3,62 ₽

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

CPU 8 × 3.3ГГц

RAM 16 ГБ

NVMe 160 ГБ

4 200 ₽

5,53 ₽

Выдержит высоконагруженные проекты с постоянными сборками, развёртыванием Docker-контейнеров и множеством параллельных конвейеров.

Позволит запускать дополнительные сервисы помимо GitLab — например, собственный регистри контейнеров (GitLab Container Registry), сервис мониторинга (Prometheus), корпоративный VPN и даже несколько мелких веб-приложений.

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

Скачивание и установка GitLab

  1. Подготовьте сервер к установке. Обновите пакеты:

sudo apt update && sudo apt upgrade
  1. Установите GitLab CE (Community Edition). Добавьте официальный репозиторий:

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

При успешном завершении в терминале отобразится строка: «The repository is setup! You can now install packages».

Image1

Выполните установку GitLab CE:

sudo apt install gitlab-ce

Image10

  1. По окончании установки укажите в конфигурации GitLab актуальный адрес до сервера. Это может быть IP-адрес или домен. Для удобства использования можно создать бесплатный технический домен.

Откройте файл /etc/gitlab/gitlab.rb:

sudo nano /etc/gitlab/gitlab.rb

Найдите строку external_url и пропишите адрес вашего сервера (домен или IP). Например:

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

Сохраните изменения. В редакторе nano используется комбинация клавиш Ctrl + X, далее Y — согласие на изменение файла и Enter — подтверждение указанного имени файла.

Image16

  1. Примените настройки командой:

sudo gitlab-ctl reconfigure

Дождитесь окончания процесса.

Image15

GitLab установлен.

Вход в GitLab

Перейдите в браузере по адресу, указанному ранее в переменной external_url.

Image17

Если отображается страница входа, значит GitLab установлен и проинициализирован верно. 

Стандартно главным пользователем в GitLab является root. Чтобы получить его пароль, вернитесь в терминал и выполните команду:

cat /etc/gitlab/initial_root_password

В содержимом ответа будет находиться пароль. Сохраните его, так как файл с паролем удалится с сервера спустя 24 часа в целях безопасности.

Image3

Авторизуйтесь на веб-сайте с полученным паролем:

Image7

Привязка SMTP к GitLab (необязательный этап)

SMTP (Simple Mail Transfer Protocol — простой протокол передачи почты) — это протокол, с помощью которого электронные письма отправляются с одного почтового сервера на другой. 

В GitLab он используется для подтверждения e-mail, восстановления пароля, приглашения пользователей, уведомления о новых merge requests, issues, сбоях в CI/CD. 

Без SMTP GitLab всё равно будет работать. Но для улучшения пользовательского опыта, лучше настроить его сразу.

Создание почтового адреса в Timeweb Cloud

Почтовый сервис нельзя подключить на бесплатный технический домен. Если домен находится на NS-серверах Timeweb Cloud, то дополнительная настройка не потребуется. В ином случае в интерфейсе DNS-хостинга создайте две MX-записи: mx1.timeweb.ru, mx2.timeweb.ru. Установите TTL на 600, приоритет — 10. 

  1. Перейдите на вкладку «Корпоративная почта» в панели управления Timeweb Cloud. Нажмите на кнопку «Подключить».

  2. Выберите нужный домен (1), введите почтовый адрес (2). В поле «Пароль» появится автоматически сгенерированная комбинация символов. Проверьте, что там нет специальных символов: GitLab не поддерживает их в качестве строки в конфигурации. Нажмите кнопку «Создать ящик» (3). 

Image13

Привязка почтового адреса к GitLab

Обратите внимание, что Timeweb Cloud ограничивает использование почтовых портов (25, 2525, 465, 587) для аккаунтов без привязки номера мобильного телефона. 

Порты разблокируются автоматически, если выполняются все условия:

  • к аккаунту привязан номер телефона,
  • объем оперативной памяти (RAM) на сервере больше или равен 4 ГБ,
  • операционная система любая, кроме CentOS 9,
  • на  сервер установлено ПО из маркетплейса.

Если сервер не подходит под условия выше, то напишите тикет в поддержку.

Для привязки почтового адреса следуйте инструкции:

  1. Вернитесь в терминал и перейдите в текстовый редактор для файла /etc/gitlab/gitlab.rb:

sudo nano /etc/gitlab/gitlab.rb
  1. С помощью поиска (Ctrl + W) найдите вхождение по подстроке smtp_enable:

Image11

  1. Раскомментируйте или допишите необходимые параметры.

################################################################################
## GitLab email server settings
##! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
################################################################################

# Чтобы включить SMTP, задайте true
gitlab_rails['smtp_enable'] = true

# Адрес почтового сервера
gitlab_rails['smtp_address'] = "smtp.timeweb.ru"

# Порт (обычно 465 для SSL)
gitlab_rails['smtp_port'] = 465

# Логин и пароль для почты (можно удобно скопировать из панели Timeweb Cloud)
gitlab_rails['smtp_user_name'] = "адрес"
gitlab_rails['smtp_password'] = "пароль"

# При необходимости укажите домен отправителя
gitlab_rails['smtp_domain'] = "timeweb.cloud"

# Аутентификация (plain, login, или cram_md5)
gitlab_rails['smtp_authentication'] = "login"

# Использовать ли STARTTLS (обычно используется при порте 587)
gitlab_rails['smtp_enable_starttls_auto'] = false

# Использовать ли TLS
gitlab_rails['smtp_tls'] = true

# Активация почты внутри GitLab
gitlab_rails['gitlab_email_enabled'] = true

# Активация почты внутри GitLab
gitlab_rails['gitlab_email_from'] = 'адрес'
  1. Сохраните изменения в файле. Примените их:

sudo gitlab-ctl reconfigure
  1. Проверьте, что письма успешно доходят до получателя. Вместо email address укажите любой свой почтовый ящик. 

sudo gitlab-rails runner "Notify.test_email('<email address>', 'Test Subject, 'Test body').deliver_now"

Image6

Создание пользователя

Чтобы создать отдельного пользователя внутри GitLab:

  1. Перейдите на страницу администрирования. Для этого нажмите на кнопку «Admin» в нижней части левой панели (1).

  2. Перейдите на таб «Users» (2). 

Image26

  1. Нажмите на кнопку «New User» — добавление нового пользователя.

  2. Введите имя, username и электронную почту пользователя. Укажите роль: обычный пользователь или администратор. Первичный пароль будет отправлен на указанную электронную почту. 

Image25

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

В GitLab есть группы для организации проектов и участников в общую структуру. Группа — это пространство, в котором хранятся несколько репозиториев, вики и задачи. У группы свои настройки видимости и доступа, а у каждого проекта внутри группы — свои права для разработчиков и менеджеров.

Проект — это основная рабочая единица. Он содержит репозиторий с кодом, задачи (Issues), вики, конвейеры CI/CD. Если существует несколько сервисов, микросервисная архитектура или разные модули, то их удобно объединять в единую группу. Так проще управлять правами пользователей и искать задачи: всё располагается под «зонтиком» группы.

Чтобы создать группу:

  1. Перейдите в админ-панель (1), найдите вкладку «Groups» (2)  и нажмите «New group» (3).

Image9

  1. Укажите название и URL (например, frontend-team), выберите уровень видимости (Private, Internal, Public). Нажмите кнопку «Create Group».

Image14

  1. Добавьте коллег с помощью кнопки «Manage Access». Им можно задать роли «Developer», «Maintainer» или «Owner». 

Image19

Чтобы создать проект:

  1. Перейдите в группу или в свой личный профиль, нажмите «New project».

Image4

  1. Выберите «Create blank project» или импортируйте репозиторий из GitHub, Bitbucket и т. д.

Image5

  1. Задайте имя, видимость и при необходимости инициализируйте репозиторий.

Image23

Удобно создавать группы для каждого отдела или направления разработки. Внутри каждой группы распределять проекты по продуктам или микросервисам. Всё это GitLab визуализирует на одном экране, чтобы команда видела общую картину: кто за что отвечает, где какие задачи и что уже сделано.

Добавление GitLab Runner (если планируете CI/CD)

GitLab Runner — это сервис, который запускает задачи непрерывной интеграции (CI/CD) и выполняет сборки, тесты или развёртывание проекта. Вы можете установить Runner на том же сервере, где работает GitLab, или на выделенной машине под разные окружения (например, для Docker-сборок).

  1. Установите GitLab Runner. Загрузите пакет из официального репозитория. На Ubuntu это делается так:

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner
  1. Убедитесь, что служба активна.

sudo systemctl status gitlab-runner

Image24

  1. Внутри веб-интерфейса GitLab перейдите в админ-панель (1) на вкладку «CI/CD» (2), пункт «Runners» (3). Нажмите на кнопку «New instance runner» и присвойте тег новому раннеру (например, ubuntu). Завершите создание кнопкой «Create runner». На странице отобразится токен — сохраните его в буфер обмена. 

Image18

  1. Вернитесь в терминал и выполните команду:

sudo gitlab-runner register
  1. Последовательно укажите URL, по которому доступен ваш GitLab, скопированный ранее токен из веб-интерфейса, название раннера и тип окружения (executor). Универсально можно использовать docker как executor и ubuntu:22.04 как образ по умолчанию. 

Image2

  1. В веб-интерфейсе проверьте, что раннер доступен.

Image21

Автоматический выпуск SSL-сертификата Let's Encrypt внутри GitLab

GitLab Omnibus поддерживает встроенную интеграцию с Let’s Encrypt. Благодаря этому можно получить бесплатный SSL-сертификат, не выходя за пределы конфигурационного файла GitLab. Такой сертификат шифрует весь трафик, что повышает доверие к вашему домену и обеспечивает безопасность пользователя.

  1. Проверьте, что у вас есть реальный домен, например, gitlab.example.com.

Без доступного домена Let’s Encrypt не сможет выпустить сертификат. В DNS домена нужно прописать IP-адрес вашего сервера в качестве A-записи. SSL-сертификат можно выпустить в том числе и на бесплатный технический домен.

Откройте конфигурацию GitLab:

sudo nano /etc/gitlab/gitlab.rb

Найдите строку external_url и укажите адрес с HTTPS.

Image20

  1. Активируйте Let’s Encrypt. Раскомментируйте и включите следующие параметры:

letsencrypt['enable'] = true
# Укажите адрес электронной почты, чтобы Let's Encrypt отправлял уведомления при проблемах
letsencrypt['contact_emails'] = ['admin@example.com']
# Автоматический перевыпуск сертификата
letsencrypt['auto_renew'] = true

Image8

  1. Перезапустите GitLab.

Сохраните файл и примените изменения:

sudo gitlab-ctl reconfigure

Omnibus GitLab свяжется с Let’s Encrypt, подтвердит владение доменом и выпустит сертификат. Если всё пройдёт успешно, сертификат окажется в /etc/gitlab/ssl/.

  1. Проверьте результат. Зайдите на страницу по домену, используя протокол HTTPS. Современные браузеры показывают знак замка около адресной строки, указывая на шифрованное соединение.

Разверните GitLab на собственном сервере

Заключение

GitLab — это не просто хранилище кода, а полноценная платформа для командной разработки, автоматизации и управления проектами. Она подходит как начинающим командам, так и крупным компаниям с высокими требованиями к безопасности и гибкости. В одной системе объединены репозитории, задачи, CI/CD, контроль доступа, документация и многое другое. Всё это экономит время, упрощает процессы и снижает нагрузку на команду.

Установить GitLab можно на собственный сервер за несколько шагов. Сразу после установки вы получаете рабочую среду, готовую к разработке, проверке и выпуску продукта.

Если вы ищете решение, которое закроет все базовые и продвинутые потребности команды в одной точке — GitLab будет правильным выбором.

03 апреля 2025 г.
135
14 минут чтения
Средний рейтинг статьи: 3
Пока нет комментариев