explaingit

pedroborgesdev/tunnerse

11GoAudience · developerComplexity · 3/5Setup · moderate

TLDR

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.

Mindmap

mindmap
  root((tunnerse))
    What it does
      Local to public URL
      Webhook testing
      Prototype sharing
    Three pieces
      CLI tool
      Local daemon
      Public server
    How it works
      HTTP polling
      Base64 JSON transfer
      Stateless server
    Self-hosting
      Go 1.24
      Your own domain
      TLS certificates
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Expose a local web app on a temporary public URL so a client can review a prototype without you deploying anything.

USE CASE 2

Receive webhook callbacks from Stripe, GitHub, or other services on your local development server.

USE CASE 3

Self-host the public server component on your own domain with TLS so you have full control over the tunneling infrastructure.

USE CASE 4

Test third-party integrations that require a real public HTTPS URL without setting up cloud infrastructure.

Tech stack

Go

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Go 1.24+ to build from source, self-hosting the public server needs a domain and TLS certificates. No WebSocket or streaming support.

No license information was mentioned in the explanation.

In plain English

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.

Copy-paste prompts

Prompt 1
Build and run Tunnerse from source on Go 1.24, start the local daemon, and open a tunnel to port 3000 on my machine, show me the exact commands and what the output looks like.
Prompt 2
I want to receive Stripe webhooks on my local Next.js dev server using Tunnerse. Walk me through setting up the tunnel and configuring the Stripe dashboard webhook URL.
Prompt 3
Self-host the Tunnerse public server on my own VPS with a domain and TLS certificates, show me the config file format and how to start the server.
Prompt 4
Tunnerse uses HTTP polling instead of a persistent WebSocket connection. Explain the tradeoffs of this design and when it could cause issues with my use case.
Prompt 5
Build a Windows installer and a Debian package for Tunnerse using the included build scripts so I can distribute it to my team.
Open on GitHub → Explain another repo

← pedroborgesdev on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.