Материал подготовлен командой Simple-Server для администраторов VPS. Команды проверяйте на тестовом сервере перед production.
Кратко о задаче
GitLab объединяет Git-репозиторий, code review, встроенный CI/CD и раннеры для автоматической сборки и деплоя. На VPS Simple-Server вы разворачиваете свой экземпляр GitLab: без маркетплейса и готовых образов — только Ubuntu, root по SSH и официальный пакет gitlab-ce.
В статье: заказ сервера, установка GitLab, базовая настройка и пример .gitlab-ci.yml. Отдельно про Runner — в инструкции по GitLab Runner.
Что понадобится
| Ресурс | Рекомендация |
|---|---|
| VPS | от 4 ГБ RAM и 2 vCPU (для команды до ~30 пользователей; для production лучше 8 ГБ / 4 vCPU) |
| ОС | Ubuntu 22.04 LTS |
| Доступ | SSH под root |
| Домен | желательно (A-запись на IP VPS); можно начать с IP и позже сменить external_url |
| Порты | 22 (SSH), 80 и 443 (HTTP/HTTPS для GitLab) |
Шаг 1. Заказ VPS на Simple-Server
- Откройте страницу аренды VPS и выберите тариф с достаточным объёмом RAM (для GitLab — PerformanceVDS или выше).
- В качестве ОС укажите Ubuntu 22.04.
- После создания сервера запишите IP-адрес и пароль root (или подключите SSH-ключ при заказе).
- Привяжите домен: в DNS создайте A-запись
gitlab.ваш-домен.ru→ IP сервера. Пока DNS обновляется, можно работать по IP.
Подключение по SSH:
ssh root@ВАШ_IPШаг 2. Подготовка системы
Обновите пакеты и установите зависимости GitLab:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl postfixПри установке postfix выберите «Internet Site» и укажите доменное имя сервера (для почтовых уведомлений GitLab).
Проверьте hostname (по желанию):
sudo hostnamectl set-hostname gitlab.example.comШаг 3. Установка GitLab CE
Официальный репозиторий GitLab (Community Edition):
cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
sudo bash /tmp/script.deb.sh
sudo apt install -y gitlab-ceУстановка занимает несколько минут. Не прерывайте процесс.
Шаг 4. Firewall (UFW)
Разрешите SSH, HTTP и HTTPS:
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo ufw statusШаг 5. Настройка external_url
Откройте конфигурацию:
sudo nano /etc/gitlab/gitlab.rbНайдите и задайте URL, по которому будет открываться GitLab (домен или IP):
external_url 'https://gitlab.ваш-домен.ru'Для Let's Encrypt в том же файле можно включить (раскомментируйте и укажите email):
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@ваш-домен.ru']Если пока используете только IP без SSL:
external_url 'http://ВАШ_IP'Примените настройки:
sudo gitlab-ctl reconfigureКоманда может выполняться 5–15 минут. После завершения проверьте статус:
sudo gitlab-ctl statusШаг 6. Первый вход в веб-интерфейс
- Откройте в браузере адрес из
external_url. - Логин по умолчанию:
root. - Пароль смотрите на сервере:
sudo cat /etc/gitlab/initial_root_passwordФайл удаляется через 24 часа после установки — сохраните пароль сразу. 4. Смените пароль root и при необходимости отключите открытую регистрацию: Admin → Settings → General → Sign-up restrictions.
Добавьте SSH-ключ для git-операций: Preferences → SSH Keys.
Шаг 7. Базовый CI/CD: файл .gitlab-ci.yml
CI/CD в GitLab описывается файлом .gitlab-ci.yml в корне репозитория.
Пример простого pipeline (проверка версии Python на раннере):
stages:
- test
run-check:
stage: test
image: python:3.12-slim
script:
```bash
- python --version
- echo "Pipeline выполнен на Simple-Server VPS"
1. Создайте проект в GitLab (**New project → Create blank project**).
2. Загрузите код или клонируйте пустой репозиторий.
3. Добавьте `.gitlab-ci.yml` в корень и сделайте commit.
4. Откройте **Build → Pipelines** — GitLab запустит job.
По умолчанию jobs выполняются на **shared runners** только на GitLab.com. На **собственном** сервере нужен **GitLab Runner** — см. [установку GitLab Runner](/blog/ci-cd/ustanovka-i-ispolzovanie-gitlab-runner).
Кратко про Runner на том же VPS:
```bash
# пример: runner в Docker (детали — в отдельной статье)
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latestЗарегистрируйте runner в проекте: Settings → CI/CD → Runners — скопируйте токен и URL вашего GitLab.
Шаг 8. Полезные команды обслуживания
# перезапуск всех сервисов GitLab
sudo gitlab-ctl restart
# просмотр логов
sudo gitlab-ctl tail
# проверка конфигурации перед reconfigure
sudo gitlab-ctl check-configРезервное копирование: настройте snapshot VPS в панели Simple-Server и периодический бэкап каталога /var/opt/gitlab.
Частые проблемы
502 или долгая загрузка после установки — дождитесь окончания gitlab-ctl reconfigure, проверьте RAM (free -h). При нехватке памяти увеличьте тариф VPS.
Let's Encrypt не выдал сертификат — убедитесь, что домен указывает на IP сервера и порты 80/443 открыты в UFW и у провайдера.
Pipeline в статусе pending — нет активного Runner для проекта; установите и зарегистрируйте Runner.
Связанные материалы
- Установка GitLab на Ubuntu 22.04 — расширенная настройка Omnibus
- GitLab Runner: установка и pipeline
- Что такое CI/CD pipeline
Для стабильной работы GitLab и CI/CD на Simple-Server выберите VPS с запасом по RAM и диску — при росте числа проектов и раннеров нагрузка растёт быстрее, чем у обычного сайта.