Skip to main content

A Python wrapper for ngrok.

Project description

pyngrok - a Python wrapper for ngrok

Version Python Versions Coverage Build Code Quality Docs GitHub 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

Open a Tunnel

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(3)

# 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-config-file-tunnel")

The connect method takes kwargs as well, which allows us to pass additional tunnel configurations that are supported by ngrok (or the name of a tunnel defined in ngrok's config file), as documented here.

ngrok's Edges

To use ngrok's Edges with pyngrok, first configure an Edge on ngrok's dashboard (with at least one Endpoint mapped to the Edge), and define a labeled tunnel in the ngrok config file that points to the Edge.

tunnels:
  some-edge-tunnel:
    labels:
      - edge=my_edge_id
    addr: http://localhost:80

To start a labeled tunnel in pyngrok, pass its name to connect.

from pyngrok import ngrok

# Open the Edge tunnel that is defind in the config file
named_tunnel = ngrok.connect(name="some-edge-tunnel")

Once an Edge tunnel is started, it can be managed through ngrok's dashboard.

Command Line Usage

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.

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

This version

7.2.3

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.2.3.tar.gz (39.5 kB view details)

Uploaded Source

Built Distribution

pyngrok-7.2.3-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyngrok-7.2.3.tar.gz
  • Upload date:
  • Size: 39.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyngrok-7.2.3.tar.gz
Algorithm Hash digest
SHA256 ce33c8a3b2ee6e7f727ed1c99b5dac9476ffe1905eab6b8aa506a9cbe5d71d4e
MD5 bf9ef5dec7ae734cd3038e8a09739e3a
BLAKE2b-256 55566bc450f685c32312219c155725e179d82173388d9b5532a570b0f7cba987

See more details on using hashes here.

File details

Details for the file pyngrok-7.2.3-py3-none-any.whl.

File metadata

  • Download URL: pyngrok-7.2.3-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pyngrok-7.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d199afcef9c9f285eacdb622fd22261e91b1ba5a7802182ad2a9a702111e0865
MD5 1b5acecec6ea7e4cc47cf327ebba2597
BLAKE2b-256 b118b04c16630a55072df02c55419fde1bd3acd101f56add62781d2a9ac94c5c

See more details on using hashes here.

Supported by

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