Bunの練習に作った、GitHubのブランチpush通知をWebhookで受け取って対応するスクリプトを実行するWebアプリです。
systemdサービスとしてインストールする例です。前提として、Bunがインストールされている必要があります。
# 環境に合わせサンプル設定ファイルを編集
cp github-push-webhook-listener.service.example github-push-webhook-listener.service
cp example.env deploy.env
nano github-push-webhook-listener.service
nano deploy.env
# サービスを登録して起動
sudo chown root:root github-push-webhook-listener.service
mv github-push-webhook-listener.service /etc/systemd/system/
ln -s /etc/systemd/system/github-push-webhook-listener.service .
systemctl daemon-reload
systemctl enable github-push-webhook-listener
systemctl start github-push-webhook-listener| ファイル | 項目 | 説明 |
|---|---|---|
github-push-webhook-listener.service |
WorkingDirectory |
これをクローンしたディレクトリを設定してください。 |
github-push-webhook-listener.service |
User |
実行ユーザーを設定してください。 |
github-push-webhook-listener.service |
Group |
実行グループを設定してください。 |
github-push-webhook-listener.service |
ExecStart |
Bunのインストールパスが異なる場合調整してください。 |
deploy.env |
PORT |
待ち受けポート番号を設定してください。 |
deploy.env |
URL_PATH |
Webhookを待ち受けるURLパスを設定してください。 |
deploy.env |
WEBHOOK_SECRET |
Webhookのシークレットを設定してください。 |
deploy.env |
HOOK_SCRIPTS |
ブランチがpushされたときに実行するシェルスクリプトのペアをJSON形式で指定してください。 ブランチは <user>/<repo>:<branch>,<repo>:<branch>,<branch>のいずれかの形式で指定できます。例: {"nijiurachan/myapp:main": "/var/www/app/myapp-main/cli/update.sh"} |
環境変数はsystemctl editで設定することもできますが、JSONのエスケープが不便なのでdeploy.envファイルで設定することをお勧めします。
make formatでフォーマット、make checkで型チェックおよびリントができます。
Licensed under the MPL-2.0 by nijiurachan contributors.