Skip to content

kyledayton/requesthub

Repository files navigation

RequestHub

Receive HTTP requests, display them in your browser, and forward them to other URLs.

RequestHub is an open source project inspired by RequestBin

RequestHub

Overview

I originally developed this to help test and debug webhook systems, but it later found use in our organization to maximize our limited pool of public IPs. We map all of our external service webhooks to one IP, and forward them to internal testing servers. I thought others would have a use for something like this, so I decided to release it as open source software.

Installation

Install
$ go get github.com/kyledayton/requesthub/...
Run
$ export PATH=$PATH:$GOPATH/bin
$ requesthub

This will start the server on port 54321.
There are also a few command line options available:

$ requesthub -h
Usage of requesthub:
  -config="": YAML Configuration File
  -noweb=false: Disable the web UI
  -p=54321: which port to bind to
  -password="": HTTP Basic Auth Password for accessing hub
  -r=256: max requests to store
  -username="": HTTP Basic Auth Username for accessing hub

Note: To Enable Basic Auth, you must specify both username and password.

Usage

Open http://localhost:54321 in your browser. The index page shows a list of your hubs, and a form for creating a hub. Create a hub and it will redirect you to the hub requests page.

To send requests to the hub, send any HTTP request to http://localhost:54321/<HUB_NAME>

The hub requests page shows stored requests sent to the hub. There is a clear button, which will delete all stored requests in the hub. In addition, there is a form for setting the forwarding URL of the hub. Setting a URL and clicking 'Update URL' will forward any incoming requests to the hub into the specified URL.

Configuration

RequestHub can create default hubs on startup. Simply create a YAML file with the appropriate hub names and forwarding urls, and pass it to the config option.

config.yml:

hubs:
  test-hub:
    forward_url: 'https://www.example.com/webhook'
  another-hub:
$ requesthub -config config.yml

Reload Config

Changes to the config YAML file can be reloaded on the fly by sending SIGHUP to the requesthub process.

About

Receive, Log, and Proxy HTTP requests

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages