前言
我的Hexo
并没有直接部署在本地机器或者VPS
上,而是通过Cloud Studio => 腾讯开发者平台(原coding) => VPS
这样的流程来更新博客,这就导致每次改动博客或更新博文变得很繁琐,所以我决定用WebHook
来精简流程,即Cloud Studio => VPS
,本文为过程记录。
WebHook
维基百科
网页开发中的网络钩子(Webhook)是一种通过自定义回调函数来增加或更改网页表现的方法。这些回调可被可能与原始网站或应用相关的第三方用户及开发者保存、修改与管理。术语“网络钩子”由杰夫·林德塞(Jeff Lindsay)于2007年通过给计算机编程术语“钩子”(Hook)加上前缀得来。
原理图
宝塔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
处(github
、gitee
同理)。
http://宝塔面板地址:端口/hook?access_key=密钥
至此,每当你push
更改到你的博客远程仓库,VPS
都会自动同步。
注意事项
- 最好不要开启
面板SSL
,WebHook
容易出现证书错误等问题。 - 要用
ssh
的方式连接远程仓库,如果是https
的方式,在git pull
的时候需要提供帐号密码。