Home » Как быстро развернуть свой GitLab и CI/CD на VPS: практический гайд для разработчиков и DevOps
Как быстро развернуть свой GitLab и CI/CD на VPS: практический гайд для разработчиков и DevOps

Как быстро развернуть свой GitLab и CI/CD на VPS: практический гайд для разработчиков и DevOps

Если ты устал от ограничений бесплатных репозиториев, хочешь держать код и пайплайны под контролем, или просто хочешь научиться работать с DevOps-инструментами на практике — эта статья для тебя. Я расскажу, как развернуть свой собственный GitLab и CI/CD на VPS, чтобы твой код был всегда под рукой, а сборки и деплой — автоматизированы. Всё просто, по шагам, с примерами и советами из личного опыта.

Зачем вообще свой GitLab и CI/CD?

  • Контроль над данными. Ты сам решаешь, где хранится твой код и кто к нему имеет доступ.
  • Гибкость. Можно настраивать пайплайны под любые задачи, не упираясь в лимиты SaaS-сервисов.
  • Экономия. Для небольших команд VPS часто дешевле, чем платные тарифы облачных GitLab/GitHub.
  • Обучение. Отличная возможность прокачать навыки DevOps и понять, как всё устроено изнутри.

Как это работает?

Всё просто: ты арендуешь VPS (виртуальный сервер), ставишь туда GitLab (или его облегчённую версию — GitLab CE), настраиваешь CI/CD Runner — и получаешь свой автономный центр разработки. Все коммиты, задачи, пайплайны, Docker-образы и деплой — под твоим контролем.

Структура решения

  • VPS — твой сервер в облаке (например, арендовать VPS).
  • GitLab — система управления репозиториями, задачами, пайплайнами.
  • GitLab Runner — агент, который выполняет CI/CD задачи (сборка, тесты, деплой).
  • Docker (опционально) — для изоляции окружения и удобства развертывания.

Алгоритм: как всё развернуть?

  1. Арендуешь VPS с Ubuntu 22.04+ (или другой поддерживаемой ОС).
  2. Настраиваешь базовую безопасность (SSH, firewall, sudo).
  3. Устанавливаешь Docker (по желанию — для удобства).
  4. Ставишь GitLab CE (Community Edition) — бесплатно.
  5. Настраиваешь GitLab Runner для CI/CD.
  6. Создаёшь проект, пишешь .gitlab-ci.yml, запускаешь пайплайны.

Пошаговая установка: простым языком, но по делу

1. Аренда VPS

Выбирай VPS с минимум 2 ГБ RAM и 2 CPU (GitLab прожорливый). SSD — обязательно. Локация — ближе к тебе или команде.

  • Для теста хватит 2 ГБ RAM, но для продакшна — лучше 4 ГБ+.
  • Ссылка для заказа: https://arenda-server.cloud/vps

2. Базовая настройка VPS


# Обнови систему
sudo apt update && sudo apt upgrade -y

# Добавь пользователя (если не хочешь работать под root)
adduser devuser
usermod -aG sudo devuser

# Настрой SSH (запрети root, задай порт, включи ключи)
sudo nano /etc/ssh/sshd_config
# PermitRootLogin no
# Port 2222 (например)
sudo systemctl restart sshd

# Включи firewall
sudo ufw allow 2222/tcp
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

3. Установка Docker (по желанию, но очень советую)


sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
sudo usermod -aG docker $USER

Перелогинься, чтобы применились права.

4. Установка GitLab CE

Есть два пути: через Docker или напрямую. Я советую Docker — проще обновлять и переносить.

Вариант 1: GitLab в Docker


docker run --detach \
  --hostname gitlab.example.com \
  --publish 443:443 --publish 80:80 --publish 2222:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest
  • Замени gitlab.example.com на свой домен или IP.
  • Порты: 80 (HTTP), 443 (HTTPS), 2222 (SSH для git).
  • Папки /srv/gitlab/... — для хранения данных вне контейнера.

Вариант 2: Установка напрямую


sudo apt install -y curl openssh-server ca-certificates tzdata perl
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ce

После установки открой http://IP_СЕРВЕРА в браузере, задай пароль root.

5. Настройка GitLab Runner для CI/CD

Runner — это агент, который выполняет твои пайплайны. Можно ставить на тот же VPS или на отдельный.


# Установка Runner
sudo apt install -y curl
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner

# Регистрация Runner
sudo gitlab-runner register
# Введи URL своего GitLab (например, http://gitlab.example.com)
# Введи токен (найдёшь в GitLab: Admin > Runners)
# Выбери executor (shell, docker и т.д.)
  • Для изоляции советую executor docker.
  • Runner можно регистрировать как shared (для всех проектов) или specific (для одного проекта).

6. Создание проекта и пайплайна

  • Создай новый проект в GitLab.
  • Добавь файл .gitlab-ci.yml в корень репозитория.

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "Сборка проекта..."

test_job:
  stage: test
  script:
    - echo "Тесты прошли успешно!"

Каждый пуш будет запускать пайплайн.

Практические советы и схемы

  • Используй отдельный диск/раздел для данных GitLab — проще бэкапить и переносить.
  • Регулярно делай бэкапы: официальная инструкция.
  • Для HTTPS используй Let’s Encrypt (автоматически через certbot).
  • Ограничь доступ к GitLab через firewall и VPN, если проект приватный.
  • Следи за обновлениями GitLab и Runner — закрывай уязвимости.

Схема взаимодействия

[Dev/Team] --push--> [GitLab на VPS] --trigger--> [GitLab Runner] --build/test/deploy--> [Production/Server]

Кейсы: успехи и фейлы

Позитивный кейс

Маленькая команда (3-5 человек) развернула GitLab на VPS за вечер. Настроили пайплайны для Python и Node.js проектов, автоматизировали деплой на staging. За год — ни одной потери кода, все задачи и обсуждения в одном месте. Экономия — 0$ на SaaS, только аренда VPS.

Негативный кейс

Один человек поставил GitLab на VPS с 1 ГБ RAM. Через месяц сервер начал падать из-за нехватки памяти, пайплайны не запускались, бэкапы не делались. В итоге потерял часть данных после сбоя диска. Вывод: не экономь на ресурсах и делай бэкапы!

Частые ошибки новичков

  • Ставят GitLab на слабый VPS (1 ГБ RAM) — не взлетит, минимум 2 ГБ, лучше 4+.
  • Забывают про firewall — сервер открыт всему миру.
  • Не делают бэкапы — потом кусают локти.
  • Не обновляют GitLab — ловят баги и уязвимости.
  • Путают GitLab Runner и сам GitLab — Runner нужен для CI/CD, без него пайплайны не работают.

Мифы и альтернативы

  • Миф: “GitLab на VPS — это только для больших команд”. На самом деле, это удобно даже для одного разработчика.
  • Миф: “Сложно и долго”. На практике — за пару часов можно всё поднять.
  • Альтернативы: Gitea (лёгкий аналог GitLab), Gogs, Jenkins (только CI/CD), Drone (CI/CD).

Выводы и рекомендации

  • Свой GitLab на VPS — это реально, быстро и удобно. Ты получаешь полный контроль, гибкость и опыт работы с DevOps-инструментами.
  • Не экономь на VPS — бери минимум 2 ГБ RAM, SSD, хороший канал.
  • Делай бэкапы и обновляйся вовремя.
  • Используй Docker для простоты и переносимости.
  • Если нужен быстрый старт — арендуй VPS тут: https://arenda-server.cloud/vps

Если остались вопросы — пиши в комменты или ищи ответы в официальной документации GitLab. Удачи в автоматизации и пусть твои пайплайны всегда проходят с первого раза!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked