Как организовать деплой сайта без докера на хостинг с помощью хуков github или bitbucket?

Для организации деплоя сайта без использования Docker на хостинге с помощью хуков GitHub или Bitbucket, вам потребуется следующий набор инструментов и настроек.

1. Настройка хостинга:
- Выберите хостинг-провайдера, который поддерживает Git-репозитории и предоставляет возможность установки пользовательских хуков. Некоторые из таких провайдеров включают Heroku, AWS Elastic Beanstalk, DigitalOcean.
- Создайте аккаунт на выбранном провайдере и создайте новый проект или приложение.

2. Создание Git-репозитория:
- Создайте новый репозиторий на GitHub или Bitbucket.
- Склонируйте репозиторий себе на локальную машину с помощью команды git clone <URL репозитория>.

3. Настройка хука на хостинге:
- Установите новый хук-скрипт на хостинге, который будет запускаться при обновлении репозитория.
- В этом скрипте можно указать действия, которые должны выполняться при каждом обновлении репозитория, например, обновление веб-сервера или перезапуск службы.
- Самый распространенный способ создания хука - использование специальных файлов-хуков, указываемых в директории .git/hooks/ в репозитории.

4. Настройка автоматического деплоя:
- Создайте файл конфигурации деплоя, обычно называемый deploy.sh или app.yml и разместите его в корневом каталоге вашего проекта.
- В этом файле указываются команды, необходимые для развертывания вашего приложения на хостинге, включая установку необходимых зависимостей и запуск приложения.
- Пример deploy.sh файла:

     #!/bin/bash

     # Обновление репозитория
     git pull origin master

     # Установка зависимостей
     npm install

     # Запуск приложения
     npm start

- Подготовьте файл deploy.sh для выполнения команд:

     chmod +x deploy.sh

5. Подключение хука на репозитории:
- В корневой директории репозитория создайте директорию .git/hooks/.
- Скопируйте файл deploy.sh в директорию .git/hooks/ и переименуйте его в post-receive.

     cp deploy.sh .git/hooks/post-receive

- Убедитесь, что файл post-receive доступен для выполнения команд:

     chmod +x .git/hooks/post-receive

- Каждый раз, когда будет выполняться git push в репозиторий, хук автоматически выполнит команды из файла post-receive, что приведет к автоматическому деплою вашего сайта на хостинге.

В результате, при каждом обновлении вашего репозитория на GitHub или Bitbucket, хук на хостинге будет запускать команды из файла post-receive, что позволит вам автоматически развернуть ваш сайт на хостинге.