5.8 KiB
title: WebHook Tester created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, webhook, debug, api] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/tarampampam/webhook-tester]
💻 WebHook Tester
Hookbin.com en self-hosted — un bac à sable pour inspecter, rejouer et déboguer les webhooks entrants de Stripe, GitHub, GitLab, Twilio, etc., sans envoyer d'événement en production.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | webhook-tester.tarampampam.com |
| GitHub | tarampampam/webhook-tester |
| License | MIT |
| Langage | Go |
| Étoiles GitHub | 490 ⭐ |
| Catégorie | Development, Debug & Test |
| Référence | selfh.st Development |
📝 Description
WebHook Tester est un clone self-hosted de hookbin.com / requestbin.com : il génère une URL unique (https://test.example.com/inspect/abc123) à laquelle vous faites pointer n'importe quel service tiers (Stripe, GitHub, Twilio, IFTTT, Zapier) pour capturer, inspecter et rejouer les requêtes HTTP entrantes.
Quand on développe une intégration webhook, on se retrouve souvent à devoir recevoir un callback d'un service cloud pour vérifier le payload, les headers, l'IP source, le timing. Les services publics (RequestBin, Beeceptor, Hookbin) ont des limites, des quotas, et exposent potentiellement des données sensibles en clair sur Internet. WebHook Tester résout cela : vous l'hébergez, vous gardez le contrôle des payloads capturés, et vous pouvez même rejouer un webhook vers une URL de votre choix (votre preprod par exemple).
L'interface web montre l'historique des requêtes, avec payload, headers, query string, méthode, IP, body brut — exactement ce qu'il faut pour debug un webhook Stripe qui ne se déclenche pas. Possibilité de suppression auto après X heures, de partage d'une session, et d'archivage des sessions importantes.
Cas d'usage typiques : débugger un webhook GitHub Actions qui ne fire pas, tester un paiement Stripe en mode test, valider le format d'un payload Twilio, rejouer un événement sur sa stack locale, partager une URL temporaire avec un collègue.
🚀 Installation
Via Docker (recommandé)
# docker-compose.yml
version: '3.8'
services:
webhook-tester:
image: ghcr.io/tarampampam/webhook-tester:latest
container_name: webhook-tester
restart: unless-stopped
ports:
- "8080:8080"
environment:
WT_LISTEN_ADDR: ":8080"
WT_PUBLIC_URL: "https://hook.example.com"
WT_STORAGE_TTL: "72h" # retention des sessions
WT_MAX_BODY_SIZE: "1M"
WT_LOG_LEVEL: "info"
volumes:
- wt_data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.hook.rule=Host(`hook.example.com`)"
- "traefik.http.routers.hook.entrypoints=websecure"
- "traefik.http.routers.hook.tls.certresolver=letsencrypt"
volumes:
wt_data:
Installation manuelle
# Binaire Go statique (Linux/macOS/Windows)
curl -L https://github.com/tarampampam/webhook-tester/releases/latest/download/webhook-tester_linux_amd64.tar.gz | tar xz
./webhook-tester --listen :8080 --public-url https://hook.example.com
⚙️ Configuration
- WT_PUBLIC_URL : doit refléter l'URL publique HTTPS finale (sinon les liens générés seront faux).
- WT_STORAGE_TTL : durée de rétention des sessions (défaut 72 h) — ajuster selon vos besoins RGPD.
- WT_MAX_BODY_SIZE : taille max des bodies acceptés (1 Mo par défaut, suffisant pour 99 % des webhooks).
- Reverse proxy : laisser passer
X-Forwarded-Forpour voir l'IP source réelle du webhook. - Authentification : non intégrée nativement — placer derrière un app-traefik avec BasicAuth pour restreindre l'accès à votre équipe.
🔗 Alternatives
- Hookbin.com — Le service original, public, payant pour usage pro, données exposées.
- Beeceptor — Web UI très riche, cloud uniquement, gratuit limité.
- RequestBin (Pipedream) — Service populaire, sessions jetées après 30 j, cloud only.
- Svix Play — Outil officiel Svix (infra webhook), public, simple, sans self-host natif.
- MockServer / WireMock — Plus lourds, orientés mocks REST complets plutôt que capture rapide.
🔒 Sécurité
- 🔐 HTTPS obligatoire via app-traefik : les payloads peuvent contenir des secrets, tokens API, données personnelles en clair.
- 🛡️ Authentification devant la console : activer BasicAuth (Traefik middleware) car l'outil affiche TOUT ce qui arrive — un attaquant qui trouve l'URL peut exfiltrer vos webhooks Stripe.
- 🛡️ TTL court : 24-72 h suffit pour le debug, garder les sessions sensibles moins longtemps (RGPD).
- 🛡️ Ne pas logger en prod : un webhook Stripe contient des
customer.id,email,amount— limiter l'accès aux logs. - 🛡️ Rate limiting : activer un rate-limit sur l'endpoint d'inspection pour éviter l'abus si l'URL fuite.
📚 Ressources
- Site officiel
- Documentation
- GitHub tarampampam/webhook-tester
- Selfh.st — Development
- Hookbin.com — L'original public
🔗 Pages Liées
- cat-development — Catégorie Development
- app-traefik — Reverse proxy HTTPS + BasicAuth devant l'instance
- securisation-home-lab — Bonnes pratiques de sécurité
- recettes-docker-compose — Templates Docker Compose