GitLab Community Edition — это полноценная self-hosted DevOps-платформа: Git, CI/CD, issue-трекер и управление проектами в одном пакете. В этой статье рассмотрим, как установить GitLab CE на VPS на Debian, Ubuntu и AlmaLinux.
Что такое GitLab CE
GitLab Community Edition — это полноценная self-hosted DevOps-платформа: Git-репозитории, CI/CD-пайплайны, реестр контейнеров, issue-трекер, вики и управление проектами — всё в одном пакете. В отличие от более лёгких альтернатив (Gitea, Forgejo), GitLab CE закрывает практически весь жизненный цикл разработки без необходимости подключать сторонние сервисы, но и требует существенно больше ресурсов сервера.
Что умеет GitLab
- Git-репозитории с полным UI — merge requests, code review, защищённые ветки.
- Встроенный CI/CD — пайплайны описываются прямо в
.gitlab-ci.yml, без стороннего Jenkins или другого инструмента. - Container Registry — встроенное хранилище Docker-образов.
- Issue-трекер и доски задач — kanban-доски, эпики, milestone.
- Вики проекта — документация рядом с кодом.
- Runners — собственные исполнители для CI/CD-заданий, которые можно развернуть на этом же или на отдельных серверах.
Сколько ресурсов реально нужно
Что должно быть готово заранее
- VPS с Debian 12/13, Ubuntu 22.04/24.04 или AlmaLinux 8/9, минимум 8 ГБ RAM
- Доступ sudo или root
- Зарегистрированный домен с DNS A-записью, направленной на IP сервера (нужен для Let’s Encrypt)
- Доступ к исходящему порту 25 или внешний SMTP-сервер для уведомлений
Установка GitLab CE на Debian и Ubuntu
Шаг 1. Базовые зависимости
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl
Шаг 2. Почта для уведомлений (опционально, но рекомендуется)
sudo apt install -y postfix
При установке выберите вариант «Internet Site» и укажите FQDN сервера. Если планируете использовать внешний SMTP (Gmail, SendGrid и т.д.) — этот шаг можно пропустить и настроить SMTP позже прямо в GitLab.
Шаг 3. Подключение официального репозитория и установка
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://ваш-домен.com" apt install -y gitlab-ce
Переменная EXTERNAL_URL обязательно указывается до установки пакета — именно на её основе GitLab сразу настроит Nginx и попытается выпустить SSL-сертификат через Let’s Encrypt.
Установка GitLab CE на AlmaLinux
Шаг 1. Базовые зависимости
sudo dnf update -y
sudo dnf install -y curl policycoreutils-python-utils openssh-server perl postfix
sudo systemctl enable --now sshd postfix
Шаг 2. Подключение официального репозитория и установка
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="https://ваш-домен.com" dnf install -y gitlab-ce
sudo ausearch -m avc -ts recent.Первая настройка
Пакет GitLab CE (он же Omnibus GitLab) сам устанавливает и настраивает PostgreSQL, Redis, Nginx и все остальные компоненты. После завершения установки примените конфигурацию:
sudo gitlab-ctl reconfigure
Процесс занимает несколько минут при первом запуске. Откройте в браузере указанный домен:
https://ваш-домен.com
Если все предыдущие шаги были выполнены верно Вы получите окно входа в GitLab:

Получение пароля администратора
Временный пароль учётной записи root GitLab генерирует автоматически и хранит в файле, который удаляется через 24 часа после установки:
sudo cat /etc/gitlab/initial_root_password
Резервное копирование
sudo gitlab-backup create STRATEGY=copy
Бэкап не включает файлы /etc/gitlab/gitlab.rb и /etc/gitlab/gitlab-secrets.json — именно в них хранятся ключи шифрования и конфигурация. Их нужно копировать отдельно:
sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json /var/opt/gitlab/backups/
Для автоматических ежедневных бэкапов добавьте задание в cron:
echo "0 2 * * * /opt/gitlab/bin/gitlab-backup create STRATEGY=copy CRON=1" | sudo tee /etc/cron.d/gitlab-backup
Поскольку GitLab одновременно держит в памяти несколько тяжёлых сервисов и активно пишет в базу данных при каждом пуше или запуске CI/CD-пайплайна — стоит сразу закладываться на VPS с NVMe/SSD накопителями и достаточным запасом RAM, иначе скорость работы PostgreSQL и Gitaly под нагрузкой заметно просядет.
