Skip to content
A web frontend for scheduling Jupyter notebook reports
Python TypeScript CSS HTML Smarty Shell JavaScript
Branch: master
Clone or download
Latest commit 62c7cfc Oct 3, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples adding luigi scheduler for #57 Jul 18, 2019
paperboy more cleanup Aug 3, 2019
tests adding nose Aug 2, 2019
.travis.yml Create Nov 5, 2018
LICENSE Include license file Jul 19, 2019
Procfile adding json textarea for notebook viewing, notebook upload and storag… Oct 23, 2018
jest.config.js . Nov 21, 2018
package.json move to utility library Oct 1, 2019
setup.cfg add missing dev dep and improve dist script Aug 3, 2019
webpack.config.js . Oct 12, 2018



A web frontend for scheduling Jupyter Notebooks as reports


Build Status Coverage Docs Site

Paperboy is a production-grade application for scheduling reports. It has a flexible architecture and extensible APIs, and can integrate into a wide variety of deployments. It is composed of various industrial-strength technologies from the open source world.

  • Jupyter Notebooks for the reports themselves
    • Jupyter notebooks are an ideal report template, and with NBConvert support a wide variety of output types, including PDFs, HTML, Emails, etc
  • Papermill to parameterize notebooks
  • SQLAlchemy for Storage (default)
  • Apache Airflow for Scheduling (default)
  • PhosphorJS for the frontend
  • Support for Python Virtualenvs via requirements.txt or custom Docker images via Dockerfiles on a per-notebook level
  • Traitlets parameterization of storage and scheduler classes for easy integration with custom storage backends and custom schedulers
  • Single click notebook deployment with Voila and Dokku

Process Flow

  • Upload notebook
  • Configure job
    • start time
    • interval
    • papermill parameters to autoconfigure reports
    • if autoconfiguring reports from papermill:
      • run or publish
      • output
        • notebook
        • pdf
        • html
        • email
        • script
      • strip or keep code
  • To edit or create additional reports on a job, configure reports
    • run or publish
    • output
      • notebook
      • pdf
      • html
      • email
      • script
    • strip or keep code

Installation from source

Paperboy requires Python and Node.js, which can be installed from conda-forge if conda is available.

Clone the repository and run following commands to install and launch the application:

  • npm install
  • npm run build
  • pip install -e .
  • python -m paperboy

Visit in a browser to view the application.

The default authentication backend requires the registration of a username that can be used on subsequent launches.

You can’t perform that action at this time.