• Stars
    star
    419
  • Rank 103,397 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 6 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Python wrapper for ngrok

pyngrok - a Python wrapper for ngrok

PyPI Version CI/CD Codecov Docs Python Versions PyPI License Tweet

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: "http://<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")

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 in PyngrokConfig:

from pyngrok import conf

conf.get_default().ngrok_version = "v2"

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, a donation would also be greatly appreciated!

More Repositories

1

java-ngrok

A Java wrapper for ngrok
Java
47
star
2

amazon-orders

A CLI and library for interacting with Amazon order history
Python
13
star
3

air-quality-bot

Texting service to receive current air quality conditions and maps, powered by AirNow, Twilio, and AWS
Python
12
star
4

hookee

Command line webhooks, on demand
Python
7
star
5

django-dropzone-to-s3

A simple Django application that uploads files directly to an Amazon S3 bucket.
JavaScript
7
star
6

java-ngrok-example-spring

Spring example for java-ngrok
Java
5
star
7

java-ngrok-example-tcp-server-and-client

TCP Server and Client example for java-ngrok
Java
5
star
8

secure-php-login

Source code for the "Secure PHP Login" tutorial.
PHP
5
star
9

django-bootstrap-authentication-template-project

A simple template, including authentication forms, for a deployable Django application using Bootstrap
Python
4
star
10

java-ngrok-example-dropwizard

Dropwizard example for java-ngrok
Java
3
star
11

twilio-taskrouter-demo

The TwilTwil project; ChaCha using Twilio's TaskRouter
Python
3
star
12

get-organized

Keep your course schedule and grades organized with Get Organized, a simple and efficient academic planner. This application has been succeeded by Helium Edu.
Java
3
star
13

pyngrok-example-fastapi

FastAPI example for pyngrok
Python
3
star
14

fastsearch

A Python utility providing command-line search of local and remote files on systems with lousy built-in search utilities (you know, like Windows XP).
Python
2
star
15

geocentral-location

Source code for the "Geocentral Location; Addresses to Coordinates" tutorial.
HTML
1
star
16

finicity-client

A Finicity Client in Java for communicating with the Finicity API
Java
1
star
17

pyngrok-example-flask

Flask example for pyngrok
Python
1
star
18

pyngrok-example-django

Django example for pyngrok
Python
1
star
19

java-ngrok-example-play

Play (Scala) example for java-ngrok
Scala
1
star