Webhookd
- webhookd
webhookd - 一个非常简单的 webhook 服务器,用于启动 shell 脚本。
- 开发者Nicolas Carlier
- 许可MIT
webhookd 启动一个 Web 服务器,提供 REST API。
它支持以下功能
- 通过 HTTP 请求触发 shell 脚本或可执行文件
- 将 HTTP 请求参数传递给脚本的环境上下文
- 实时流式传输执行输出
- 在执行后发送通知(电子邮件或 HTTP 请求)
- 使用 HTTP Signature 方法检查请求完整性
- 使用 Basic Auth 和 TLS 验证请求
安装
# zypper addrepo https://download.opensuse.org/repositories/home:sm0x/openSUSE_Tumbleweed/home:sm0x.repo # zypper refresh # zypper install webhookd
配置
要配置 webhookd,请更改环境变量
# /etc/default/webhookd
将新脚本添加到系统用户 webhookd 主目录中的 scripts 文件夹中
# /usr/share/webhookd/scripts
请记住,脚本必须由运行 webhookd 的用户可执行(默认:webhookd)
入门
可以使用 systemd 启动和启用该服务
# systemctl enable --now webhookd
当守护程序运行时,您可以使用浏览器通过基本的 GET 调用进行测试
# https://:8080/echo
这将触发该脚本
# /usr/share/webhookd/scripts/echo.sh
有关更多信息,请访问官方 github 页面。
故障排除
错误:exec: "/var/lib/webhookd/scripts/xxx.sh": 权限被拒绝
当用户(默认情况下为 webhookd)无权执行脚本时,会发生这种情况。要解决此问题,请为运行用户添加可执行位。例如
# chown webhook:webhook /var/lib/webhookd/scripts/xxx.sh # chmod 774 /var/lib/webhookd/scripts/xxx.sh