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

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

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

Важно: перед началом убедитесь, что у вас есть резервные копии тестовых данных и вы можете восстановить систему при необходимости.

О чём эта инструкция

Это пошаговое руководство по установке GitLab CE (Community Edition) на Ubuntu 18.04 LTS (Bionic Beaver) с объяснением основных этапов, команд и практических замечаний. Используется Omnibus-пакет от GitLab — он автоматически устанавливает все необходимые зависимости и сервисы.

Кому полезно: системным администраторам, DevOps-инженерам, техническим руководителям и разработчикам, которым нужен собственный Git-сервер.

Основные варианты развёртывания

Primary intent: установить GitLab CE локально на Ubuntu 18.04.

Related variants:

  • установка GitLab на Ubuntu 20.04/22.04
  • развертывание GitLab в Docker / Docker Compose
  • развертывание GitLab в Kubernetes (Helm)
  • использование GitLab.com как SaaS
  • миграция с другой Git-платформы

Предварительные требования

  • Ubuntu 18.04 Server (Bionic Beaver)
  • Минимум 4 ГБ оперативной памяти — рекомендуется 8 ГБ для стабильной работы
  • Доступ с правами root (или sudo)
  • Зарезервированный домен (например, git.example.com) и корректная DNS-запись A/AAAA на IP сервера
  • Открытые порты: 22 (SSH), 80 (HTTP), 443 (HTTPS)

Что мы сделаем

  1. Обновим репозитории и пакеты
  2. Установим зависимости (curl, openssh-server, ca-certificates, postfix и т.п.)
  3. Установим GitLab CE через Omnibus
  4. Сгенерируем SSL-сертификат Let’s Encrypt и dhparam
  5. Настроим HTTPS в конфигурации GitLab
  6. Настроим UFW (брандмауэр Ubuntu)
  7. Выполним пост-установочную настройку и тесты
  8. Разберём отладку, безопасность и резервное копирование

Шаг 1 — Обновление системы

Перед установкой обновите список пакетов и сами пакеты:

sudo apt update
sudo apt upgrade -y

Подождите, пока обновление завершится.

Обновление пакетов Ubuntu

Шаг 2 — Установка зависимостей

GitLab требует ряда системных пакетов: curl, openssh-server, ca-certificates и почтового агента (например, postfix). Установите их так:

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

При установке postfix выберите тип конфигурации “Internet Site” и укажите доменное имя сервера, которое будет использоваться для исходящей почты.

Настройка Postfix при установке

Примечание: GitLab использует почту для уведомлений и восстановления пароля — настройте DNS-записи (SPF/DKIM) и мониторьте доставку.

Шаг 3 — Установка GitLab Omnibus

Добавим официальный репозиторий GitLab и установим пакет gitlab-ce:

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

Omnibus-пакет установит все компоненты: PostgreSQL, Redis, NGINX (или встроенный), Unicorn/Sidekiq и т. д.

Запуск установки GitLab CE

После установки нужно указать URL, по которому будет доступен GitLab. Отредактируйте файл конфигурации:

sudo vim /etc/gitlab/gitlab.rb

Найдите и измените параметр external_url на ваш домен (пока можно указать http):

external_url 'http://git.hakase-labs.pw'

Сохраните файл и выйдите из редактора.

Шаг 4 — Генерация SSL (Let’s Encrypt) и DHPARAM

Установите клиент Let’s Encrypt (certbot) и получите сертификат методом standalone (сервер должен иметь открытый 80 порт во время получения):

sudo apt install letsencrypt -y
sudo letsencrypt certonly --standalone --agree-tos --no-eff-email --email support@example.com -d git.hakase-labs.pw

После успешного выполнения сертификаты будут в каталоге /etc/letsencrypt/live/git.hakase-labs.pw/

Получение сертификата Let's Encrypt

Создайте каталог для dhparam и сгенерируйте файл:

sudo mkdir -p /etc/gitlab/ssl/
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
sudo chmod 600 /etc/gitlab/ssl/*

Генерация dhparam может занять время; 2048 бит — компромисс между безопасностью и временем генерации.

Процесс генерации dhparam

Шаг 5 — Включение HTTPS в GitLab

Отредактируйте /etc/gitlab/gitlab.rb и укажите https в external_url, затем добавьте настройки Nginx для сертификатов:

sudo vim /etc/gitlab/gitlab.rb

Измените:

external_url 'https://git.hakase-labs.pw'

Добавьте в раздел GitLab Nginx:

nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/git.hakase-labs.pw/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/git.hakase-labs.pw/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

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

sudo gitlab-ctl reconfigure

Команда применит все изменения и перезапустит сервисы.

Перезапуск сервисов GitLab

Если вы используете автоматическое продление сертификатов Let’s Encrypt, позаботьтесь о cron/timer и восстановлении сертификатов в конфигурации GitLab при обновлении.

Шаг 6 — Настройка UFW (брандмауэр Ubuntu)

Разрешите основные сервисы и активируйте брандмауэр:

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo ufw status

Убедитесь, что правила корректны и что вы не заблокировали свой доступ по SSH.

Статус UFW с разрешёнными портами

Шаг 7 — Пост-установочные шаги в веб-интерфейсе

Откройте в браузере https://git.hakase-labs.pw. При первом заходе потребуется задать пароль для пользователя root.

Установка пароля root

Заполните форму начальной установки, введите новый пароль и нажмите “Change your password”.

Установка пароля root в GitLab

Войдите как root и настройте профиль: имя, имя пользователя, SSH-ключи и ограничения.

Добавление SSH-ключа

На клиентской машине сгенерируйте ключ и скопируйте публичный ключ:

ssh-keygen
cat ~/.ssh/id_rsa.pub

Вставьте публичный ключ в раздел SSH Keys в профиле GitLab.

Добавление SSH-ключа в GitLab

Ограничение регистрации и квоты

В административной панели можно отключить саморегистрацию пользователей (signup enabled) и установить лимит проектов по умолчанию, например 20.

Отключение регистрации пользователей в GitLab

Шаг 8 — Тестирование рабочего процесса

Создайте тестовый проект через UI (плюс в верхней панели) и выполните первый коммит из локального репозитория.

git config --global user.name "hakase"
git config --global user.email "[email protected]"
git clone https://git.hakase-labs.pw/hakase/project01.git
cd project01/
vim README.md
git add .
git commit -m 'Add README.md file by hakase-labs'
git push origin master

При использовании HTTPS GitLab запросит ваши учётные данные; при использовании SSH — проверит ключи.

Проверка коммита и push

Отладка и распространённые ошибки

Если что-то идёт не так, используйте следующие места для проверки:

  • Логи GitLab: sudo gitlab-ctl tail — вывод в реальном времени
  • Проверка статуса сервисов: sudo gitlab-ctl status
  • Применение конфигурации: sudo gitlab-ctl reconfigure
  • Проверка прав на сертификаты: sudo ls -l /etc/letsencrypt/live/git.hakase-labs.pw/
  • Проверка DNS: nslookup/ dig имя_домена
  • Firewall: sudo ufw status

Типичные проблемы и решения:

  • Проблема: 502/504 после установки — проверьте статус unicorn/puma и sidekiq, перезапустите sudo gitlab-ctl restart
  • Проблема: сертификат отсутствует — убедитесь, что порт 80 открыт во время запроса Let’s Encrypt и что домен резолвится на IP сервера
  • Проблема: push по HTTPS требует пароль — используйте персональные токены (Personal Access Tokens) для CI/CLI или переключитесь на SSH

Безопасность и резервные копии

Рекомендации по безопасности:

  • Отключите саморегистрацию, если это не требуется
  • Включите двухфакторную аутентификацию для администраторов
  • Настройте резервное копирование и проверяйте восстановления: sudo gitlab-rake gitlab:backup:create
  • Обновляйте GitLab и пакеты регулярно
  • Ограничьте доступ к административной панели по IP при возможности
  • Регулярно проверяйте логи и настраивайте мониторинг (Prometheus, Grafana — доступны в Omnibus при включении)

Пример команды создания резервной копии (по умолчанию сохраняется в /var/opt/gitlab/backups):

sudo gitlab-rake gitlab:backup:create

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

  1. Docker / Docker Compose — контейнерные образы GitLab CE подходят для быстрых тестов и изолированных сред. Подходит для development и CI-экспериментов, но требует внимания к хранению данных (volume) и сетям.
  2. Kubernetes (Helm Chart) — для масштабируемых production-развёртываний с высокой доступностью. Требует знаний Kubernetes, хранения секретов и настроек Ingress/Ingress Controller.
  3. GitLab.com — если не хотите поддерживать инфраструктуру, используйте SaaS-версию GitLab.com.

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

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

  • GitLab доступен по HTTPS по заданному домену
  • Веб-интерфейс открывается, можно установить пароль root
  • Создан тестовый проект и выполнен push из локального репозитория
  • Установлены и проверены правила UFW для SSH/HTTP/HTTPS
  • Создан и протестирован SSH-доступ (добавлен публичный ключ)
  • Сделана резервная копия конфигурации/данных

Руководство для ролей

Admin (администратор):

  • Проверить DNS и доступность домена
  • Установить платформу и настроить сертификацию
  • Настроить бэкапы и политику обновлений

DevOps:

  • Настроить мониторинг, логирование и алертинг
  • Автоматизировать обновления сертификатов и конфигураций
  • Настроить CI/CD раннеры при необходимости

Developer:

  • Добавить SSH-ключ, настроить Git-клиент
  • Создать проект, выполнить первый push
  • Настроить CI/CD pipeline в проекте

Контроль качества и тесты приёмки

Тестовые сценарии:

  • Доступ к https://<ваш-домен> и успешный вход как root
  • Создание проекта и отображение файлов после push
  • Отправка уведомления по почте (проверка SMTP)
  • Ротация сертификата Let’s Encrypt (проверка cron/timer)

Критерии успешности: все тесты выполнены без ошибок, сервисы в статусе “running”.

Факты и рекомендации

  • Порты: SSH 22, HTTP 80, HTTPS 443
  • Минимальная ОЗУ: 4 ГБ (рекомендуется 8 ГБ для небольших команд)
  • Omnibus упрощает установку, но требует контроля обновлений и бэкапов

Когда этот подход не подходит

  • Требуется кластерная HA-установка с горизонтальным масштабированием — рассмотрите Kubernetes и Helm Chart
  • Требуется минимизация длительности отклика и распределённая архитектура — оцените специализированные облачные решения

Краткое резюме

Вы установили GitLab CE на Ubuntu 18.04 с использованием Omnibus, настроили HTTPS через Let’s Encrypt, открыли необходимые порты в UFW, выполнили пост-установочную настройку и проверили базовый рабочий процесс. Дальше рекомендуется настроить регулярные бэкапы, мониторинг и план обновлений.

Справочные материалы

Веб-интерфейс GitLab — панель управления

Изменение настроек профиля в GitLab

Изменение имени пользователя в профиле GitLab

Добавление SSH-ключа через веб-интерфейс GitLab

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

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

Небольшие заметки

  • Обязательно проверяйте, что вы используете актуальную версию Omnibus для Ubuntu 18.04, совместимую с вашей инфраструктурой.
  • Планируйте окна обслуживания для обновлений и тестируйте обновления на копии окружения перед применением в production.
Поделиться: 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 быстро