gitmyhub

tunnerse

Go ★ 14 updated 23d ago

Reverse HTTP tunnels for local development, demos, webhooks, and testing

A Go tool that gives your locally running app a temporary public URL so clients, webhooks, or external services can reach it, similar to ngrok, self-hostable, no persistent connection required.

Gosetup: moderatecomplexity 3/5

Tunnerse is a tool that gives your locally running app a public URL on the internet, without deploying it anywhere. If you are building a web app that only runs on your machine, Tunnerse creates a temporary address that anyone can visit, and routes their requests through to your local server. This is useful for sharing a prototype with a client, receiving webhook callbacks from a payment processor or other service, or testing integrations that require a real public URL.

The project is split into three pieces. A command-line tool is what you run when you want to open a tunnel. A local daemon process runs in the background on your machine and handles the actual forwarding. A public server, which you can either run yourself or use via tunnerse.com, sits on the internet and accepts incoming requests. When a visitor hits your tunnel URL, the public server queues the request and your local daemon picks it up, forwards it to whatever port your app is listening on, and sends the response back.

All traffic goes over regular HTTP polling rather than a persistent open connection, meaning the daemon periodically asks the server for any waiting requests. Request and response bodies are transferred as base64-encoded JSON. The design keeps the server stateless with no database, which makes it simple to self-host. Current limits include a 32 MB cap on request and response bodies, and no support for WebSockets or streaming.

To run it from source you need Go 1.24 or newer. You build three binaries, start the local daemon, and then run a single command naming the port your app is on. A public URL appears in the terminal. The tunnel stays open as long as the command is running. Pressing Ctrl+C shuts it down and notifies the server to close the tunnel.

Build scripts for Windows installers and Debian packages are included if you want to distribute it. The server piece can also be self-hosted with a config file specifying your domain and TLS certificates.

Where it fits