Установка 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

Официальная команда добавляет репозиторий и ключи. Скачайте и выполните инсталляционный скрипт:
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 — сложное веб-приложение на Ruby on Rails; Omnibus-пакет поднимет все сервисы и зависимости.
4. Первичная конфигурация и reconfigure
После установки выполните команду для применения конфигурации Omnibus:
sudo gitlab-ctl reconfigure
Эта операция может занять несколько минут.
Откройте файл /etc/gitlab/gitlab.rb и задайте адрес, по которому будет доступен GitLab:
external_url "http://gitlab.example.com"Если сервер будет доступен извне, укажите домен и настройте HTTPS (см. раздел про SSL). После изменения конфигурации снова выполните:
sudo gitlab-ctl reconfigure5. Настройка 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 reconfigure8. Резервное копирование и восстановление
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.
- Настроить мониторинг и алерты.
- Планировать обновления и миграции.
Мини‑методология запуска (шаги)
- Подготовить сервер и DNS.
- Установить зависимости и репозиторий.
- Установить gitlab-ce.
- Настроить external_url и HTTPS.
- Создать учётные записи и протестировать вход.
- Настроить бэкап и мониторинг.
- Перенести проекты и запустить 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. Для больших команд рассмотрите отказоустойчивую архитектуру и интеграцию с внешним хранилищем для артефактов.

Помните: самохостинг даёт контроль, но требует регулярного обслуживания. Настройте мониторинг, бэкапы и правила безопасности до того, как начнёте активно использовать инстанс.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента