Подтвердить что ты не робот

Нажатие GitHub на веб-сервер

Я хочу переместить все мои сайты в GitHub для всех очевидных преимуществ. Я не большой поклонник командной строки, поэтому мне нравится GitHub, потому что это позволяет мне не касаться всего этого. Настройка репозитория на GitHub, а затем синхронизация его с моим компьютером достаточно проста. Мне нужно иметь возможность автоматически переходить от GitHub к веб-серверу, поэтому, когда я обновляю что-то локально в главном ветки, синхронизируйте его с GitHub, он переходит в прямом эфире на сайт. Из Googling объекта кажется, что большинство методов требуют командной строки или кажутся довольно сложными. Я хочу сделать это примерно с 15-20 сайтами (многие из которых размещены на разных серверах от разных клиентов). Я хочу найти вариант, который входит в мой набор навыков и не занимает 2-3 часа на сайт. Кто-нибудь знает лучший и самый простой способ настроить это?

4b9b3361

Ответ 1

Сложная часть - это webhook на GitHub

Каждый репозиторий GitHub имеет возможность обмениваться данными с веб-сервером всякий раз, когда репозиторий перенаправляется.

Это означает, что на вашем веб-сайте должен быть процесс прослушивания этих сообщений JSON, отправленных GitHub после получения фиксации.

Вы можете увидеть несколько примеров этих слушателей, например webhook-deployer, с auto.php(для php-сервера):

<?php

 // Prevent accidental XSS
 header("Content-type: text/plain");

 // Run the script 
 if ( $_POST['payload'] ) {
  shell_exec("./pull.sh");
}

Этот проект GitHub рекомендует использовать SSH-ключ без кодовой фразы, с которым я согласен сначала (чтобы проверить его).
Однако, особенно для частных проектов, лучше всего запускать ssh-agent и управлять защищенной парольной фразой ssh. Как janos комментарии:

  • Если репозиторий GitHub является общедоступным, то он даже не нужен.
  • Если репо является приватным, то он нуждается в нем, но это не следует воспринимать так легко. Если возможно, он должен использовать ключевой агент.
    Если это слишком сложно, он может использовать выделенный SSH-ключ без кодовой фразы только для этого развертывания, и этот ключ никогда не должен покидать ПК развертывания.

Ответ 2

Я знаю, что этот билет старый, но для тех, кто это как-то находит, checkout dploy.io. Это размещенная служба, созданная специально для развертывания вашего репо из GitHub/Bitbucket на ваш сервер. Он поддерживает команды SFTP/FTP/S3/Heroku/SSH и т.д.

Отказ от ответственности: я работаю над dploy.io

Ответ 3

Возможно, вы захотите взглянуть на этот PHP скрипт:
https://github.com/JohannesHoppe/easy-git-deploy
(Он выполняет git клон, git pull, git нажмите для вас)

С нескольких лет я управляю всеми установками wordpress с помощью script.

Совет. Если вы используете среду совместного размещения, то ограничения script могут прервать первое выполнение. В этом случае войдите в систему через SSH и выполните первый клон вручную:

git clone 'https://user:[email protected]//github.com/user/repo.git'

Здесь вы также можете вручную подтвердить отпечаток пальца SSH.

Второй совет:. Вы должны защитить каталог файлом .htaccess/.htpasswd.