Using tunnels
Tunnels provide bidirectional access to your local services. In this section we demonstrate basic functionality.
Web Relay assigns random hexadecimal names to the created HTTP tunnels. This is okay for one-time personal uses or development.
But if you're displaying the URL at a hackathon or integrating with a third-party webhook or just use it regularly, it can be frustrating if it is difficult to read and remember. You can specify a custom subdomain for your tunnel URL when you are creating a new tunnel:
$ relay tunnel create www --subdomain demo-1
www
To specify a tunnel name when using connect command:
$ relay connect --name www http://localhost:4000/
Connecting:
http://demo-1.webrelay.io <----> http://localhost:4000/
1.5110973039938712e+09 info client starting {"version": "develop"}
1.5110973041917999e+09 info adding HTTP tunnel demo-1.webrelay.io ---> http://localhost:4000/
1.511097304192018e+09 info tunnel proxy configuration updated
Anyone who can guess your tunnel URL can access your local or private web service unless you protect it.
To enable HTTP Basic Auth provide
--username
and --password
flags: relay connect --username foo --password bar http://localhost:4000
Accessing a URL now will prompt users for credentials.
Similarly to HTTP Basic Auth you can also specify token protection. Tokens are easier to pass around:
relay connect --subdomain landing --token <token>
Even though basic auth and token protection can prevent unwanted visitors to your websites, it is advisable to also enable SSL.
When using with Docker webhookrelayd container needs a way to communicate with other containers. For this, we can use "links". Here's an example how to connect to a running container called
jupyter
:docker run --link jupyter:jupyter -e KEY=TokenKey -e SECRET=TokenSecret webhookrelay/webhookrelayd:latest --mode tunnel -t jupyter
Do you want to use tunnels inside Kubernetes? See ingress section for installing and configuring Kubernetes ingress controller.
Last modified 1yr ago