Простой деплой сайта
При разработке сайтов часто встаёт задача наладить автоматическую выгрузку файлов сайта на веб-сервер.
У нас имеется локальный сайт, гит-репозиторий, удалённый сервер с дебиан-подобным линуксом.
Необходимо опредилиться с веткой, которая будет закачиваться на сервер где лежит сайт, в нашем примере ветка будет дефолтная master
. Всё что попадёт в неё в Гите, будет выгружено на сервер.
На сервере сайт лежит в папке:
~/test1.lisovv.beget.tech/public_html
Если на сервере не установлен гит, устанавливаем:
sudo apt-get install git
Переходим в директорию сайта:
cd ~/test1.lisovv.beget.tech/public_html
Клонируем репозиторий в папку с сайтом, из-за особенностей Гита она должна быть пустая:
git clone АДРЕС_РЕПОЗИТОРИЯ
Переключаемся на нашу ветку:
git checkout master
Теперь можно при помощи команды обновлять сайт:
git pull
Автоматизируем процесс
Настроим выполнение команды git pull
раз в минуту по крону, для этого создаём скрипт обновления:
nano ~/test1.lisovv.beget.tech/deploy.sh
Вставляем в него следующий код:
#!/bin/bash
cd ~/test1.lisovv.beget.tech/public_html
git pull origin master
Делаем файл испонительным:
chmod +x ~/test1.lisovv.beget.tech/deploy.sh
Добавляем скрипт в крон:
crontab -e
В конец файла вставляем код:
* * * * * ~/test1.lisovv.beget.tech/deploy.sh
Теперь пушите ваш код в ветку master
на локальном хосте, он автоматически зальется на удалённый сервер.