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。
