Appendix — Jupyter server proxy applications
`jupyter-server-proxy is a general purpose application for Jupyter classic notebooks and JupyterLab that can be used to launch and proxy arbitrary web applications running in the same context as the Jupyter server.
Applications can be launched from the Jupyter notebook homepage New menu or the JupyterLab launcher. The path to the application can be given as a “nice” application name on the Jupyter notebook application server path.
jupyter-server-proxy idea is useful in several respects:
- a container running a Jupyter server and jupyter-server-proxy only needs to expose only a single http port (the one that the notebook / JupyterLab is accessed via). All other applications can be proxied along the same path using the same port;
- many simple web applications applications do not have any authentication; proxying an application behind a Jupyter server means you can make use of the notebook server authenticator to provide a challenge before providing access to the application;
jupyter-server-proxywill start an application when it is first requested, so applications do not need to be started when the environment is started; applciations are only started when requested. If a repeated request is made for an application that has already been started, the user will be taken directly to it.
Multiple applications can be installed and accessed using custom
jupyter-server-proxy templated extensions.
The application can be launched from the classic Jupyter notebook homepage New menu, or the JupyterLab launcher.
The TensorSpace.js* playground provides an interactive web application that will attempt to recognise a user entered handwritten digit and visualise the activation of a simple pre-trained tensorflow network:
14.5 Tensorflow Playground
14.8 Handwritten Digit Prediction
Handwritten Digit Prediction is a jupyter-server-proxy extension that proxies this original simple web demo or using tensorflow.js to recognise handwritten digits running via a simple http web server.
14.9 RStudio / Shiny Applications
jupyter-shiny-proxy can be used to proxy R/Shiny applications.
May, 2021: the MyBinder demo for the extension seems to be broken at the moment but this is a generally a well tested extension and should be fixable; it is installed by default in many Jupyter/R Docker images.