前言

  我的Hexo并没有直接部署在本地机器或者VPS上,而是通过Cloud Studio => 腾讯开发者平台(原coding) => VPS这样的流程来更新博客,这就导致每次改动博客或更新博文变得很繁琐,所以我决定用WebHook来精简流程,即Cloud Studio => VPS,本文为过程记录。

WebHook

维基百科

  网页开发中的网络钩子(Webhook)是一种通过自定义回调函数来增加或更改网页表现的方法。这些回调可被可能与原始网站或应用相关的第三方用户及开发者保存、修改与管理。术语“网络钩子”由杰夫·林德塞(Jeff Lindsay)于2007年通过给计算机编程术语“钩子”(Hook)加上前缀得来。

原理图

1.png

宝塔WebHook

  我对WebHook本身并没有兴趣,也不想去手动实现,这里我用的是宝塔面板所集成的插件,非常简单方便,避免各种折腾。
  首先在软件商店处安装宝塔WebHook,然后点编辑将以下shell代码复制粘贴进去(可根据需求修改):

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"

#此处填写你的web站点路径,即博客在VPS的存放路径
gitPath="/www/wwwroot/..."

echo "Web站点路径:$gitPath"

#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        git pull origin master
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

  然后点查看密钥将密钥组成以下格式,并复制粘贴到腾讯云开发者平台(原coding)WebHook处(githubgitee同理)。

http://宝塔面板地址:端口/hook?access_key=密钥

  至此,每当你push更改到你的博客远程仓库,VPS都会自动同步。

2.png

3.png

注意事项

  • 最好不要开启面板SSLWebHook容易出现证书错误等问题。
  • 要用ssh的方式连接远程仓库,如果是https的方式,在git pull的时候需要提供帐号密码。
如果觉得我的文章对您有用,请我喝一杯咖啡吧,您的鼓励就是我的动力,感谢~
  留言