A Python-based GUI application to easily manage Ngrok tunnels with support for starting, stopping, and displaying tunnel details such as the public URL, request counts, and status. The public URL is clickable and opens in the browser.
- Start Ngrok tunnels for both default and custom domains.
- Display the public Ngrok URL, request counts, and tunnel status.
- Clickable public URL to open in the browser.
- Stop Ngrok processes and display logs.
- Error handling for Ngrok installation and API connection issues.
- Unit tests for core functionality using
unittest
.
- Python 3.8+.
- Ngrok installed and available in your system's PATH.
- Virtual environment (recommended).
The project depends on several Python packages, listed in requirements.txt
.
To install the dependencies, run:
pip install -r requirements.txt
The main dependencies are:
psutil
: Used to manage Ngrok processes.requests
: Used to interact with the Ngrok API.tkinter
: Used for the GUI.unittest
: Built-in Python module for testing.
-
Clone the repository:
git clone https://github.com/sergiolmartinez/ngrok_launcher.git cd ngrok-launcher
-
Set up a virtual environment and activate it:
python -m venv .venv source .venv/bin/activate # On Windows use: .venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
The project includes unit tests for core functionality. You can run the tests with the following command:
python -m unittest discover
To package this app as a standalone executable using PyInstaller, follow these steps:
-
Install PyInstaller:
pip install pyinstaller
-
Run PyInstaller to create an executable:
pyinstaller --onefile --windowed main.py
This will generate a dist/
directory with the standalone executable.
This project is licensed under the MIT License. See the LICENSE file for details.