NBForge is a platform that transforms Jupyter notebooks into powerful, production-ready reporting tools and data processing components. It enables:
- Parameterized Execution: Run notebooks with different input parameters without modifying the code
- Execution API: Trigger notebook runs programmatically via a RESTful API
- Resource Control: Specify CPU and memory requirements for each notebook
- Execution Tracking: Monitor all notebook runs with detailed logs and outputs
- Service Account Integration: Automate notebook execution from Airflow, CI/CD pipelines, or other systems
Experience NBForge today:
- Project Website: Learn more about NBForge features and use cases at https://nbforge.com
- Demo Site: Try our fully functional demo at https://demo.nbforge.com
- Login and email services are disabled on the demo site.
- The demo user can access the admin panel.
Convert any Jupyter notebook into an API endpoint by adding a parameters cell. NBForge automatically generates a user interface for parameter input and validates the parameters before execution.
# Analysis date range
start_date: str = "2023-01-01" # {"description": "Start date for analysis", "input_type": "date"}
end_date: str = "2024-01-01" # {"description": "End date for analysis", "input_type": "date"}
# Visualization parameters
plot_type: str = "line" # {"description": "Type of plot to generate", "input_type": "select", "options": ["line", "bar", "scatter"]}
metrics: List[str] = ["churn_rate", "retention"] # {"description": "Metrics to plot", "input_type": "multiselect", "options": ["churn_rate", "retention", "acquisition", "revenue"]}Connect NBForge to your existing data workflows using NBForge service accounts and the REST API:
- Airflow / Dagster integration for scheduled notebook execution
Get detailed insights into every notebook execution:
- Full execution logs and outputs
- Parameter values used for each run
- Execution duration and status tracking
- Service account management for secure API access
- OAuth2 integration possibilities with Google, Okta, and other identity providers
Follow the local developing guide to set up NBForge web servers on your computer, with optinally the full Kubernetes experience using Minikube. See the Local Development Setup.
For production environments, we provide Kubernetes manifests for deploying NBForge:
- Deployment Options
- Notebook Specification
- Admin Guide
- Authentication
- Service Extensions
NBForge runs on Kubernetes consists of three main components:
- Frontend: A Vue.js web application for notebook management and execution configuration
- Backend: A FastAPI service that provides the REST API and orchestrates notebook execution
- Notebook Runner: Containerized execution environment for running parameterized notebooks using the excellent Papermill
The platform is designed to be cloud-native, scalable, and extensible, with support for various storage backends, authentication providers, and execution engines.
Contributions are welcome! See CONTRIBUTING.md for details on how to get started.
This project is licensed under the MIT License - see the LICENSE file for details.