Webhook

Webhook 允許您透過 HTTP 請求觸發伺服器上的腳本執行,藉此實現自動化部署、CI/CD 整合等功能。
建立 Webhook
點選 建立 Webhook 按鈕並填寫以下資訊:
- 名稱:Webhook 的名稱,用於識別其用途
- 使用者: 執行指令碼的系統使用者。 應儘量使用專用的低權限部署使用者,不要預設使用 root
- 原始輸出: 啟用時直接返回指令碼輸出;關閉時返回 JSON 格式。
- 指令碼: 需要執行的 Shell 指令碼,預設提供
#!/bin/bash模板。
建立後,指令碼會作為獨立 .sh 檔案儲存在面板資料根目錄的 server/webhook 下,檔名使用生成的 Key,許可權為 0755。 刪除 WebHook 時會同時刪除該指令碼檔案。
指令碼透過 bash 執行。 設定使用者為 root 或留空時,指令碼直接以面板程序擁有者執行;選擇其他使用者時,透過 su -s /bin/bash -c 切換使用者執行,因此目標使用者必須存在並有權執行指令碼。
呼叫方式
建立後會生成唯一 Key, 通過以下地址觸發:
https://your-panel-domain/webhook/{key}GET 和 POST 請求均可觸發。 列表中的 複製 URL可以直接複製完整呼叫地址。
編輯 WebHook
點選某列的 編輯 按鈕修改現有 WebHook。 編輯對話方塊提供與建立表單相同的 名稱、使用者、原始輸出和指令碼欄位,並增加 啟用 開關,可在編輯時直接啟停。 儲存後會重寫指令碼檔案並更新配置,Key 保持不變。
列表操作
列表中的每一列提供以下操作:
| 列表操作 | 說明 |
|---|---|
| 複製 URL | 將完整的 {panel-origin}/webhook/{key} 地址複製到剪貼簿。 |
| 編輯 WebHook | 開啟編輯對話方塊。 |
| 刪除 | 確認後刪除 WebHook 及對應指令碼檔案。 |
還可以直接在列表的 啟用列開啟或關閉 WebHook。
使用場景
Git 自動部署
結合 GitHub 或 GitLab WebHook,在推送程式碼後部署:
bash
#!/bin/bash
cd /opt/ace/projects/myproject
git pull origin main
npm install
npm run build由外部系統觸發任務
刪除命令必須使用明確且經過校驗的路徑,不要直接拼接請求引數。
bash
#!/bin/bash
# 清理臨時檔案
rm -rf /tmp/cache/*
# 重啟服務
systemctl restart myappCI/CD 整合
在流水線中呼叫:
bash
curl -X POST https://panel.example.com/webhook/your-key列表欄位
| 欄位 | 說明 |
|---|---|
| 名稱 | WebHook 名稱。 |
| 金鑰 | 用於構造呼叫地址的唯一標識。 |
| 執行使用者 | 執行指令碼的系統使用者。 |
| 原始輸出 | 是否直接返回文本輸出。 |
| 啟用 | 是否允許呼叫。 |
| 呼叫次數 | 累計呼叫次數。 |
| 最後呼叫 | 最近呼叫時間。 |
| 建立時間 | WebHook 建立時間。 |
安全與故障排查
- Key 屬於敏感資訊,不要提供給不可信人員。
- 原始輸出會直接返回標準輸出; 關閉時由 AcePanel 包裝為 JSON。
- 呼叫失敗時,檢查指令碼許可權、執行使用者、路徑、環境變數、超時、退出碼和標準錯誤。 互動式 Shell 與 WebHook 的
PATH和使用者配置可能不同。 - 把請求資料用於命令前必須進行校驗,並在指令碼中加入明確的錯誤處理。
- URL 出現在程式碼倉庫、CI 日誌、聊天記錄或分析系統中時,刪除並重新建立 WebHook。
