
Show HN: ngrok – secure introspectable tunnels to localhost - inconshreveable
https://ngrok.com
======
lnmx
This sounds technically similar to runscope[1] (reverse proxy via the cloud),
although they are specifically focused on debugging/testing web APIs.

[1] [https://www.runscope.com/](https://www.runscope.com/)

~~~
johns
ngrok is functionally equivalent to our Passageway:
runscope.com/docs/passageway. Can never have enough tools out there though.
Looks great Alan.

------
inconshreveable
Author here. I made this tool with the intention of making it easier to
develop websites and webservices as well as easier to share projects you're
working on with friends or at hackathons. Happy to answer any questions.

~~~
zhemao
Were you aware of localtunnel
"[http://progrium.com/localtunnel/"](http://progrium.com/localtunnel/") before
you started this project? I think it does sort of the same thing. Obviously
you have a lot more features than localtunnel does (SSL, HTTP Auth, Raw
TCP/UDP tunneling), but it's something to be aware of.

~~~
inconshreveable
There are a number of existing projects that have similar or subsets of
ngrok's feature set. localtunnel was certainly one of the inspirations for
building ngrok.

------
pixelmonkey
Is this "free right now" or "free forever"? Are you running this as a public
utility or have an aim to turn it into a business?

~~~
inconshreveable
The intention is that the current feature set is free forever.

It's possible that in the future there might be additional new features worth
charging for. If necessary, a small cost may be added for very-high bandwidth
usage of the service, but as long as I'm under my network usage quota, that
shouldn't be necessary.

~~~
pixelmonkey
Very interesting. I'm going to give it a whirl.

I like how simple your API is. The HTTP auth feature is also a great idea.

I run a distributed engineering team for a startup and this could actually be
useful for when people share stuff with each other. Currently, we tend to just
deploy to a "hack server", but there's often some local data & setup that is
annoying to reproduce on a server, especially for an experiment. This could
let people share their stuff more easily with each other.

I also like the idea of using this to share a locally-running IPython Notebook
instance to share code with someone else.

~~~
inconshreveable
Awesome! I really like the ipython notebook idea. I've kicked around the idea
of having the server component keep track of which tunnels are currently open
by all of the developers on an "account" and then exposing them in the web
interface so you would have an easy index to your coworkers' dev work. That
might be one of those extra features I try charging for since it's more
business-targeted. Feel free to get in touch if you have any ideas of features
you'd like to see built on top. contact (at) ngrok dot com

~~~
tmzt
Would it be possible to support XMPP Streams like those used in the OLPC
project? You could then share a service with other users over jabber, or
browse the services exposed by a jid.

------
phunge
Instant usefulness!

You might want to consider hosting the apps on a separate domain than your own
to avoid some security gotchas. github did so recently and explains the
rationale at: [https://github.com/blog/1452-new-github-pages-domain-
github-...](https://github.com/blog/1452-new-github-pages-domain-github-io)

------
shtylman
Nice! I worked on localtunnel.me which has some similar goals. I like the SSL
encryption option and the data capture. Could see that being useful for some
use cases.

~~~
mfkp
Is localtunnel.me the same thing as localtunnel.com, just with npm instead of
a rubygem?

~~~
shtylman
It is the same idea. I didn't like the user experience of setting up the SSH
key nonsense and wanted it to just work.

~~~
johns
Why reuse the name? That's just confusing (and a bit disrespectful).

~~~
shtylman
It is a simple name and does similar functionality. I don't like naming stuff
vague unrelated things and am not creative with naming stuff. If you come up
with a better name that is available I am happy to consider it :)

------
ptolts
Very cool idea. Right now I'm using autossh to keep a reverse ssh tunnel open.
It works reliably, but the performance is awful.

Great work!

------
rcaught
Just what I was looking for! Excellent!

One thing I noticed, when I signed in with Github, your site didn't use my
primary email address.

------
lsiebert
This is really nifty, and Apache licensed to boot. Also, an excellent use of
grok :)

Are you looking for open source contributors?

------
ggoodale
The replay button in the local web UI is enough to make this instantly useful.
Thanks for building this.

------
brent_noorda
really useful, quick to set up, nice console, and a lot easier than setting up
port forwarding and dyndns. Thanks for an immediately useful tool!

P.S. I hope you're not retaining all the data that goes through your server.
You don't want someone getting all snowdenny on you.

~~~
inconshreveable
ngrokd (the server portion) does not store any of the data. the only portion
it inspects is the Host header to determine routing information. All of the
code for inspecting the traffic is done on the client side on the machine you
control. =)

Lastly, the code is open source at github.com/inconshreveable/ngrok if you'd
like to audit it.

------
t4nkd
So if nginx is "engine-x" does ngrok "negro-k"?

Or is it a "y" sound like "nguyen"...?

~~~
conroy
It's pronounced "en-grock".

~~~
t4nkd
I was way off!

Thanks.

------
NHQ
swell!

