paperboy
A web frontend for scheduling Jupyter Notebooks as reports
Overview
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 Dockerfile
s 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 theapplication:
npm install
npm run build
pip install -e .
python -m paperboy
Visit http://0.0.0.0:8080 in a browser to view the application.
The default authentication backend requires the registration of a username thatcan be used on subsequent launches.