• Stars
    star
    237
  • Rank 169,885 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 10 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Receive, Log, and Proxy HTTP requests

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.