/tunnelify

A deployable proxy server and tunnel written in go

Primary LanguageGo

Tunnelify

Tunnelify is a deployable proxy server and tunnel written in go

Installing | Quickstart | Configuration

Installing

Direct download

You can install tunnelify by manually downloading the executable for your operating system via the releases page with:

$ wget https://github.com/kofoworola/tunnelify/releases/download/v0.1.0/tunnelify_0.1.0_mac_x86_64.tar.gz

Then extract it to your preferred location with:

$ tar -xf https://github.com/kofoworola/tunnelify/releases/download/v0.1.0/tunnelify_0.1.0_mac_x86_64.tar.gz

Using go get

You can use go get to compile and install tunnelify directly to your $GOPATH/bin

$ go get github.com/kofoworola/tunnelify

Quickstart

After installing tunnelify, run this to start up the proxy:

$ tunnelify start <PATH TO CONFIG FILE>

Now the proxy is listening on whatever value is set in your config's server.host value and is proxying every request sent through it.

Configuration

Recommended configuration format is json, but tunnelify also supports toml and yaml. Config values can also be set via Environment variables. For example, to set the value of server.host via Environments, update the value of the SERVER_HOST; essentially replace all . in the key with _ and change to upper case.

Available config values

Name Type Description Default
debug boolean If set to true, debug log will be sent along side warning and error logs false
server.port string Port the proxy's server will listen on null
server.auth []string Array of allowed Basic authorization strings in the form user-id:password []
server.health.status int Status code to respond with when liveness checks (Get requests to server.host) are made, an empty status code means tunnelify will not respond to liveness checks nil
server.health.path string URL path to listen to for liveness checks /
server.health.body string Body of response to liveness checks ""
server.timeout duration Amount of time the proxy will attempt to establish an outbound connection for 30s
hideIP boolean Hide the IP of the source of the request false
logging []string An array of file or URL paths to write logging to (logs are written to stderr regardless []
allowedIP []string An array of IPs that should be allowed to access the server. Nil or empty means no IP filtering will be in place []