pyngrok is a Python wrapper for
ngrok that manages its own binary, making
ngrok available via a convenient Python
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 is available on PyPI and can be installed
pip install pyngrok
conda install -c conda-forge pyngrok
pyngrok is now available as a package to our Python projects, and
ngrok is now available from
the command line.
To open a tunnel, use the
which returns a
NgrokTunnel, and this returned object has a reference to the public URL generated by
ngrok in its
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")
This package puts the default
ngrok binary on our path, so all features of
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.
For more advanced usage,
pyngrok's official documentation is available at http://pyngrok.readthedocs.io.
ngrok Version Compatibility
pyngrok is compatible with
ngrok 2.x. If you use
pyngrok to manage the
ngrok binary, there will
be no issues. But when providing your own binary, or when referencing
ngrok documentation, ensure it is 2.x.
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
pyngrok with this version of Python. Its legacy documentation can be found here.
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!