将Github webhook配置为Digital Ocean

时间:2016-09-02 20:47:32

标签: github lamp digital-ocean webhooks

好的,我按照以下指南配置了数字海洋液滴:

  • 使用Ubuntu 16.04进行初始服务器设置
  • 在Ubuntu 16.04上安装LAMP堆栈
  • 使用let加密来保护apache

总结:我有一个LAMP服务器,我有一个指向我的LAMP服务器的域,它现在是https,我可以使用我创建的帐户(不是root)进入它,并且它具有启用UFW的功能。

目标: 我想从github设置一个webhook,这样当事物被合并到master中时,会被转发到droplet。

配置:

我的webroot位于:/var/www/domain-name.com/public_html

  • 我可以确认当我在其中放入index.html文件时,它可以正常工作

我在github repo和我的DO服务器之间有一个有效的ssh连接。

  • id_rsa和id_rsa.pub位于我服务器的~/.ssh(这是我的用户,而不是root,如果这很重要的话)。
  • Github确认此连接有效(绿色)

它崩溃的地方:

这是两种截然不同的方法。但实质上,有人说使用deploy.php文件而另一个说不同配置使用webhook.php。它们看起来彼此截然不同。实质上,我将它们加载到服务器上,配置它们(例如 - 更改路径等),然后将github指向它们。

在两种情况下,github都会看到它们(它会变成绿色的)。但在这两种情况下,我都无法让他们真正工作。我通过将更改从localhost推送到github进行测试,并将其合并到master(也尝试直接提交到master以防万一)。我没有得到任何服务器端,没有变化。我应该提一下,开始我用一个git克隆将repo放到我的服务器上(确保我使用ssh而不是https)。此外,我的服务器已配置为知道我的git用户名和电子邮件。

最后,我应该补充一点,我使用的两个指南似乎都希望我对www-data采取行动,但它们并没有描述为什么甚至如何。他们告诉我运行的一些命令实际上并不起作用。此外,Portent指南要求我将.ssh键保存在一个奇怪的位置(在我看来,我几乎认为这是一个错误)。

结论/要求:

  • 是否有一个很好的指南来完成我想要的事情
  • 如果没有这个,是否有一个开始调试的好地方(我在github中看到这些钩子事件是绿色的并认为它们正在工作(?)。
  • 理想情况下,是否有任何人可以推荐的简单步骤可以帮助我做到这一点。

谢谢。我非常接近于开发网站的更实用的方法。很想得到最后一件作品。你能提供的任何帮助都会令人惊叹。

很抱歉没有数字海洋文档的链接,作为一个新手,我只限于两个链接。

1 个答案:

答案 0 :(得分:0)

我最终选择了什么:

第1步

通过Digital Ocean设置带有SSL加密的Ubuntu 16.04 x64 Droplet

总结 - 您现在已经完全配置了数字海洋水滴。

第2步

通过SSH - 配置Droplet

.ssh中创建一个/var/www目录并授予www-data用户权限:

sudo mkdir /var/www/.ssh

sudo chown www-data /var/www/.ssh

将用户切换到www-data:

sudo -u www-data bash

cd /var/www/.ssh

生成一个ssh密钥对,用于连接您的服务器(通过www-data)和您的Github项目:

ssh-keygen -t rsa -C "IDENTIFY THE KEY BY REPO"

我也想将其命名为id_rsa_REPONAME.pub,以便更容易识别密钥对

cat id_rsa_REPONAME.pub

复制并将其粘贴为Github Repos设置中的部署密钥。

您还需要将此密钥对添加到config文件

vim config将创建或允许您编辑此文件(如果该文件已存在)。您需要此配置来帮助您的服务器匹配来自github的传入ssh请求。

添加代码块:

Host REPONAME github.com Hostname github.com IdentityFile /var/www/.ssh/id_rsa_REPONAME

保存并退出。

ssh -T git@github.com

应输出Hi YOURGITUSERNAME/REPONAME! You've successfully authenticated, but GitHub does not provide shell access.

这确认了github可以找到特定的部署密钥。您还可以在github端看到它以绿色突出显示。

exit(这会使您退出www-data并返回到您的用户帐户)

chown www-data:www-data /the/path/to/public_html

切换回www-data进行repo的初始克隆:

sudo -u www-data bash

cd /the/path/to/public_html

克隆之前

确保您的回购根

中有一个名为githubdeploy.php的文件

<?php `git pull`;?>

git clone THE_REPO_SSH_URL

exit(这会使您退出www-data并返回到您的用户帐户)

在Github上:

将githubdeploy.php的url路径添加为Github Repos设置中的webhook。

DONE