ngrok is an amazing service. This is how is described in their website:

Introspected tunnels to localhost "I want to securely expose a local web server to the internet and capture all traffic for detailed inspection and replay."

And that is exactly what it does. But in a really simple way, and providing some useful features such as a request inspector.

You can download it from this link:

$ wget "https://api.equinox.io/1/Applications/ap_in5XNS3IRgHZwyTP4Xe83MvgEd/Updates/Asset/ngrok.zip?os=linux&arch=arm&channel=stable"

Note that the url is not really wget friendly. I renamed the downloaded file:

$ mv ngrok.zip\?os\=linux\&arch\=arm\&channel\=stable ngrok.zip

And since it's a binary, you can just take the laziest path and move it to your bin:

$ sudo mv ngrok /usr/bin/

Then, you need to go to your dashboard and get your token and authenticate:

$ ngrok authtoken <AUTH_TOKEN>

Now, if you have a test server like we did on the previous post, you can run it:

$ node server.js
//Server running at http://127.0.0.1:8080

And access the server in the raspberry pi from the outside world:

$ ngrok http -subdomain=pi-test 8080
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://pi-test.ngrok.io -> localhost:8080