explaingit

inconshreveable/ngrok

Analysis updated 2026-05-18

24,465GoAudience · developerComplexity · 2/5Setup · easy

TLDR

Reverse proxy that gives your local server a public internet address, letting you share work-in-progress apps and test webhooks without deploying.

Mindmap

mindmap
  root((repo))
    What it does
      Reverse proxy
      Public URL tunnel
      Traffic capture
      Webhook debugging
    Use cases
      Demo local apps
      Test webhooks
      Private network access
      IoT gateways
    Tech stack
      Go
    Key features
      Firewall included
      API gateway
      Request inspection
    Status
      Archived v1
      No longer maintained
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

What do people build with it?

USE CASE 1

Demo a work-in-progress website to a client or colleague without deploying to a public server.

USE CASE 2

Test webhook integrations from services like Stripe or GitHub during local development.

USE CASE 3

Securely access APIs or databases inside private networks from external applications.

USE CASE 4

Run IoT device gateways that need to communicate with cloud services.

What is it built with?

Go

How does it compare?

inconshreveable/ngrokuber-go/zapgopeedlab/gopeed
Stars24,46524,44624,330
LanguageGoGoGo
Setup difficultyeasyeasyhard
Complexity2/52/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
License could not be detected automatically. Check the repository's LICENSE file before use.

In plain English

ngrok is a reverse proxy service that creates a secure public URL that tunnels traffic to a server running on your local machine. In everyday terms: if you are building a website on your own computer and want to show it to someone else, or test it with an external service like a payment webhook, you would normally need to deploy it to a public server. ngrok skips that step by giving your local server a public internet address instantly. The tool combines several functions: it acts as a reverse proxy (forwarding public requests to your local machine), a firewall, and an API gateway. It can also capture and display all traffic flowing through it, which makes it useful for debugging webhooks, HTTP callbacks sent by external services like Stripe or GitHub when something happens. Common uses include demoing a local app to a client without deploying it, testing webhooks during development, connecting securely to APIs or databases inside private networks, and running IoT device gateways. Note: this specific repository is the archived version 1 from 2013-2016 and is no longer maintained. The current ngrok service and its SDKs are developed separately at the ngrok GitHub organization. The tech stack is Go.

Copy-paste prompts

Prompt 1
Show me how to set up ngrok to expose my local Node.js server on port 3000 to the public internet.
Prompt 2
How do I use ngrok to inspect and debug webhook requests from Stripe in real time?
Prompt 3
Can you walk me through using ngrok to demo a local web app to a client without deploying it?
Prompt 4
What's the best way to use ngrok to test a payment callback integration before going live?

Frequently asked questions

What is ngrok?

Reverse proxy that gives your local server a public internet address, letting you share work-in-progress apps and test webhooks without deploying.

What language is ngrok written in?

Mainly Go. The stack also includes Go.

What license does ngrok use?

License could not be detected automatically. Check the repository's LICENSE file before use.

How hard is ngrok to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is ngrok for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub inconshreveable on gitmyhub

Verify against the repo before relying on details.