logoalt Hacker News

Show HN: BitBang – Reach machines behind NAT from a browser, no account

65 pointsby narragansetttoday at 2:41 PM16 commentsview on HN

Comments

narragansetttoday at 2:42 PM

It's a single Go binary, shaped like ssh. The main difference is the transport -- WebRTC instead of TCP -- so it doesn't need the machine to be reachable in the first place. Run "bitbang serve" and it prints a URL. Open it in a browser and you get a terminal, a file browser, and a proxy to web apps on that machine's network -- or connect from another terminal. There's nothing to install on the connecting side, no account, no port forwarding.

The trick to having no accounts: a device's identity is the hash of its public key, so browser and device verify each other directly. The server keeps no registry, authorizes nothing, and isn't in the data path -- it brokers the introduction and steps aside. About 75% of connections go direct P2P. The rest fall back to a TURN relay that only sees ciphertext. The server is open source and self-hostable -- and since it's out of the data path, cheap to run.

BitBang started on an ESP32, as the networking for a tiny telepresence robot. Embedded development is difficult and slow, so this CLI is where I've beaten the security model into shape. The embedded version is next. :)

show 2 replies
fmarashotoday at 9:10 PM

Looks like https://www.iroh.computer, can you explain how this approach is similar/different?

apitmantoday at 7:53 PM

Would love to have this on https://github.com/anderspitman/awesome-tunneling as soon as it hits 100 stars.

show 1 reply
Sean-Dertoday at 6:22 PM

Fantastic work on this. This idea has so much promise, I hope this is the project that makes it take off.

Self-hosting is pretty these days with docker. Exposing it to the internet is the annoying part. I do Jellyfin via netbird, but that means I don't really share it with my friends. I hope something like this getting baked into self-hosting flows is killer.

My other pet peeve is that people use 'Cloud Services' for File transfer. Sometimes when they are in the same LAN!

Nice work again and I hope it catches on/people understand how great this really is :)

show 1 reply
peter_d_shermantoday at 8:08 PM

So I read a whole bunch of text trying to figure out what this thing is...

Then I see the following line in the 'How it compares' section:

"Self-hostable server (open source)": ngrok->No, Cloudflare Tunnel->No, Tailscale->No, Bitbang->Yes

...and I'm like, "It's Open Source Tailscale!"

And now I "get it"! (you know, epiphany, profound enlightenment and all that!) :-)

(Well, it's an open source alternative to Tailscale, to be more precise, and an excellent one at that!)

Great work, Rich LeGrand!

(Another step forward for open source!)

show 1 reply