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.
- 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
- Docker
- Docker Compose (optional, for easier management)
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.
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.
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.
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.
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.
- Add more kernels
- An install script that lets you choose which kernels to install
- Polyglot notebooks
- Fortran / PHP / Scala
- Custom theme
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:
- jupter-elm-kernel
- dyalog-jupyter-kernel
- ssh-kernel
- bash_kernel
- dotnet-interactive
- IHaskell
- IJava
- kotlin-jupyter
- iula
- matlab_kernel
- ijavascript
- jupyter-pike-kernel
- calysto_hy
- coconut
- itypescript
- vim_kernel
- isetlX
- calysto_scheme
- almond
- michelson-kernel
- common-workflow-language
- jupyter-dot-kernel
- jupyter-fortran-kernel
- elasticsearch-kernel
- iForth
- poetry-kernel
many many more...