Authors: Justin Karneges justin@fanout.io, Katsuyuki Ohmuro harmony7@pex2.jp
WebhookInbox is a web service and website that receives HTTP requests from external sources and stores the data of those requests for later retrieval. Each inbox is represented by a generated URL, which can be passed to other applications for use. If you're developing a service that makes HTTP callbacks, WebhookInbox can be used as a convenient way to examine what you're sending. Incoming request data is displayed on the WebhookInbox website in realtime as it happens. There is also a REST API available, meaning WebhookInbox can be used programmatically, for example by a browser app wishing to receive HTTP callbacks.
There is an instance of WebhookInbox running at http://webhookinbox.com/ for anyone to use.
WebhookInbox is offered under the MIT license. See the COPYING file.
- Redis
- Pushpin (optional, for realtime updates)
WebhookInbox is a Django application. Set it up with virtualenv like this:
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
Run the server:
python manage.py runserver
Browse to http://localhost:8000/ and enjoy!
To enable realtime updates, install the Pushpin proxy server. By default, Pushpin listens on port 7999 for client requests and 5561 for control requests.
Create a .env file in the webhookinbox base directory, to hold environment variables. Add GRIP_URL and WHINBOX_API_BASE to this file:
GRIP_URL=http://localhost:5561
WHINBOX_API_BASE=http://localhost:7999/api
Make sure the Pushpin routes file is configured to route to port 8000 and use Auto Cross-Origin. You should have a line in the routes file like this:
*,aco localhost:8000
WebhookInbox has a cleanup command that should be run once per minute, to prune items and inboxes, and also to timeout requests that were expecting custom responses.
You can run the command at anytime like this:
./cleanup.sh
The above command takes 50 seconds to execute, as it runs the cleanup process 6 times with a 10-second delay between each cleanup.
Stick it in cron:
* * * * * cd /path/to/webhookinbox && ./cleanup.sh >/dev/null 2>&1
These commands will bring up an App container, a Pushpin container and the Redis container.
Browse to http://localhost:7999 to use application.
docker-compose build --build-arg TARGETPLATFORM=linux/amd64
docker-compode up -d