Назад | Перейти на главную страницу

Несколько репозиториев git на виртуальных хостах plesk

У каждого виртуального хоста plesk только один пользовательский доступ к каталогу httpdocs. Я хочу управлять множеством отдельных виртуальных хостов с помощью Git.

Означает ли это установку отдельного репозитория Git с отдельной комбинацией открытых ключей user / ssh для каждого виртуального хоста, или есть способ централизовать его вообще?

Гитоз звучит так, как будто это может помочь, но я не уверен, что это произойдет с распространением файлов на каждый виртуальный хост.

Обычно есть 2 способа решить эту проблему;

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

    затем вы устанавливаете post-receive hook на голом репо, чтобы обновить все httpdocs клоны этого репозитория, обычно достаточно сценария оболочки (и он может устанавливать разрешения и делать глобальные chmodна основе ваших пользователей)

    И у вас есть еще одна копия репозитория на локальном компьютере, которая отправляется на этот bareрепозиторий на сервере, который запускает перехватчики после получения и обновляет все "дочерние" репозитории в вашем httpdocsкаталоги

  2. Вы получаете .gitчасть из httpdocs (что я бы рекомендовал) и настроить репозитории в /private/home/git/myrepo (создать) папку с working tree в httpdocs

    $ git --git-dir=/var/www/vhosts/newdomain.tld/private/home/git/newdomain.tld \
    --work-tree=/var/www/vhosts/newdomain.tld/httpdocs   init  &&  \
    echo "gitdir: /var/www/vhosts/newdomain.tld/private/home/git/newdomain.tld" \
    > /var/www/vhosts/newdomain.tld/httpdocs/.git
    

    таким образом, твой httpdocs остается относительно чистым от информации о версиях (за исключением .gitФАЙЛ (не dir) создан в /var/www/vhosts/newdomain.tld/httpdocs/, который является просто способом GIT символической ссылки на working tree с расположением GITDIR)

    остальная часть процедуры такая же: пустой репозиторий, перехватчики после получения

Я лично отказался от Gitosis, gitolite и palls, потому что это слишком много накладных расходов для нескольких репозиториев. Все, что нужно - это правильно настроить удаленные ветки и сценарий оболочки (запускается обработчиком post-receive).

Еще hookна githooks (5) справочная страница