博客域名没有备案,而自己有香港的服务器,可以用来同步Github仓库的静态文件。

这样就可以让Gridea的博客内容,同步到Github后,再被宝塔面板的webhook拉取到本地目录。
域名国外解析到Github,国内解析到自己的服务器,实现网站的访问加速。

首先服务器上需要已经安装了宝塔面板,我习惯用这个面板,其他方式安装webhook也没问题。

宝塔面板安装webhook插件后,创建一个hook,添加下面的脚本,只需要修改git地址,其他的不用改。

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ]; then
                echo "param参数错误"
        echo "End"
        exit
fi
#git项目路径
gitPath="/www/wwwroot/$1"
#git 网址
gitHttp="https://github.com/xxxxx.git" #只需要修改成仓库的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
        echo "拉取最新的项目文件"
        sudo git reset --hard origin/master
        sudo git pull        
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
                echo "新建项目目录"
        mkdir $gitPath
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp gittemp
                sudo mv gittemp/.git .
                sudo rm -rf gittemp
        fi
        echo "拉取最新的项目文件"
        sudo git reset --hard origin/master
        sudo git pull
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
fi

保存后,点击查看密钥,如下:

宝塔WebHook使用方法:
GET/POST:
http://服务器ip:端口/hook?access_key=HOOK密钥&param=aaa
@param access_key string HOOK密钥
@param param string 自定义参数(在hook脚本中使用$1接收)

注意粘贴前把网址最后的aaa换成你的宝塔对应静态博客的网站的目录名
例如我的网站路径 wwwroot/blog,就把aaa替换成blog
如果不替换的话,会在你的服务器根目录创建一个aaa目录,你把站点目录修改为aaa目录,也可以。

复制上面自动生成的链接,粘贴到Github的webhook设置
544a24a32d1aa

内容类型选择json,secret就是webhook的一串密钥,复制过去粘贴,其他默认,保存提交。

然后去Gridea提交更新博客,再看Webhook的日志,再检查目录下有没有文件就能看到是否同步成功了。

当Github的版本库代码更新时,通过 git 的 webhook(git web 钩子)触发 push 事件。用户提交代码(git push)服务器的宝塔 webhook 插件拉取当前 git 最新代码(git pull)

==注意:==阿里云国内服务器使用webhook拉取github仓库经常失败。