Deploying Webhook Tester
Introduction
Webhook Tester is a self-hosted tool for inspecting, debugging, and testing webhooks and HTTP callbacks. When developing integrations with third-party services, you often need to see exactly what data is being sent to your endpoints. Webhook Tester captures all incoming requests and provides a clean interface to examine headers, body content, and query parameters.
This is invaluable for development and debugging scenarios where you need to understand the exact payload format from services like payment processors, CI/CD pipelines, or notification systems.
Key features of Webhook Tester include:
- Request Capture: Automatically capture all incoming HTTP requests
- Request Inspection: View headers, body, query parameters, and metadata
- Multiple Endpoints: Create unique endpoints for different webhook sources
- Request History: Browse previously received requests
- Replay Functionality: Resend captured requests for testing
- JSON Formatting: Automatic formatting of JSON payloads
- Real-Time Updates: See new requests as they arrive
- No External Dependencies: Self-contained with no external services required
- Privacy-Focused: All data stays on your server
This guide walks you through deploying Webhook Tester on Klutch.sh using Docker for webhook debugging.
Prerequisites
Before deploying Webhook Tester on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Basic familiarity with Docker concepts
Repository Structure
Create a GitHub repository with the following structure:
webhook-tester-deploy/├── Dockerfile└── .dockerignoreDockerfile
Create a Dockerfile in your repository:
FROM tarampampam/webhook-tester:latest
# Web interface portEXPOSE 8080
# The base image handles the entrypointEnvironment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
LISTEN_ADDR | No | 0.0.0.0 | Listen address |
LISTEN_PORT | No | 8080 | Listen port |
MAX_REQUESTS | No | 128 | Maximum requests to store per session |
SESSION_TTL | No | 168h | Session time-to-live |
AUTO_CREATE_SESSIONS | No | true | Auto-create sessions on first request |
BROADCAST_DELAY | No | 100ms | Delay for broadcasting updates |
Deployment on Klutch.sh
- Push your Dockerfile to your GitHub repository.
- Log in to Klutch.sh and create a new project.
- Create a new app within your project and connect your GitHub repository containing the Dockerfile.
- Configure the deployment settings: - Select **HTTP** as the traffic type - Set the internal port to **8080**
- Add environment variables (optional): - `MAX_REQUESTS`: Adjust based on your testing needs - `SESSION_TTL`: How long to keep sessions
- Click **Deploy** and wait for the build to complete.
- Access your Webhook Tester instance at the provided URL.
Usage
Creating Webhook Endpoints
- Navigate to your Webhook Tester URL
- Create a new session or use an auto-generated one
- Copy the unique webhook URL
- Configure your third-party service to send webhooks to this URL
Inspecting Requests
When requests arrive, they appear in the interface showing:
- Request method (GET, POST, PUT, etc.)
- Headers
- Query parameters
- Request body
- Timestamp
Testing Integrations
Use Webhook Tester during development to:
- Verify payload formats
- Debug authentication issues
- Test error handling
- Document webhook formats
Troubleshooting
Requests Not Appearing
Verify the webhook URL is correctly configured in the sending service. Check that requests are being sent to the correct session endpoint.
Sessions Expiring
Adjust the SESSION_TTL environment variable to keep sessions longer if needed.