Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Alex Laird
Alex Laird

Posted on • Edited on

     

pyngrok — a Python wrapper for ngrok

pyngrok - a Python wrapper for ngrok

pyngrok is a Python wrapper forngrok that manages its own binary, makingngrok available via a convenient Python API and the command line.

ngrok is a reverse proxy that opens secure tunnels from public URLs to localhost. It's perfect for rapid development (test webhooks, demo local websites, enable SSH access), establishing ingress to external networks and devices, building production APIs (traffic policies, OAuth, load balancing), and more. And it's made even more powerful with native Python integration through thepyngrok client.

Installation

pyngrok is available onPyPI and can be installed usingpip:

pipinstallpyngrok
Enter fullscreen modeExit fullscreen mode

orconda:

condainstall-c conda-forge pyngrok
Enter fullscreen modeExit fullscreen mode

That's it!pyngrok is now available as a package to your Python projects, andngrok is now available from the command line.

Basic Usage

Open a Tunnel

To open a tunnel, use theconnect method, which returns aNgrokTunnel, and this returned object has a reference to the public URL generated byngrok in itspublic_url attribute.

frompyngrokimportngrok# Open a HTTP tunnel on the default port 80# <NgrokTunnel: "https://<public_sub>.ngrok.io" -> "http://localhost:80">http_tunnel=ngrok.connect()# Open a SSH tunnel# <NgrokTunnel: "tcp://0.tcp.ngrok.io:12345" -> "localhost:22">ssh_tunnel=ngrok.connect("22","tcp")# Open a named tunnel from the config filenamed_tunnel=ngrok.connect(name="my-config-file-tunnel")# Open an Internal Endpoint that's load balanced# <NgrokTunnel: "https://some-endpoint.internal" -> "http://localhost:9000">internal_endpoint=ngrok.connect(addr="9000",domain="some-endpoint.internal",pooling_enabled=True)
Enter fullscreen modeExit fullscreen mode

Theconnect method takeskwargs as well, which allows you to pass additional tunnel configurations that are supported byngrok (or thename of a tunnel defined inngrok's config file),as documented here.

ngrok's API

Theapi method allows you to use the localngrok agent to make requests againstthengrok API, if you haveset an API key. For example, here's how you would reserve angrok domain, then create a Cloud Endpoint with an associated traffic policy:

frompyngrokimportngrokdomain="some-domain.ngrok.dev"ngrok.api("reserved-domains","create","--domain",domain)ngrok.api("endpoints","create","--bindings","public","--url",f"https://{domain}","--traffic-policy-file","policy.yml")
Enter fullscreen modeExit fullscreen mode

Command Line Usage

This package puts the defaultngrok binary on your path, so all features ofngrok are available on the command line.

ngrok http 80
Enter fullscreen modeExit fullscreen mode

For details on how to fully leveragengrok from the command line, seengrok's official documentation.

Documentation

For more advanced usage,pyngrok's official documentation is available onRead the Docs.

Integration Examples

Contributing

If you would like to get involved, be sure to review theContribution Guide.

Want to contribute financially? If you've foundpyngrok useful,sponsorship would also be greatly appreciated!

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Leader • Software Creator • Visionary • Learner • [he/him]
  • Location
    Chicagoland
  • Pronouns
    he/him
  • Work
    Engineer @ Twilio
  • Joined

More fromAlex Laird

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp