Установка GitLab CE на Ubuntu 16.04 — пошаговый гид
TL;DR
Установите GitLab CE на сервер Ubuntu 16.04 с помощью Omnibus-пакета, включите HTTPS через Let’s Encrypt, настройте UFW и выполните базовую послеустановочную конфигурацию. В статье есть подробные команды, примечания по безопасности, отладочные сценарии и чек-листы для администраторов и разработчиков.
Важно: используйте собственный домен для внешнего URL и создавайте резервные копии перед изменениями в продакшн-системах.
GitLab — открытый менеджер репозиториев Git, разработанный на Rails компанией GitLab Inc. Это веб-интерфейс для совместной работы над кодом: баг-трекинг, запросы на слияние, обзоры кода, вики и CI/CD. GitLab умеет хранить множество проектов и доступен в нескольких вариантах: Community Edition (CE), Enterprise Edition (EE), облачный GitLab.com и частные managed-инстансы.
В этом руководстве показана поэтапная установка GitLab CE (Omnibus) на сервер Ubuntu 16.04 Xenial Xerus. Omnibus-пакет упрощает развёртывание, устанавливая все зависимости и службы.
Основные задачи в инструкции
- Установка необходимых пакетов на Ubuntu
- Добавление репозитория GitLab и установка gitlab-ce
- Настройка внешнего URL
- Получение SSL-сертификата Let’s Encrypt и генерация dhparam
- Включение HTTPS в Nginx (встроенный в Omnibus)
- Настройка UFW (брандмауэр)
- Послеустановочная конфигурация и тестирование
Кому пригодится этот гид
Коротко: системным администраторам, инженерам DevOps и владельцам небольших команд, которые хотят развернуть собственный GitLab на Ubuntu 16.04.
Краткие требования (одно предложение): Ubuntu 16.04 x64, минимум 2 ГБ ОЗУ, root-доступ.
Список терминов (1‑строчный определения)
- Omnibus: официальный пакет GitLab, включающий все зависимости и службы.
- external_url: основная переменная конфигурации GitLab, определяющая URL доступа пользователям.
Подготовка сервера и предварительные замечания
Перед началом:
- Резервная копия данных и снимок машины (snapshot) для быстрого отката.
- Если сервер в облаке — убедитесь, что у него статический публичный IP или правильная запись DNS.
- Укажите валидный домен (например, gitlab.example.com). Let’s Encrypt выдаёт сертификаты только для доменов, а не для чистых IP.
Примеры команд выполняются от имени root или через sudo.
Шаг 1 — установка требуемых пакетов
Подключитесь к серверу по SSH как root и обновите репозитории:
ssh root@GitLabServer
apt-get update && apt-get upgrade -yУстановите curl, OpenSSH-сервер, ca-certificates и postfix (SMTP):
apt install -y curl openssh-server ca-certificates postfixПри установке postfix выберите тип конфигурации “Internet Site” и введите FQDN сервера, который будет использоваться в качестве отправителя почты (например, gitlab.example.com).


Примечание: если почтовая рассылка не нужна сразу, можно временно выбрать «local only», но для уведомлений GitLab лучше настроить SMTP.
Шаг 2 — добавление репозитория GitLab и установка
Добавьте официальный репозиторий GitLab Omnibus и выполните установку gitlab-ce:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
apt install -y gitlab-ceПроцесс установки может занять несколько минут; Omnibus установит PostgreSQL, Redis, Nginx и другие компоненты.


После установки сервисы будут запущены автоматически.
Шаг 3 — настройка внешнего URL
Основной файл конфигурации GitLab находится в /etc/gitlab/gitlab.rb. Укажите external_url с вашим доменом и протоколом (http или https).
cd /etc/gitlab
vim gitlab.rbНайдите строку external_url и замените на ваш домен, например:
external_url 'http://gitlab.example.com'Сохраните и закройте файл. На данный момент используем HTTP — в следующем шаге мы включим HTTPS.
Шаг 4 — получение SSL через Let’s Encrypt и генерация dhparam
Установите клиент Let’s Encrypt (certbot) и получите сертификат:
apt install -y letsencrypt
letsencrypt certonly -d gitlab.example.comСледуйте подсказкам: укажите e-mail и согласитесь с условиями обслуживания. Файлы сертификата появятся в /etc/letsencrypt/live/gitlab.example.com/.

Далее создайте каталог ssl для GitLab и сгенерируйте dhparam (это займёт время):
mkdir -p /etc/gitlab/ssl
openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
chmod 600 /etc/gitlab/ssl/*
Примечание: dhparam 2048 — баланс безопасности и скорости. При высоких требованиях безопасности используйте 4096, но генерация будет значительно дольше.
Шаг 5 — включение HTTPS в Nginx (встроенный в Omnibus)
Отредактируйте /etc/gitlab/gitlab.rb, поменяв external_url на https и добавив пути к сертификатам:
external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"Сохраните файл и примените конфигурацию:
gitlab-ctl reconfigure
Если возникнут ошибки при запуске Nginx, просмотрите логи:
gitlab-ctl tail nginx
journalctl -u gitlab-runsvdir -b --no-pager | tail -n 200Шаг 6 — настройка UFW (брандмауэр)
Включите UFW и откройте порты SSH, HTTP и HTTPS:
ufw enable
ufw allow ssh
ufw allow http
ufw allow https
ufw status
Проверьте, чтобы SSH был доступен, особенно если вы подключены по сети: неправильная политика UFW может заблокировать вас.
Шаг 7 — послеустановочные действия
Откройте браузер и перейдите по адресу https://gitlab.example.com. При первом входе нужно сбросить пароль для пользователя root.
- Логин по умолчанию: root
- Смените пароль, заполните профиль и добавьте SSH-ключ.
Изменение профиля и аккаунта:
- Настройки профиля (Profile Settings) → обновите имя и e-mail.
- Account → смените имя пользователя.
Добавление SSH-ключа: создайте ключ на локальной машине (ssh-keygen), скопируйте содержимое id_rsa.pub и вставьте в GitLab → SSH Keys.
Ограничения регистрации и лимиты: Админ → Настройки → Account and Limit Settings — можно задать максимум проектов на пользователя и белый список доменов для регистрации.

Шаг 8 — тестирование (создание проекта и первый push)
Создайте новый проект через веб-интерфейс и выполните базовые git-операции из терминала:
git config --global user.name 'hakase'
git config --global user.email 'you@example.com'
git clone https://gitlab.example.com/youruser/yourproject.git
cd yourproject
vim README.md
git add .
git commit -m 'Initial commit'
git push origin masterПри использовании HTTPS вас попросят ввести учётные данные; при желании настройте Personal Access Token или добавьте SSH-ключ и используйте SSH-URL репозитория.

Отладка и типичные проблемы
Nginx не запускается после reconfigure
- Проверьте синтаксис SSL-путей и права доступа.
- Просмотрите логи: gitlab-ctl tail nginx и /var/log/gitlab/nginx/*.
Certbot не может проверить домен
- Убедитесь, что DNS указывает на этот сервер и порты 80/443 открыты.
- Временно отключите редирект на HTTPS или используйте DNS-валидацию.
Push по HTTPS не принимает пароль
- Создайте персональный токен (Access Token) или используйте SSH-ключ.
Нехватка памяти
- GitLab требует минимум 2 ГБ ОЗУ для базовой работы; на слабых серверах уменьшите количество рабочих процессов или используйте swap.
Безопасность и hardening (краткий чек-лист)
- Включите HTTPS и автоматическое обновление сертификатов (certbot renew).
- Настройте двухфакторную аутентификацию для пользователей.
- Ограничьте доступ к административной панели по IP (через firewall или прокси).
- Регулярно обновляйте Omnibus-пакеты: apt update && apt upgrade gitlab-ce.
- Настройте резервное копирование: gitlab-rake gitlab:backup:create.
- Проверяйте логи и метрики (gitlab-ctl tail, Prometheus/Grafana если включены).
Альтернативные подходы
- Установка из исходников (source): даёт гибкость, но сложнее в поддержке и требует ручной настройки сервисов.
- Docker / Helm (Kubernetes): удобно для контейнеризированных сред и масштабирования.
- Managed GitLab.com: меньше работы по администрированию, но данные хранятся вне инфраструктуры.
Миграция и совместимость (советы)
- Ubuntu 16.04 устарела — планируйте миграцию на LTS 18.04/20.04. Перед миграцией выполните gitlab-rake backup:create и проверьте совместимость версий Omnibus.
- Ознакомьтесь с official upgrade path: обновляйте GitLab пошагово между мажорными версиями.
Ролевые чек-листы
Администратор:
- Настроить DNS, сертификаты, firewall.
- Настроить резервное копирование и мониторинг.
- Проводить регулярные обновления.
DevOps-инженер:
- Интегрировать CI/CD runners.
- Настроить доступы и секреты (Vault/ENV).
- Автоматизировать создание проектов и групп.
Разработчик:
- Добавить SSH-ключ.
- Настроить локальный git user.name и user.email.
- Создать и протестировать pipeline.
Мини-методология обновления и отката (playbook)
- Перед обновлением: backup настройки и данных (gitlab-rake gitlab:backup:create).
- Проверить RELEASE NOTES для целевой версии.
- На тестовом сервере выполнить обновление и прогнать CI.
- Обновить продакшн в окне обслуживания.
- В случае проблемы — остановить сервисы и восстановить из бэкапа.
Критерии приёмки
- Веб-интерфейс доступен по HTTPS.
- Пользователь root может залогиниться и изменить пароль.
- Проект создаётся, push/pull работают через SSH и/или HTTPS.
Полезные команды управления GitLab
gitlab-ctl status
gitlab-ctl restart
gitlab-ctl tail
gitlab-ctl reconfigure
gitlab-rake gitlab:backup:createКороткий словарь (1‑строчные определения)
- Omnibus: пакет с готовой сборкой GitLab и зависимостями.
- external_url: URL, по которому пользователи обращаются к GitLab.
- dhparam: параметры Диффи-Хеллмана для улучшения безопасности TLS.
Когда этот подход не подходит
- Если необходима экстренная гибкость конфигурации серверов или специфичная версия PostgreSQL — установка из исходников предпочтительнее.
- Для массового масштабирования и контейнеризации лучше использовать Kubernetes + Helm chart.
Советы по обслуживанию
- Планируйте обновления и тестируйте на staging.
- Мониторьте дисковое пространство — бэкапы и репозитории могут быстро разрастаться.
- Включите автоматическое обновление сертификатов: добавьте cron для certbot renew.
Ресурсы и ссылки
- Официальная страница загрузок для Ubuntu 16.04: https://about.gitlab.com/downloads/#ubuntu1604
- Документация GitLab CE: https://docs.gitlab.com/ce/
Итог
Установка GitLab CE на Ubuntu 16.04 с помощью Omnibus — относительно прямой процесс: подготовка окружения, установка пакета, получение SSL-сертификата и базовая настройка сети и пользователей. Основная работа администратора — это поддержание безопасности, резервного копирования и регулярных обновлений.
Ключевые проверки после установки: HTTPS, возможность входа под root, создание и push в проект, резервное копирование.
Дополнительные изображения и скриншоты, использованные в статье:










Похожие материалы
Herodotus: защита от банковского трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы Excel: руководство
Включить новое меню «Пуск» в Windows 11 — инструкция
Как исправить дублирование Диспетчера задач в Windows 11