- Home »

Как быстро развернуть свой 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 (опционально) — для изоляции окружения и удобства развертывания.
Алгоритм: как всё развернуть?
- Арендуешь VPS с Ubuntu 22.04+ (или другой поддерживаемой ОС).
- Настраиваешь базовую безопасность (SSH, firewall, sudo).
- Устанавливаешь Docker (по желанию — для удобства).
- Ставишь GitLab CE (Community Edition) — бесплатно.
- Настраиваешь GitLab Runner для CI/CD.
- Создаёшь проект, пишешь .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. Удачи в автоматизации и пусть твои пайплайны всегда проходят с первого раза!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.