Git для развертывания небольших веб-приложений

admin

Git может использоваться не только для версионирования, но также для развертывания сервисов и приложений на производственный сервер.

Как и в случае с выкаткой при помощи SVN, существует несколько методов для более удобного и простого деплоймента на базе Git, но мы рассмотрим самый корректный и распространенный.

Git hooks

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

Но для начала на производственном сервере нужно установить git-клиент и создать необходимые директории:

cd /var

mkdir repository && cd repository

mkdir somesite.git && cd somesite.git

git init –bare
## Опция –bare обеспечивает чистую директорию без исходников

Далее необходимо создать нужный hook. В Git также есть примеры триггеров:
applypatch-msg.sample pre-push.sample

commit-msg.sample pre-rebase.sample

post-update.sample prepare-commit-msg.sample

pre-applypatch.sample update.sample

pre-commit.sample
## Хуки размещаются в дирректории .git/hooks

Подходов может быть несколько, но мы рекомендуем создать новый хук post-receive с похожим содержанием:

#!/bin/sh

GIT_WORK_TREE=/var/www/somesite.com git checkout -f

## Чекаут последней версии в существующую директорию сайта

Учтите, что скрипт может быть написан на любом понятном серверу языке, будь то Bash, Python, Ruby и т.д. Новому файлу нужно выдать необходимые разрешения:

chmod +x hooks/post-receive
## Разрешает выполнение скрипта

Далее возвращаемся к локальному репозиторию git, который будет передаваться на сервер. Системе нужно задать удаленный путь:

git remote add production ssh://root@somesite.com/var/repository/somesite.git
## Таких удаленных путей может быть несколько

Вот и все. После завершения разработки и проверки работоспособности веб-сайта (сервиса или приложения) все изменения автоматически развернутся на производственном сервере по команде:

git push production master
## Таким образом можно развернуть любую нужную ветку репозитория

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

Меры безопасности

Директория .git по умолчанию доступна всем пользователям сайта, так что ее нужно спрятать или закрыть к ней доступ для всех пользователей. Мы рекомендуем второй вариант. Для этого в файле конфигурации веб-сервера (Nginx в качестве примера) в секции http можно добавить:

location ~ /. {

deny all;

return 404;

}
## Запрет на доступ ко всем скрытым файлам

Теперь никто не сможет добраться до ваших исходников.

Самое главное

Возможно Git и не является лучшим решением для развертывания больших веб-приложения, тем более, что для этой цели существует много хороших сервисов. Но система идеально подходит для деплоймента небольшого сайта/приложения, проста в настройке и доступна даже начинающим разработчикам.

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024