GitLab CE vs EE: отличия Community и Enterprise Edition
GitLab распространяется в двух редакциях: Community Edition (CE) — бесплатная с открытым исходным кодом, и Enterprise Edition (EE) — коммерческая с расширенными функциями. Понять разницу важно для выбора при развёртывании на собственном сервере.
Основная разница #
GitLab CE (Community Edition):
- Бесплатная, open source (MIT лицензия для большинства компонентов)
- Базовые функции Git, CI/CD, Issues, MR
- Подходит для большинства команд
GitLab EE (Enterprise Edition):
- Платная лицензия
- Включает всё из CE плюс enterprise-функции
- Три уровня: Free, Premium (~$19/пользователь/месяц), Ultimate (~$99/пользователь/месяц)
Важный нюанс: на GitLab.com облачный сервис использует EE-кодовую базу. «CE» и «EE» различие актуально прежде всего для self-hosted развёртывания.
Что включено в GitLab CE (бесплатно) #
CE предоставляет полноценные возможности для разработки:
Репозитории и code review:
✓ Неограниченные публичные и приватные репозитории
✓ Merge Requests с комментариями
✓ Code review (базовый)
✓ Protected branches
✓ Branch permissions
✓ Git LFS
✓ Webhooks
✓ API
CI/CD:
✓ .gitlab-ci.yml пайплайны
✓ Stages, jobs, artifacts
✓ Shared Runners (на gitlab.com, ограниченные минуты)
✓ Self-hosted Runners (без ограничений)
✓ Docker executor
✓ Environments
✓ Auto DevOps (базовый)
Управление задачами:
✓ Issues
✓ Issue Boards (одна доска на проект)
✓ Labels
✓ Milestones
✓ Time tracking
✓ Wiki
✓ Snippets
Безопасность (базовая):
✓ Container Registry
✓ Package Registry (npm, PyPI, Maven и др.)
✓ HTTPS для Git операций
✓ 2FA
Функции только в GitLab EE #
EE Premium (~$19/пользователь/месяц):
Управление командой:
✓ Code Owners — назначение владельцев файлов
✓ Multiple Approvals — несколько обязательных ревьюеров
✓ Group-level boards — доски на уровне группы
✓ Epics — объединение связанных Issues
✓ Roadmaps — планирование на временной шкале
Безопасность и соответствие:
✓ SAML SSO — корпоративная авторизация
✓ SCIM provisioning — автоматизация управления пользователями
✓ Audit events — логирование действий
CI/CD расширенные:
✓ 10 000 минут CI/CD (на gitlab.com)
✓ Merge Trains — последовательные merge с проверкой
✓ Merge Request Approvals — расширенные правила
EE Ultimate (~$99/пользователь/месяц):
Безопасность:
✓ SAST — статический анализ кода
✓ DAST — динамический анализ работающего приложения
✓ Dependency Scanning — анализ зависимостей
✓ Container Scanning — анализ Docker образов
✓ Secret Detection — обнаружение секретов в коде
✓ License Compliance — проверка лицензий
Enterprise-управление:
✓ Geo — географически распределённые зеркала
✓ Portfolio Management
✓ Value Stream Analytics
✓ Advanced compliance
✓ 50 000 минут CI/CD (на gitlab.com)
Уровни доступа (access_level) #
В GitLab для обеих редакций используется система ролей с числовыми кодами:
10 = Guest — только просмотр публичного содержимого
20 = Reporter — просмотр кода, создание Issues
30 = Developer — push в ветки, создание MR
40 = Maintainer — merge MR, управление проектом
50 = Owner — полный доступ, настройки, удаление
Эти коды используются в API и при работе с командной строкой.
Установка GitLab CE на сервере #
# Ubuntu/Debian
# 1. Установить зависимости
sudo apt-get update
sudo apt-get install -y curl openssh-server postfix
# 2. Добавить репозиторий GitLab CE
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# 3. Установить GitLab CE
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ce
# 4. После установки — получить начальный пароль
sudo cat /etc/gitlab/initial_root_password
# Или с конкретной версией
sudo apt-get install gitlab-ce=16.5.0-ce.0
Минимальные требования для сервера: 4 GB RAM, 2 CPU, 50 GB дискового пространства.
Установка GitLab EE на сервере #
# Аналогично CE, но другой пакет
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ee
# Для активации лицензии (после установки):
# Admin Area → Subscription → Upload license
Лицензия EE — файл .gitlab-license, покупается на gitlab.com.
Конвертация CE в EE #
Можно установить CE, а потом активировать EE лицензию:
# На Debian/Ubuntu
sudo apt-get install gitlab-ee
# GitLab автоматически обновит пакет с CE на EE
# Данные, конфигурация и репозитории сохранятся
# Убедиться в успехе
sudo gitlab-rake gitlab:check
Обратная конвертация (EE → CE) также возможна, но enterprise-функции будут недоступны.
Основные команды управления self-hosted GitLab #
# Перезапустить GitLab
sudo gitlab-ctl restart
# Проверить статус сервисов
sudo gitlab-ctl status
# Посмотреть логи
sudo gitlab-ctl tail
# Выполнить backup
sudo gitlab-backup create
# Восстановить из backup
sudo gitlab-backup restore BACKUP=timestamp_of_backup
# Изменить конфигурацию
sudo nano /etc/gitlab/gitlab.rb
sudo gitlab-ctl reconfigure # применить изменения
# Проверить версию
sudo gitlab-rake gitlab:env:info
Сравнение self-hosted vs gitlab.com #
Self-hosted GitLab CE:
+ Бесплатно
+ Полный контроль над данными
+ Неограниченные минуты CI/CD (на своих раннерах)
- Требует сервера и администрирования
- Нужно самостоятельно обновлять
- Настройка резервного копирования на вас
GitLab.com (Free plan):
+ Не нужно своего сервера
+ Обслуживает GitLab Inc.
+ Автоматические обновления
- 400 минут CI/CD в месяц
- Данные хранятся у GitLab
Часто задаваемые вопросы #
Чем отличается GitLab CE от бесплатного плана на gitlab.com? CE — программное обеспечение для self-hosted. GitLab.com Free — облачный сервис. Кодовая база на gitlab.com использует EE, но большинство функций EE требуют платной лицензии.
Нужен ли EE для коммерческого использования? Нет. GitLab CE можно использовать в коммерческих проектах бесплатно. EE нужен только для enterprise-функций (SAML SSO, Geo, расширенная безопасность и т. д.).
Можно ли начать с CE и потом перейти на EE? Да, это стандартный путь. Установите CE, и когда понадобятся EE функции — купите лицензию и активируйте. Данные сохранятся.
Что такое GitLab Omnibus? Это метод установки GitLab, который упаковывает все компоненты (PostgreSQL, Redis, Nginx, GitLab) в один deb/rpm пакет. Стандартный способ установки для большинства.
Как узнать, какая версия установлена? sudo gitlab-rake gitlab:env:info покажет версию и тип (CE или EE). В веб-интерфейсе: Admin Area → Dashboard.
Заключение #
GitLab CE — мощная бесплатная платформа, которая закрывает потребности большинства команд. EE Premium добавляет корпоративные функции управления: Code Owners, SAML SSO, Epics. EE Ultimate — для enterprise с требованиями безопасности: SAST, DAST, сканирование зависимостей. Для большинства небольших и средних команд GitLab CE — оптимальный выбор. Подробнее о ролях в GitLab — система ролей GitLab.