面向中小企业的轻量无 Agent 运维平台,涵盖主机管理、批量执行、在线终端、应用发布与监控告警。
adnanh/webhook
一个用 Go 编写的轻量服务,可为 HTTP 请求创建端点,触发并执行配置好的 shell 命令。
- Star
- 12,207
- Fork
- 882
- 未关闭 Issue
- 128
- 最近提交
- 2个月前
这是什么?
webhook 是一个用 Go 编写的轻量工具,可以把传入的 HTTP 请求转换为 shell 命令的执行。你在 JSON 或 YAML 文件中定义钩子,每个钩子的 ID 会成为一个端点,例如 /hooks/redeploy-webhook。请求到达时,webhook 会解析请求头、载荷和查询参数,检查你设置的触发规则,再以命令行参数或环境变量的形式把数据传给脚本。
触发规则可以限定钩子何时执行,例如要求携带密钥、载荷中的值需要匹配,或只允许特定 IP 段访问。钩子还支持 Go 模板配置、HTTPS、反向代理后部署(TCP 端口或 Unix socket),并可通过 systemd socket 激活启动。对 multipart 表单数据提供有限支持。
webhook 的职责仅限于接收请求并调用命令,脚本本身的行为由使用者负责。
核心功能
- 01通过 JSON 或 YAML 定义钩子,每个钩子对应一个 HTTP 端点。
- 02将请求头、载荷和查询参数以参数或环境变量形式传递给命令。
- 03支持密钥匹配、IP 白名单等触发规则。
- 04支持 HTTPS,并可通过 TCP 端口或 Unix socket 部署在反向代理之后。
- 05支持 systemd socket 激活和 Go 模板格式的配置文件。
适用场景
- 在 GitHub 或 Bitbucket 推送代码后自动执行重新部署脚本。
- 通过 Slack 或 Mattermost 的斜杠命令触发服务器上的构建或运维任务。
- 让聊天工具集成调用服务器命令并返回执行结果。
快速上手
- 1
使用 Go 1.21 或更新版本从源码构建
go build github.com/adnanh/webhook - 2
创建 hooks.json 文件定义钩子
- 3
使用 hooks 文件并以详细模式启动 webhook
/path/to/webhook -hooks hooks.json -verbose
使用前须知
- 钩子会在服务器上执行 shell 命令,因此应配置触发规则和密钥以防止未授权执行。
- 在反向代理后面运行时,IP 白名单规则无法按预期工作。
收录于专题
标签
常见问题
- webhook 是什么?
- 一个用 Go 编写的轻量服务,可为 HTTP 请求创建端点,触发并执行配置好的 shell 命令。 webhook 是一个用 Go 编写的轻量工具,可以把传入的 HTTP 请求转换为 shell 命令的执行。你在 JSON 或 YAML 文件中定义钩子,每个钩子的 ID 会成为一个端点,例如 /hooks/redeploy-webhook。请求到达时,webhook 会解析请求头、载荷和查询参数,检查你设置的触发规则,再以命令行参数或环境变量的形式把数据传给脚本。
- webhook 可以免费使用吗?用的什么许可证?
- webhook 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- webhook 还在维护吗?
- 半年内有更新。webhook 最近一次提交是在 2026年9月4日。
- webhook 适合用来做什么?
- 在 GitHub 或 Bitbucket 推送代码后自动执行重新部署脚本。 通过 Slack 或 Mattermost 的斜杠命令触发服务器上的构建或运维任务。 让聊天工具集成调用服务器命令并返回执行结果。
- webhook 怎么安装和运行?
- 使用 Go 1.21 或更新版本从源码构建: go build github.com/adnanh/webhook 创建 hooks.json 文件定义钩子 使用 hooks 文件并以详细模式启动 webhook: /path/to/webhook -hooks hooks.json -verbose
- 在哪里获取 webhook?
- 源代码和安装说明在 GitHub 上:https://github.com/adnanh/webhook
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一款可自托管的 CI/CD 引擎,基于容器运行配置文件定义的流水线,并支持插件扩展。
一个 GitHub Action,可在 CI/CD 工作流中通过 SSH 在远程服务器上执行命令。
自托管的 Web 部署系统,支持一键发布与回滚代码,并集成终端、SFTP、定时任务和服务器监控。
一款自托管的 Web 应用,用于在自有服务器上配置、管理并部署 PHP 应用(如 Laravel)。
面向 AWS Lambda 的极简命令行部署工具,支持部署、回滚、调用、查看日志和比对差异。