This project provides a convenient and cost-effective solution for testing AI-powered web applications using Google Colab Notebooks. It eliminates the need for hardware upgrades or expensive cloud services, making it accessible for developers and researchers.
The primary motivation behind this initiative was to develop a simple and affordable approach for debugging and testing web applications. By leveraging Google Colab, users can sidestep significant infrastructure investments while retaining the flexibility and power needed for development.
The provided examples meet the essential requirements of the project, offering a robust starting point for further enhancements and customization.
The project utilizes Node.js, particularly the npm package "localtunnel" (now updated to use ngrok for improved reliability), along with other npm packages such as http-server. This setup facilitates the creation of a zero-configuration command-line HTTP server, suitable for serving static files or frameworks like Django or Streamlit. This environment enables users to serve and share web applications globally from Google Colab—a Jupyter notebook platform hosted on Google Cloud—while leveraging free GPUs for advanced AI-powered applications.
Navigate to the Samples directory and select the notebook that aligns with your project type.
- Visit the ngrok website and sign up for a free account.
- Once registered, log in to your ngrok dashboard.
- Locate your authentication token in the dashboard under the "Setup & Installation" section.
- Copy the token to your clipboard for use in the Colab notebook.
- Open the chosen sample notebook and follow the provided instructions.
- Locate the cell where you need to input the ngrok authentication token.
- Paste your copied token into the
ngrok_token
variable. - Run the cell to initialize ngrok.
After setting up ngrok, locate the following line:
Copy the Global IP as shown in the screenshot.
Click on the APP link provided in the notebook. A preliminary page will load before redirecting to the main page. Paste the copied Global IP address into the specified field as shown:
Special thanks to FahimFBA for contributing to one of the example projects.
This project is primarily designed for simple development purposes. Notable limitations include:
- Reliability: Localtunnel’s lack of maintenance prompted a shift to ngrok, which offers improved performance but may still encounter occasional issues.
- Complexity: Current examples are limited to basic use cases, with more advanced examples under development.
All basic notebooks have been updated to use ngrok instead of localtunnel, addressing long-standing reliability issues. The notebooks are now fully up-to-date as of December 19, 2024.