Skip to content

Pre-configured instance of JupyterHub paired with a custom notebook image.

License

Notifications You must be signed in to change notification settings

starhound/ultra-jupyter

Repository files navigation

Ultra-Jupyter

Ultra-Jupyter is a pre-configured version of JupyterHub with a custom notebook image that comes built with several kernels, providing a boilerplate setup for easy deployment.

Features

  • Pre-installed kernels for multiple programming languages including:
    • Python3
    • .NET (C# / F#)
    • Java
    • Rust
    • Go
    • Matlab
    • Pike
    • Lua
    • Kotlin
    • C / C++ (11, 14, 17)
    • Javascript
    • Typescript (4.9)
    • Bash
    • MySQL (MariaDB)
    • Ruby
    • Scala
    • Zsh
    • Julia
    • R
    • Octave
    • Lisp (Emacs)
    • Elm
    • Erlang
    • Elixir
    • LFE
    • Whitespace
    • Dart
    • VimScript
    • SSH
    • Haskell
    • LiveScript
    • Coconut (Python)
    • MicroPython
    • Calysto Hy
    • Calysto Processing
    • Calysto Scheme 3
    • SetlX
    • Dyalog APL
    • Ansible
    • Michelson
    • Common Workflow Language
    • Dot
    • CircuitPython
    • Fortran
    • Forth
    • Poetry
    • Elasticsearch

kernels

Installation

Prerequisites

Due to having so many language based dependencies, the Ultra-Jupyter-Notebook image equals over 15GB of storage. If you plan on having many users on a server, keep note that each user will have their own notebook container.

Steps

Clone this repository, run the install script, then docker-compose up.

git clone https://github.com/starhound/ultra-jupyter
cd ultra-jupyter
sudo ./install.sh
sudo docker-compose up

The install script simply ensures docker is installed and pulls the two container images.

Usage

After running docker-compose up, you can access the JupyterHub interface at http://localhost:8005. By default, dummy authorization is configured for admin with a password of admin. You can change this by modifying the jupyterhub_config.py file to fit your configuration needs. More information about authorization can be found here.

Ultra-Jupyter-Notebook

If you only want the notebook functionality, you can skip JupyterHub and just utilize the notebook with:

docker run -d -p 8888:8888 --name ultra-jupyter-notebook \
  -v /path/to/your/notebooks:/home/jovyan/work \
  starhound/ultra-jupyter-notebook

Leave out the volume if you have no existing notebooks to bring in.

Contributing

See your favorite kernel missing? Please reach out, or submit a PR!

To add a language and kernel, you will need to modify and build the Dockerfile in the user-notebook directory. This image takes a very long time to build, but caching makes it faster. Happy to take any advice on how to improve the build process.

TODO

  • Add more kernels
  • An install script that lets you choose which kernels to install
  • Polyglot notebooks
  • Fortran / PHP / Scala
  • Custom theme

Credits

This project is built atop the work of dozens of contributors to the Jupyter ecosystem and the creators of the various programming languages.

Some notable projects that were used:

many many more...

About

Pre-configured instance of JupyterHub paired with a custom notebook image.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published