photocyte / jupyverse

A Jupyter server based on FastAPI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status Code style: black

jupyverse

A set of FPS plugins implementing a Jupyter server.

Try it online:

  • JupyterLab frontend: Binder
  • RetroLab frontend: Binder

Motivation

For the motivations behind this project, please refer to this issue in the Jupyter server team compass.

Install

With pip:

pip install "jupyverse[jupyterlab]"  # for the JupyterLab front-end
# or
pip install "jupyverse[retrolab]"  # for the RetroLab front-end

With mamba:

mamba install -c conda-forge jupyverse fps-jupyterlab  # for the JupyterLab front-end
# or
mamba install -c conda-forge jupyverse fps-retrolab  # for the RetroLab front-end

Note: you cannot have both the JupyterLab and the RetroLab front-ends enabled at the same time. When switching e.g. from the JupyterLab to the RetroLab front-end, you need to pip uninstall fps-jupyterlab or launch Jupyverse with --JupyterLab.enabled=false.

Development install

Clone this repository and install the needed plugins:

pip install fps[uvicorn]
pip install -e . --no-deps
pip install -e plugins/jupyterlab
pip install -e plugins/login
pip install -e plugins/auth
pip install -e plugins/contents
pip install -e plugins/kernels
pip install -e plugins/terminals
pip install -e plugins/lab
pip install -e plugins/nbconvert
pip install -e plugins/yjs

# if you want RetroLab instead of JupyterLab:
# pip install -e . --no-deps
# pip install -e plugins/retrolab
# ...

Usage

Without authentication

jupyverse --open-browser --authenticator.mode=noauth

This will open a browser at 127.0.0.1:8000 by default, and load the JupyterLab front-end. You have full access to the API, without restriction.

With token authentication

jupyverse --open-browser --authenticator.mode=token

This is the default mode, and it corresponds to Jupyter Server's token-based authentication.

With user authentication

jupyverse --open-browser --authenticator.mode=user

We provide a JupyterLab extension for authentication, that you can install with:

pip install git+https://github.com/davidbrochart/jupyverse-auth

You can currently authenticate as an anonymous user, or using a GitHub account.

With collaborative editing

jupyverse --open-browser --authenticator.collaborative

This is especially interesting if you are "user-authenticated", since your will appear as the identity you chose for authentication.

About

A Jupyter server based on FastAPI

License:Other


Languages

Language:Python 95.4%Language:HTML 2.8%Language:CSS 1.3%Language:Shell 0.6%