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

Установка GitLab CE с Nginx и Let's Encrypt на Debian 11

• 5 min read • DevOps • Обновлено 20 Nov 2025
Установка GitLab на Debian 11 с Nginx и SSL
Установка GitLab на Debian 11 с Nginx и SSL

Важно: перед началом убедитесь, что у сервера настроен A-запись домена и выделено минимум 8 ГБ оперативной памяти.

Иллюстрация логотипа GitLab и DevOps-процесса

Предусловия

  • Сервер с Debian 11 (bullseye), минимум 8 ГБ оперативной памяти. 8 ГБ — минимальная рекомендация для сред с небольшим количеством репозиториев; для CI-пайплайнов может потребоваться больше.
  • Действующий домен, указывающий на IP сервера (A-запись).
  • Настроен пароль root или доступ через sudo у пользователя с правами root.

Что делает эта инструкция

Данный материал показывает проверенный путь установки GitLab CE (Omnibus) на Debian 11, обходную правку репозиториев (если официальный пакет для bullseye отсутствует), настройку внешнего URL, включение Let’s Encrypt и планирование резервного копирования.

Обновление пакетов и установка зависимостей

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

apt-get update -y
apt-get install curl ca-certificates apt-transport-https gnupg2 -y

Примечание: команды выполняйте от root или через sudo.

Добавление репозитория GitLab

По умолчанию пакет GitLab может быть отсутствовать в стандартных репозиториях Debian. Добавьте репозиторий GitLab командой:

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash

Если на момент установки пакет для Debian 11 недоступен, можно поправить источник, указав репозиторий для Debian 10 (buster). Откройте файл:

nano /etc/apt/sources.list.d/gitlab_gitlab-ce.list

Найдите строчки с bullseye и замените их на buster:

deb https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bullseye main

deb-src https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bullseye main

Замените на:

deb https://packages.gitlab.com/gitlab/gitlab-ce/debian/ buster main

deb-src https://packages.gitlab.com/gitlab/gitlab-ce/debian/ buster main

Сохраните файл и затем обновите список пакетов:

apt-get update -y

Установка GitLab CE

Установите пакет GitLab Community Edition:

apt-get install gitlab-ce -y

После установки вы увидите вывод с рекомендацией задать external_url и выполнить повторную конфигурацию:

It looks like GitLab has not been configured yet; skipping the upgrade script.
...
Please configure a URL for your GitLab instance by setting `external_url` configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

Настройка GitLab

Откройте основной конфигурационный файл:

nano /etc/gitlab/gitlab.rb

Найдите и укажите ваш домен, заменив пример:

external_url 'https://gitlab.linuxbuz.com'

Далее включите автоматическое получение сертификатов Let’s Encrypt — в файле можно найти и отредактировать соответствующие параметры. Пример настройки (в конфигурации строки сохраняйте в том формате, в котором ожидает GitLab):

# Enable the Let's encrypt SSL
letsencrypt['enable'] = true

# This is optional to get SSL related alerts
letsencrypt['contact_emails'] = ['[email protected]']

# This example renews every 7th day at 02:00 AM
letsencrypt['auto_renew_hour'] = "2"
letsencrypt['auto_renew_minute'] = "0"
letsencrypt['auto_renew_day_of_month'] = "*/7"

Сохраните изменения и примените конфигурацию:

gitlab-ctl reconfigure

После успешной конфигурации в выводе будет информация о начальном пароле root и пути к файлу с ним:

Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.

gitlab Reconfigured!

Получите пароль так:

cat /etc/gitlab/initial_root_password

Важно: файл с паролем автоматически удаляется при следующей конфигурации в течение 24 часов. Сразу смените пароль администратора через интерфейс.

Доступ к GitLab

Откройте браузер и перейдите по указанному ранее external_url, например:

https://gitlab.linuxbuz.com

Вы будете перенаправлены на страницу входа:

Вход в GitLab

Введите имя пользователя, пароль и нажмите Sign in. После первого входа рекомендуется сразу задать новый пароль и включить двухфакторную аутентификацию для аккаунта root.

Панель управления GitLab

Резервное копирование GitLab

Создайте полную резервную копию командой:

gitlab-rake gitlab:backup:create

Чтобы автоматизировать резервное копирование, добавьте задание в /etc/crontab:

nano /etc/crontab

Добавьте строку для ежедневного создания резервной копии в 22:00:

0   22  *  *  *   root gitlab-rake gitlab:backup:create

Сохраните файл. Убедитесь, что на диске достаточно места для бэкап-файлов и реализуйте ротацию/удаление старых резервных копий.

Диагностика и общие проблемы

  • Проблема: сертификат Let’s Encrypt не выписывается.

    • Возможные причины: домен не указывает на сервер, порт 80 занят/блокируется, файерволл (ufw/iptables) блокирует входящие соединения, Nginx уже слушает порт 80 другим конфигом.
    • Что делать: проверить A-запись, открыть порты 80/443, временно остановить сервисы, которые занимают порт 80, и повторить reconfigure.
  • Проблема: установка пакета невозможна из-за несовместимости с bullseye.

    • Решение: временно указать репозиторий buster (как описано выше) или использовать Docker/Kubernetes-образ GitLab.

Альтернативные подходы

  • Развернуть GitLab в Docker (официальные образы) для изоляции и простоты миграции.
  • Использовать Helm-чарт и GitLab Runner в Kubernetes для CI в облаке.
  • Установить GitLab из исходников (рекомендуется только для продвинутых сценариев).

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

  • Сразу смените начальный пароль root и создайте отдельный аккаунт администратора с ограниченными правами.
  • Включите двухфакторную аутентификацию (2FA) для всех администраторов.
  • Настройте брандмауэр: откройте только порты 80/443 и SSH (если необходим внешний доступ).
  • Регулярно обновляйте пакеты GitLab и систему.
  • Шифруйте резервные копии и храните их вне основного сервера.

Конфиденциальность и соответствие требованиям

  • GitLab хранит репозитории, комментарии и метаданные пользователей. При работе с персональными данными учитывайте требования локального законодательства о защите данных (например, GDPR в ЕС). Минимизируйте хранение лишней личной информации и контролируйте доступ к проектам.
  • Документы и конфиденциальные файлы в репозиториях должны подлежать политике retention и шифрованию.

Полезные чек-листы по ролям

Администратор:

  • Проверить A-запись домена
  • Обновить систему и зависимости
  • Установить и настроить external_url
  • Включить Let’s Encrypt и проверить порты
  • Настроить резервное копирование и ротацию
  • Включить 2FA и задать политику паролей

DevOps-инженер:

  • Интегрировать GitLab Runner
  • Настроить CI/CD и кэширование
  • Настроить мониторинг доступности и метрик
  • Планировать масштабирование и бэкапы

Разработчик:

  • Создать личный аккаунт и SSH-ключи
  • Настроить remote origin и пулл/пуш
  • Проверить доступы к проектам

Ментальные модели и эвристики

  • «Минимально рабочая инсталляция»: установить, назначить external_url, активировать SSL, проверить вход и создать резервную копию.
  • «Минимальное производство»: добавить мониторинг, автоматизированные бэкапы, политику ротации и 2FA.

Мини‑методология развертывания (шаги)

  1. Подготовить сервер (обновление, порты, DNS).
  2. Добавить репозиторий GitLab и установить пакет.
  3. Настроить external_url и SSL.
  4. Выполнить gitlab-ctl reconfigure и проверить доступ.
  5. Сменить пароль root, включить 2FA.
  6. Настроить резервное копирование и мониторинг.

Фактическая сводка (ключевые рекомендации)

  • Минимум RAM: 8 ГБ.
  • Открытые порты: 80 и 443 (для Let’s Encrypt и HTTPS).
  • Резервное копирование: ежедневно или в соответствии с политикой хранения данных.
  • Безопасность: включить 2FA и немедленно сменить начальный пароль.

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

  • GitLab доступен по HTTPS на заданном external_url.
  • SSL-сертификат валиден и автоматически обновляется.
  • Администратор сменил пароль и включил 2FA.
  • Регулярные резервные копии созданы и проверены.

Заключение

Поздравляем — вы установили и настроили GitLab CE на Debian 11 с Nginx и Let’s Encrypt. Теперь можно создавать проекты, подключать GitLab Runner и внедрять CI/CD. Если нужно — помогу с настройкой Runner, миграцией репозиториев или бэкапом.

Поделиться: 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 быстро