
tarampampam/webhook-tester该应用允许您使用唯一的随机生成URL测试和调试webhook及HTTP请求。您可以自定义响应码、Content-Type HTTP头、响应内容,甚至设置响应延迟。
它是webhook.site、requestinspector.com等服务的免费自托管替代方案。
!screencast
[!TIP] 演示版本可在wh.tarampamp.am访问。请注意,该演示功能有限,不持久化数据,且可能偶尔不可用,但您可以免费试用。
该应用使用Go构建以实现高性能,包含轻量级UI(基于ReactJS),已编译到二进制文件中,无需额外资源。WebSocket支持提供UI中的实时webhook通知,无需pusher.com等第三方服务!
/healthz)应用支持3种存储驱动:memory(内存)、Redis和fs(文件系统),通过--storage-driver标志配置。
WebSocket通知的发布/订阅系统支持两种驱动:memory(内存)和Redis,通过--pubsub-driver标志配置。
运行多个应用实例时,需使用Redis驱动。
使用***隧道驱动捕获来自公网的webhook请求。通过设置--tunnel-driver=***标志并提供***认证令牌(--***-auth-token)启用。启用后,应用会自动创建隧道,无需手动安装或运行***(即使在Docker中)。
通过此公网URL,您可以测试来自GitHub、GitLab、Bitbucket等外部服务的webhook,不会错过任何请求!
是否可以使用预定义(静态)webhook URL(会话),确保即使没有数据持久化也能捕获发送的请求?
可以,只需使用--auto-create-sessions标志或设置环境变量AUTO_CREATE_SESSIONS=true。在v1版本中,需在应用启动时定义会话以启用此功能;但从v2开始,只需启用此功能即可。其工作原理很简单:如果传入请求包含UUID格式的前缀(例如[***]),将自动为此请求创建会话。您只需在UI中打开该会话([***])即可。
| 镜像仓库 | 镜像地址 |
|---|---|
| GitHub Container Registry | ghcr.io/tarampampam/webhook-tester |
| Docker Hub(镜像) | tarampampam/webhook-tester |
[!NOTE] 建议避免使用
latest标签,因为主要版本升级可能包含破坏性变更。应使用X.Y.Z格式的特定标签以确保版本一致性。
从发布页面下载适用于您架构的最新二进制文件。例如,在amd64系统(如Debian、Ubuntu)上安装:
shellcurl -SsL -o ./webhook-tester [***] chmod +x ./webhook-tester ./webhook-tester start
[!TIP] 每个发布版本包含适用于Linux、Darwin(macOS)和Windows的二进制文件(支持amd64和arm64架构)。您可以从发布页面的"Assets"部分下载适合您系统的二进制文件。只需下载并运行单个二进制文件即可。
通过ArtifactHUB的Helm chart安装。
最简单的运行方式是使用Docker镜像:
shelldocker run --rm -t -p "8080:8080/tcp" ghcr.io/tarampampam/webhook-tester:2
[!NOTE] 此命令使用默认配置在8080端口启动应用(
-p参数中的第一个端口是主机端口,第二个是容器内的应用端口)。
然后,在浏览器中打开localhost:8080开始测试webhook。要停止应用,在运行它的终端中按Ctrl+C。
如需自定义配置,可参考以下CLI帮助或执行应用的--help标志。
webhook测试工具。
用法:
bash$ app [全局标志] [命令] [命令标志] [参数...]
| 名称 | 描述 | 默认值 | 环境变量 |
|---|---|---|---|
--log-level="…" | 日志级别(debug/info/warn/error/fatal) | info | LOG_LEVEL |
--log-format="…" | 日志格式(console/json) | console | LOG_FORMAT |
start命令(别名:s、server、serve、http-server)启动HTTP/HTTPs服务器。
用法:
bash$ app [全局标志] start [命令标志] [参数...]
支持的标志:
| 名称 | 描述 | 默认值 | 环境变量 |
|---|---|---|---|
--addr="…" | 监听的IP(v4或v6)地址(0.0.0.0表示绑定所有接口) | 0.0.0.0 | SERVER_ADDR、LISTEN_ADDR |
--port="…" | HTTP服务器端口 | 8080 | HTTP_PORT |
--read-timeout="…" | 读取整个请求(包括正文)的最大持续时间(0表示无超时) | 1m0s | HTTP_READ_TIMEOUT |
--write-timeout="…" | 响应写入超时前的最大持续时间(0表示无超时) | 1m0s | HTTP_WRITE_TIMEOUT |
--idle-timeout="…" | 等待下一个请求的最大时间(保活,0表示无超时) | 1m0s | HTTP_IDLE_TIMEOUT |
--storage-driver="…" | 存储驱动(memory/redis/fs) | memory | STORAGE_DRIVER |
--session-ttl="…" | 会话生存时间(TTL) | 168h0m0s | SESSION_TTL |
--max-requests="…" | 存储的最大请求数(0表示无限制) | 128 | MAX_REQUESTS |
--fs-storage-dir="…" | 本地文件系统存储目录路径(目录必须存在) | - | FS_STORAGE_DIR |
--max-request-body-size="…" | 最大webhook请求正文大小(字节,0表示无限制) | 0 | MAX_REQUEST_BODY_SIZE |
--auto-create-sessions | 为传入请求自动创建会话 | false | AUTO_CREATE_SESSIONS |
--pubsub-driver="…" | 发布/订阅驱动(memory/redis) | memory | PUBSUB_DRIVER |
--tunnel-driver="…" | 用于将本地应用暴露到公网的隧道驱动(***,空表示禁用) | - | TUNNEL_DRIVER |
--***-auth-token="…" | ***认证令牌(隧道必需;在[] | - | ***_AUTHTOKEN |
--redis-dsn="…" | Redis类(Redis、KeyDB)服务器DSN(例如redis://user:pwd@127.0.0.1:6379/0或unix://user:pwd@/path/to/redis.sock?db=0) | redis://127.0.0.1:6379/0 | REDIS_DSN |
--shutdown-timeout="…" | 优雅关闭的最大持续时间 | 15s | SHUTDOWN_TIMEOUT |
--use-live-frontend | 使用本地目录的前端而非嵌入式前端(开发时有用) | false | - |
start healthcheck子命令(别名:hc、health、check)HTTP(S)服务器的健康检查器。用途:Docker健康检查。
用法:
bash$ app [全局标志] start healthcheck [命令标志] [参数...]
支持的标志:
| 名称 | 描述 | 默认值 | 环境变量 |
|---|---|---|---|
--port="…" | HTTP服务器端口 | 8080 | HTTP_PORT |
这是开源软件,根据MIT许可证授权。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务