ブログのドメインは未登録ですが、自分の香港のサーバーを持っていて、Github リポジトリの静的ファイルを同期するために使用できます。
これにより、Gridea のブログコンテンツが Github に同期された後、宝塔パネルの webhook によってローカルディレクトリに取得されます。
ドメインは海外で Github に解析され、国内では自分のサーバーに解析され、ウェブサイトのアクセスを高速化します。
まず、サーバーにはすでに宝塔パネルがインストールされている必要があります。私はこのパネルを使うのが習慣ですが、他の方法で webhook をインストールしても問題ありません。
宝塔パネルに webhook プラグインをインストールした後、hook を作成し、以下のスクリプトを追加します。git のアドレスを変更するだけで、他は変更する必要はありません。
#!/bin/bash
echo ""
# 現在の時間を出力
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "開始"
# 宝塔WebHookパラメータが存在するか確認
if [ ! -n "$1" ]; then
echo "paramパラメータエラー"
echo "終了"
exit
fi
# gitプロジェクトパス
gitPath="/www/wwwroot/$1"
# git URL
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 "終了"
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 "終了"
exit
fi
保存後、キーを表示するには、以下のようにクリックします:
宝塔WebHook使用方法:
GET/POST:
http://サーバーip:ポート/hook?access_key=HOOKキー¶m=aaa
@param access_key string HOOKキー
@param param string カスタムパラメータ(hookスクリプト内で$1で受け取ります)
== 注意:貼り付ける前に URL の最後の aaa をあなたの宝塔に対応する静的ブログのディレクトリ名に変更してください ==
例えば、私のウェブサイトパスが wwwroot/blog の場合、==aaa== を ==blog== に置き換えます。
置き換えないと、あなたのサーバーのルートディレクトリに aaa ディレクトリが作成されます。サイトのディレクトリを aaa ディレクトリに変更することもできます。
上記の自動生成されたリンクをコピーし、Github の webhook 設定に貼り付けます。
コンテンツタイプを ==json== に選択し、secret は webhook の一連のキーです。コピーして貼り付け、他はデフォルトのまま、保存して提出します。
その後、Gridea でブログを更新し、Webhook のログを確認し、ディレクトリにファイルがあるかどうかを確認することで、同期が成功したかどうかを確認できます。
Github のリポジトリコードが更新されると、git の webhook(git web フック)が push イベントをトリガーします。ユーザーがコードを提出(git push)すると、サーバーの宝塔 webhook プラグインが現在の git の最新コードを取得(git pull)します。
== 注意:== アリババクラウドの国内サーバーで webhook を使用して Github リポジトリを取得するのは頻繁に失敗します。