Skip to main content

A Python wrapper for ngrok.

Project description

pyngrok - a Python wrapper for ngrok

PyPI Version CI Tests Codecov Docs Python Versions PyPI License

pyngrok is a Python wrapper for ngrok that manages its own binary, making ngrok available via a convenient Python API.

ngrok is a reverse proxy tool that opens secure tunnels from public URLs to localhost, perfect for exposing local web servers, building webhook integrations, enabling SSH access, testing chatbots, demoing from your own machine, and more, and its made even more powerful with native Python integration through pyngrok.

Installation

pyngrok is available on PyPI and can be installed using pip:

pip install pyngrok

or conda:

conda install -c conda-forge pyngrok

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

Basic Usage

To open a tunnel, use the connect method, which returns a NgrokTunnel, and this returned object has a reference to the public URL generated by ngrok in its public_url attribute.

from pyngrok import ngrok

# 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 file
named_tunnel = ngrok.connect(name="my_tunnel_name")

The connect method takes kwargs as well, which allows us to pass additional properties that are supported by ngrok.

This package puts the default ngrok binary on our path, so all features of ngrok are available on the command line.

ngrok http 80

For details on how to fully leverage ngrok from the command line, see ngrok's official documentation.

Documentation

For more advanced usage, pyngrok's official documentation is available at http://pyngrok.readthedocs.io.

ngrok Version Compatibility

pyngrok is compatible with ngrok v2 and v3, but by default it will install v3. To install v2 instead, set ngrok_version to "v2" in PyngrokConfig.

Python 2.7

The last version of pyngrok that supports Python 2.7 is 4.1.x, so we need to pin pyngrok>=4.1,<4.2 if we still want to use pyngrok with this version of Python. Its legacy documentation can be found here.

Contributing

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

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

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyngrok-7.0.1.tar.gz (731.8 kB view details)

Uploaded Source

File details

Details for the file pyngrok-7.0.1.tar.gz.

File metadata

  • Download URL: pyngrok-7.0.1.tar.gz
  • Upload date:
  • Size: 731.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for pyngrok-7.0.1.tar.gz
Algorithm Hash digest
SHA256 c132b40e7b1905b07d9c731ef215108cc977b1bbf445a146894e0d489b213eb6
MD5 1621bc46546a8c74166c8bdb778d526e
BLAKE2b-256 5102f8f0beb3329eaf1297a3e5122ebeea862aaffa81c33c472878106fcd9033

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page