Repolode
jupyterhub

jupyterhub/jupyter-server-proxy

A Jupyter server extension that runs external web apps like RStudio or Code Server alongside a notebook server and serves them through authenticated paths.

Stars
405
Forks
155
Open issues
95
Last commit
5 days ago

What is it?

Jupyter Server Proxy lets a notebook server launch arbitrary external processes, such as RStudio, Shiny Server, Syncthing, PostgreSQL or Code Server, and expose their web interfaces under paths like /rstudio beside /lab. Access goes through the Jupyter server's authentication, so users reach these tools without opening separate ports.

The main use is with JupyterHub or Binder, where users can be launched directly into web interfaces unrelated to Jupyter, such as RStudio, Shiny or OpenRefine. A bundled JupyterLab extension adds launcher buttons for registered server processes.

The project also lets frontend JavaScript in notebook or JupyterLab extensions call web APIs of local processes through the server. The project's documentation advises ensuring the proxied process cannot be reached directly, for example by running the server inside a container.

Key features

  • 01Proxies web services started as external processes under paths next to the notebook UI.
  • 02Applies Jupyter server authentication to proxied web access.
  • 03Bundles a JupyterLab extension that adds launcher buttons for registered servers.
  • 04Installable via pip or conda-forge.
  • 05Works with JupyterHub and Binder deployments.

Use cases

  • Launching RStudio or Shiny for users of a JupyterHub deployment.
  • Giving notebook users access to a web tool such as OpenRefine or Code Server.
  • Letting JupyterLab extensions call a local process's web API, as the dask-labextension does.

Quick start

  1. 1

    Install the Python package with pip

    pip install jupyter-server-proxy
  2. 2

    Or install from conda-forge

    conda install -c conda-forge jupyter-server-proxy

Things to know

  • Proxied processes must be secured separately, since they can be reached directly by other users unless network access is restricted, such as by running inside a container.

Topics

FAQ

What is jupyter-server-proxy?
A Jupyter server extension that runs external web apps like RStudio or Code Server alongside a notebook server and serves them through authenticated paths. Jupyter Server Proxy lets a notebook server launch arbitrary external processes, such as RStudio, Shiny Server, Syncthing, PostgreSQL or Code Server, and expose their web interfaces under paths like /rstudio beside /lab. Access goes through the Jupyter server's authentication, so users reach these tools without opening separate ports.
Is jupyter-server-proxy free to use? What license does it have?
jupyter-server-proxy is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
Is jupyter-server-proxy still maintained?
Actively maintained. The last commit to jupyter-server-proxy was on Nov 2, 2026.
What can I use jupyter-server-proxy for?
Launching RStudio or Shiny for users of a JupyterHub deployment. Giving notebook users access to a web tool such as OpenRefine or Code Server. Letting JupyterLab extensions call a local process's web API, as the dask-labextension does.
How do I install jupyter-server-proxy?
Install the Python package with pip: pip install jupyter-server-proxy Or install from conda-forge: conda install -c conda-forge jupyter-server-proxy
Where can I get jupyter-server-proxy?
The source code and installation instructions are on GitHub: https://github.com/jupyterhub/jupyter-server-proxy

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects