Skip to content

lukewarm/nbforge

Repository files navigation

NBForge: Notebook Execution Platform

Execute, parameterize, and automate Jupyter notebooks at scale

WebsiteLive DemoGitHub

What is NBForge?

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

🚀 Try NBForge

Experience NBForge today:

Key Features

🔄 Turn Notebooks into Interactive APIs

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"]}

🔌 Integration with Data Pipelines

Connect NBForge to your existing data workflows using NBForge service accounts and the REST API:

  • Airflow / Dagster integration for scheduled notebook execution

📊 Execution Tracking and History

Get detailed insights into every notebook execution:

  • Full execution logs and outputs
  • Parameter values used for each run
  • Execution duration and status tracking

🔐 Enterprise-Ready

  • Service account management for secure API access
  • OAuth2 integration possibilities with Google, Okta, and other identity providers

Getting Started

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.

Kubernetes Deployment

For production environments, we provide Kubernetes manifests for deploying NBForge:

Documentation

Architecture

NBForge runs on Kubernetes consists of three main components:

  1. Frontend: A Vue.js web application for notebook management and execution configuration
  2. Backend: A FastAPI service that provides the REST API and orchestrates notebook execution
  3. 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.

Contributing

Contributions are welcome! See CONTRIBUTING.md for details on how to get started.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A data science and analytics productivity platform that turns Jupyter notebooks into web apps and pipeline tasks: https://nbforge.com

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •