What is ngrok?
What is ngrok?
ngrok is a globally distributed reverse proxy that secures, protects and accelerates your applications and network services, no matter where you run them. You can think of ngrok as the front door to your applications.
ngrok is environment independent because it can deliver traffic to services running anywhere with no changes to your environment's networking. Run your app on AWS, Azure, Heroku, an on-premise Kubernetes cluster, a Raspberry Pi, and even your laptop. With ngrok, it all works the same.
ngrok is a unified ingress platform because it combines all the components to deliver traffic from your services to the internet into one. ngrok consolidates together your reverse proxy, load balancer, API gateway, firewall, delivery network, DDoS protection and more.
What can you do with ngrok?
Development and Testing
- Webhook Testing: Run ngrok on your local machine to get a URL to receive webhooks directly in the app you're developing. Inspect and replay requests for fast development.
- Local Previews: Demo a website running on your local machine to a client or stakeholder without deploying to a staging site.
- Mobile Backend Testing: Test your mobile apps against a backend that you're developing on your local machine.
Ingress to external networks
- APIs in customer networks: Run the lightweight ngrok agent or Kubernetes controller in your customers' environments to securely connect to APIs in their networks without complex network configuration.
- APIs on devices: Run ngrok as a service on your devices to create secure URLs for their local APIs enabling your cloud service to control and administrate them.
- APIs in local dev environments: Import ngrok as a library into your own CLI so you can create better local dev experiences for your developer customers.
Production Ingress
- API Gateway: Use ngrok's HTTP modules to secure, protect, accelerate and transform traffic to your production APIs.
- Kubernetes Ingress: Run ngrok's Ingress Controller to create ingress to k8s services running in any Kubernetes cluster.
- Identity-Aware Proxy: Use ngrok's OAuth, SAML, or OpenID Connect modules to federate your app's authentication to an identity provider.
- Load Balancer: Use Edges to load balance traffic for scalability and failover or to do blue/green and canary deployments.
Remote Access
- SSH: Create TCP endpoints to enable SSH access to remote machines.
- RDP: Create TCP endpoints to enable RDP access to remote machines.