# Использование удаленного хостинга Git

Смотреть видеоурок

Этот сценарий удобен, если вы уже работаете с удаленным репозиторием в GitHub (github.com) или BitBucket (bitbucket.org). Вы отправляете изменения в этот удаленный репозиторий, а затем Plesk получает их из удаленного репозитория и развертывает на вашем сайте.

## Клонирования репозитория Git

Вы можете создать репозиторий Git, который будет являться клоном удаленного репозитория. Откройте страницу Сайты и домены и нажмите Git. Если вы уже создали репозитории Git для своего домена, нажмите Добавить репозиторий. Вы увидите страницу создания нового репозитория:

Прежде всего, нужно выбрать, где будет храниться ваш код. Для этого сценария выберите Удаленный хостинг Git (например, GitHub или BitBucket).

Remote Git repository. Enter the path to your remote repository in BitBucket or GitHub. You can enter it in either HTTPS or SSH format.

To connect to a private Git repository in Plesk for Linux, you can specify a username and password for the remote HTTPS repository. Alternatively, you can use an SSH key that Plesk generates (refer to Use SSH Connection for details).

Plesk for Windows does not support HTTP/HTTPS authentication. You can use the HTTP/HTTPS protocol only if a repository does not require authentication. To connect to a private Git repository, use an SSH key that Plesk generates (refer to Use SSH Connection for details).

В разделе Ваш сайт укажите следующее:

- Режим развертывания. По умолчанию используется Автоматическое развертывание. Это означает, что все изменения, переданные в репозиторий Git, будут автоматически развернуты на рабочем сайте. Если вы хотите изменить режим развертывания, нажмите ссылку автоматически развернуты и выберите другую опцию в открывшемся окне Режим развертывания. Если выбрано Развертывание вручную, вам придется вручную развертывать файлы из репозитория Git на хостинге. Если выбрано Без развертывания, файлы не будут развернуты на рабочем сайте (это можно использовать, например, для хранения и обмена кодом).

- Целевая папка для публикации файлов Git на сайте. По умолчанию используется папка `/httpdocs`. Вы можете заменить ее на другую имеющуюся папку, нажав на имя папки.

Нажмите OK. Plesk попытается установить соединение с удаленным репозиторием и клонировать его.

После того, как вы увидите в окне выполнения, что клонирование успешно завершено, новый репозиторий отобразится на странице Git.

Новый репозиторий отобразится на странице Сайты и домены > Git. В качестве имени репозитория Git будет использовано имя удаленного репозитория. Вы можете потом переименовать репозиторий (смотрите далее раздел Переименование репозитория).

Созданный репозиторий является клоном удаленного репозитория и будет использоваться для получения из него изменений и развертывания их в целевой папке.

## Использование SSH-подключения

Вы можете использовать SSH-подключение к удаленному репозиторию Git. В этом случае при добавлении нового репозитория укажите URL удаленного репозитория в формате SSH. Появится поле Открытый ключ SSH, в котором вы увидите автоматически созданный Plesk открытый ключ SSH.

Прежде чем нажать ОК на этой странице, необходимо добавить ключ SSH в настройки удаленного репозитория Git. Более подробную информацию о добавлении ключа SSH смотрите в документации к GitHub и Bitbucket.

## Получение и развертывание файлов

После записи изменений файлов вашего сайта и передачи их в удаленный репозиторий, перейдите на страницу Сайты и домены и нажмите кнопку Получить обновления возле имени репозитория. Изменения из удаленного репозитория будут получены в клонированный репозиторий Git.

Информацию о последней записи изменений можно увидеть на странице Сайты и домены > Git.

По умолчанию в Plesk используется режим Автоматического развертывания. Это означает, что как только файл передается в репозиторий, он немедленно развертывается в целевой папке (при необходимости можно отключить этот режим, смотрите далее раздел Выбрать режим развертывания).

Например, если вы получили файл `index.html` с текстом “Привет! Добро пожаловать на мой сайт!”, вы можете тут же открыть адрес сайта и увидеть изменения.

## Изменение ветки или пути

Развертывание из новой ветки

Обычно работают с несколькими ветками в одном репозитории. В каждый момент активной может быть только одна ветка. По умолчанию для развертывания используется основная ветка.

Чтобы добавить новую ветку, ее нужно создать в вашем удаленном репозитории и передать изменения. После этого вы сможете выбрать одну из двух (или более) активных веток в Plesk. Перейдите на страницу Сайты и домены > Git, нажмите Изменить ветку и путь и выберите ветку в открывшемся окне в меню Ветка.

Когда вы выберете новую ветку и нажмете ОК, Plesk покажет новую активную ветку.

Изменение пути для развертывания

По умолчанию, для публикации файлов Git на вашем сайте используется папка `/httpdocs`. Если вы хотите изменить путь для развертывания, перейдите на страницу Сайты и домены > Git, нажмите ссылку Изменить ветку и путь и выберите новую папку в открывшемся окне.

## Выбор режима развертывания

Вы можете выбрать режим развертывания для своего репозитория. Перейдите на страницу Сайты и домены > Git, нажмите Настройки репозитория и выберите одну из опций в меню Выбрать режим развертывания:

- Автоматическое развертывание. Выберите его, если хотите, чтобы Plesk сразу же разворачивал все изменения на рабочем сайте.

- Развертывание вручную. В этом случае вам придется вручную развертывать файлы, нажимая кнопку Развернуть из репозитория на странице Сайты и домены > Git. Также можно вручную развернуть файлы, нажав кнопку Развернуть возле названия репозитория на странице Сайты и домены.

- Без развертывания (хостинг репозитория). В этом случае файлы не будут развернуты на рабочем сайте. Эту опцию можно использовать, например, когда вы хотите использовать репозиторий Git только для обмена или хранения кода.

## Использование веб-хуков для автоматического получения

Для настройки уведомлений Plesk удаленным репозиторием об определенных событиях (например, передача файлов в репозиторий) можно использовать веб-хуки. Дополнительную информацию об управлении веб-хуками смотрите в документации к BitBucket и GitHub.

Адрес для веб-хука репозитория создается автоматически. Чтобы увидеть адрес для веб-хука, нажмите Настройки репозитория.

Скопируйте адрес для веб-хука, добавьте в свой удаленный репозиторий и настройте его на срабатывание при передаче данных в репозиторий. В результате каждый раз, когда файл передается в удаленный репозиторий, Plesk будет получать уведомление об этом событии и автоматически получать файлы, так что вам не придется нажимать кнопку Получить обновления. Если для репозитория настроено автоматическое развертывание, полученные файлы будут тут же развернуты на сайте.

Примечание

Если для защиты Plesk используется самозаверенный сертификат, веб-хук может не сработать при вызове через протокол HTTPS из-за проблем в подтверждении установления связей SSL/TLS. Если это происходит, укажите протокол HTTP в URL веб-хука.

## Включение дополнительных действий развертывания

Часто публикации сайта недостаточно для его полного развертывания. Например, при использовании таких платформ, как Ruby on Rails, вам может потребоваться выполнить задачу по переносу данных после развертывания с помощью подобной команды: `bin/rails db:migrate`.

В Plesk существует возможность определить дополнительные команды, которые должны выполняться каждый раз после развертывания файлов на сайте.

Перейдите на страницу Сайты и домены > Git, нажмите Настройки репозитория, выберите Включить дополнительные действия развертывания и укажите shell-команды, которые должны выполняться каждый раз после развертывания из этого репозитория. Каждую команду нужно начинать с новой строки.

Примечание

Если системному пользователю домена запрещен доступ по SSH в Linux, все указанные команды будут выполняться в chrooted-окружении. Домашняя папка системного пользователя подписки является корневой папкой файловой системы для этой подписки, и могут быть запущены только исполняемые файлы из ограниченной среды chroot. Например, если путь к вашему сайту `/var/www/vhosts/example.com/httpdocs`, то в chrooted-окружении этот путь будет `./httpdocs`, таким образом, вы не сможете выполнять команды за пределами одного уровня выше папки `/httpdocs`.

## Просмотр журналов записи изменений в репозиторий

Для просмотра всей истории записи изменений в репозиторий для текущей ветки, перейдите на страницу Сайты и домены > Git и нажмите ссылку Журналы записи изменений в репозиторий. Для каждой записи изменений показывается следующая информация: время, уникальный идентификатор, имя пользователя и сообщение о записи изменений. Нажмите Обновить, чтобы обновить журнал записи изменений.

Вы можете использовать фильтры по любому из параметров для поиска в журнале записи изменений. Например, вы можете найти все записи изменений, сделанные определенным пользователем начиная с определенной даты. Нажмите кнопку , введите параметры поиска и нажмите Поиск.

## Переименование или удаление репозитория

Вы в любое время можете переименовать репозиторий. Например, завершив развертывание, вы можете захотеть переименовать репозиторий из website-dev в website, чтобы не запутаться. Перейдите на страницу Сайты и домены > Git, нажмите Настройки репозитория, и укажите новое имя в поле Имя репозитория.

Чтобы удалить репозиторий, нажмите Удалить репозиторий на странице Git. В этом случае Plesk удалит только репозиторий, целевая папка с опубликованными данными останется.