/heroku-jupyter

One-click deployment for jupyter on heroku

Primary LanguagePythonMIT LicenseMIT

heroku-jupyter

Currently none of the configurations work properly. I am not able to figure out a working environment.yml. Sad enough older configurations do not work, as deprecated packages have been removed from package repositories.

Instead of using anaconda, it might be more stable to create a docker container to run in heroku. See as an example heroku-debian-jupyter, but there is still no support for a heroku deploy button from heroku

Use this application to deploy Jupyter Notebook to heroku or CloudFoundry. If a postgres database is available, pgcontents is used as notebook storage.

Quick start

Jupyter will not start, if the environment variable JUPYTER_NOTEBOOK_PASSWORD was not set.

If you want to customize your app, easiest is to fork this repository.

Installation instructions

heroku - automatic deployment

Deploy

If you forked this repository, you can link it to your heroku app afterwards.

heroku - manual deployment

Push this repository to your app or fork this repository on github and link your repository to your heroku app.

Use the heroku-buildpack-conda:

$ heroku buildpacks:set https://github.com/pl31/heroku-buildpack-conda.git -a <your_app>

Jupyter notebook will not start until the environment variable JUPYTER_NOTEBOOK_PASSWORD is set. Use a good password:

$ heroku config:set JUPYTER_NOTEBOOK_PASSWORD=<your_passwd> -a <your_app>

If you are really sure, that you do not want a password protected notebook server, you can set JUPYTER_NOTEBOOK_PASSWORD_DISABLED to DangerZone!.

CloudFoundry

  • Clone this repository
  • Create a postgres database service with name jupyter-db
  • Deploy using cf push
  • Set JUPYTER_NOTEBOOK_PASSWORD using cf set-env. Do not forget to restart application.

Environment variables

  • JUPYTER_NOTEBOOK_PASSWORD: Set password for notebooks
  • JUPYTER_NOTEBOOK_PASSWORD_DISABLED: Set to DangerZone! to disable password protection
  • JUPYTER_NOTEBOOK_ARGS: Additional command line args passed to jupyter notebook; e.g. get a more verbose logging using --debug

Python version

If you want to use a special python version, you should set it in your environment.yml:

name: root
dependencies:
  - python=2.7
  - ...

Environments

Experimental feature - in work

  • Parametrize default environment using ENVIRONMENT_YML
  • Add additional kernel(s) to jupyter installation (Python2 and Python3 in parallel)
  • Allow changes and experimental features without damaging defult configuration
Deployment Features Description
Deploy Python3, IPython5 Default Environment
Deploy Python3 Latest, no version binding
Deploy Python3, IPython5 + Python2 Default Environment + Python2