Как настроить автоматическое развертывание с помощью Git на VPS

    Команда Simple-Server
    03.06.2026
    5 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

    Чтобы установить Git на Ubuntu, сначала откройте терминал, нажав Ctrl + Alt + T, или найдите и запустите терминал через поиск Ubuntu. Далее через sudo или под пользователем root обновите каталог пакетов:

    и введите свой пароль, когда система запросит его. Теперь установите Git, выполнив следующее:

    Подтвердите установку, нажав клавишу Y, и нажмите Enter. После завершения установки проверьте версию Git, чтобы убедиться, что установка прошла успешно:

    Эта команда должна вернуть версию Git, например:

    Также рекомендуется настроить ваше имя пользователя и email, что нужно для корректной работы с Git. Делается это следующим образом:

    git config --global user.name "My name" git config --global user.email "my_mail@mysite.ru"

    Замените My name и my_mail@mysite.com на ваше реальное имя и email. Чтобы проверить правильность настроек, введите:

    git config --global user.name git config --global user.email

    Каждая строка должна вернуть соответствующее значение, которое вы указали для имени и email. Готово! Теперь у вас есть установленный и настроенный Git.

    Шаг 2. Настраиваем сервер

    Допустим, у нас есть рабочее пространство с определенной директорией (путь: /``var/www/mysite.ru) и репозиторием (путь: /var/repo/mysite.git). Наша задача запушить mysite.git, но при этом обеспечить доступ к /var/www/mysite.ru. Залогиньтесь на своем VPS и введите в командной строке:

    cd /var && mkdir repo && cd repo && mkdir mysite.git && cd mysite.git && git init --bare

    Обратите внимание на флаг --bare, который необходим, чтобы исключить добавление исходников в директорию: там будет исключительно контроль версий нашего ПО.

    Шаг 3. Устанавливаем хуки

    В репозитории вы найдете директорию, она называется hooks. Там содержатся файлы с примерами хуков, используемые для индивидуальной настройки. Задачи хуков заключаются в том, чтобы автоматизировать некоторые типичные процедуры. Здесь стоит заметить, что в ряде инструкций по Git в сети встречается название «крючки», что представляет собой дословный перевод этого слова с английского. Но такой перевод некорректен, и правильно говорить и писать именно «хуки». Согласно документации разработчиков сервиса, основных хуков 3:

    • pre-receive исполняется после получения push,
    • update же действует похожим образом, однако его отличие в том, что он исполняется единожды для каждой ветки проекта,
    • наконец, post-receive исполняется после полного завершения push.

    Давайте настроим необходимый нам в данной инструкции post-receive. Для начала открываем список каталогов:

    и переходим в каталог хуков:

    Далее создаем собственно post-receive, вот так:

    Приведенная ниже команда создаст файл и запишет в него:

    #!/bin/sh git --work-tree=/var/www/mysite.ru --git-dir=/var/repo/mysite.git checkout -f

    После этого сохраняем наш ввод комбинацией Ctrl + D. Добавим, что если вы хотите установить иную директорию для переноса файлов, используйте флаг --work-tree, как в инструкции выше. А на этом хуки для работы можно считать установленными: в нашем примере добавленный хук будет контролировать размещение в /var/www/mysite.ru после завершения отправки.

    Шаг 4. Создаем локальный репозиторий

    Сначала нам нужно разлогиниться на сервере:

    Теперь создаем локальный репозиторий на своем ПК.__ Открываем терминал (в Linux) или командную строку (в Windows). Переходим в папку, где хотим создать свой локальный репозиторий, используя команду cd, а затем вводим git init, чтобы инициализировать Git репозиторий в текущей папке. Эта команда создаст в каталоге скрытую папку .git, которая будет содержать все необходимые файлы и данные для работы с Git.

    После этого настраиваем директорию для репо (замените путь, указанный после ssh://, на свой):

    git remote add live ssh://login@host/var/repo/mysite.git

    Заметьте, что путь должен вести именно на репо. Далее создаем файл:

    echo 'Hello, world' > hello.txt git commit -m "Готовый проект"

    Точка означает добавление всех файлов, а -m (сокращение от message) необходим для добавления сообщения. Теперь давайте запушим всё на сервер в мастер-ветку:

    Шаг 5. Создаем бета-репозиторий

    Не всегда хочется выполнять развертывание сразу: в некоторых случаях необходимо сначала провести тесты. Для этого снова логинимся на выделенном сервере и создаем такую директорию и репо:

    cd /var/repo && mkdir beta.git && cd beta.git && git init --bare

    Далее добавляем знакомый хук:

    cd hooks && cat > post-receive #!/bin/sh git --work-tree=/var/www/mysite.ru --git-dir=/var/repo/mysite.git checkout -f

    Теперь сохраняем наш ввод комбинацией Ctrl + D, а затем настраиваем разрешения, необходимые для исполнения файла, следующей инструкцией:

    Настраиваем еще одну директорию (замените путь, указанный после ssh://, на свой):

    git remote add beta ssh://login@host/var/repo/beta.git

    Готово. Теперь перед развертыванием можно сначала запушить бету:

    echo 'Hello, world' > hello.txt git add . git commit -m "Новая версия" git push beta master

    А уже затем можно развернуть и «боевой» вариант.

    Мы научились устанавливать Git, настраивать сервер, устанавливать хуки, а также создавать репозитории: локальный и бета для тестирования. Автоматическое развертывание Git на VPS значительно облегчит вам работу над проектом.

    Также стоит добавить, что существуют и другие методы развертывания, в частности, без установленного Git на сервере, но при этом ПО должно быть развернуто на локальной машине, поэтому тем, кто предпочитает работать полностью в облаке, такой способ не подойдет. На этом всё, желаем успехов!


    Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация? Посмотрите все доступные тарифы

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны