由于本人比较懒,但又想实现本地一键同步GitHub和云服务器,所以设置了webhook的脚本指令来实现同步更新并上传

准备工作

  1. 一台云服务器(使用宝塔配置就行)
  2. 一个聪明头

注意事项(必看)

在配置之前必须开放端口,否则会导致配置失败,放行云服务器7777端口,宝塔安全组也要开放7777端口

  • 放行端口可使云服务器连接GitHub仓库

思维导图

本地hexo d只能是实现与GitHub的同步,所以要借助GitHub上的webhook实现与云服务器的同步

宝塔配置

使用宝塔想必大家也知道为啥,好用啊(菜鸟专用·me)

  1. 使用宝塔的软件商城,下载安装webhook
  2. 点击设置将以下代码脚本填入即可
  3. 修改脚本内容,已标gitpathgitHttp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"

#git项目路径
gitPath="/www/wwwroot/u.mr90.top"
#git要同步的仓库 网址
gitHttp="https://github.com/Rr210/Rr210.github.io.git"

echo "Web站点路径:$gitPath"

#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
#拉取最新的项目文件
sudo git reset --hard origin/master
sudo git pull origin master
#设置目录权限
sudo chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi

复制密钥和链接

  1. 打开宝塔webhook然后点击查看密钥,复制密钥链接

链接复制&前面的哦
链接复制&前面的哦
链接复制&前面的哦

配置GitHub

  1. 打开要仓库点击settings设置找到webhook
  2. 把刚刚复制的密钥和链接填入即可
  3. 点击update webhook即可
  4. 显示下图状态及配置成功

测试配置

方法一:

  1. 在本地使用hexo cleanhexo ghexo d
  2. 三连,如果想压缩后上传要使用方法二
  3. 如图所示,则配置成功,查看宝塔webhook日志

方法二:

  1. 修改文章测试
  2. 使用gulp压缩指令
  3. 配置好gulp可使用,看[gulp文章配置]
    (https://www.antmoe.com/posts/b411a3f8/index.html)
1
2
3
hexo clean
hexo g
gulp build //相当于压缩后直接hexo d