JupyterHub Apps Launcher é um inicializador de servidor generalizado. O objetivo deste projeto é oferecer suporte ao lançamento de qualquer coisa como, digamos, um servidor Flask, servidor FastAPI ou um painel de controle por meio de um comando fornecido pelo usuário. Atualmente, as seguintes estruturas são suportadas:
pip install jhub-apps
ou via conda
conda install -c conda-forge jhub-apps
conda env create -f environment-dev.yml
conda activate jhub-apps-dev
pip install -e .
Para desenvolver o frontend React UI, execute também:
cd ui
npm install
cd -
Defina a seguinte variável de ambiente:
export JHUB_APP_JWT_SECRET_KEY= $( openssl rand -hex 32 )
Inicie o JupyterHub:
jupyterhub -f jupyterhub_config.py
Agora vá para http://127.0.0.1:8000/hub/home para acessar o JHub Apps Launcher
O serviço Hub é exposto por meio de endpoints FastAPI. A documentação do mesmo pode ser acessada em: http://127.0.0.1:10202/services/japps/docs
Para testar endpoints autenticados, clique no botão Autorizar no canto superior direito do URL acima e escolha OAuth2AuthorizationCodeBearer
e clique em Autorizar.
Observação: para desenvolver localmente, tanto o back-end do JupyterHub quanto o front-end do React UI devem estar em execução.
jupyterhub -f jupyterhub_config.py
ui
: npm run watch
pytest jhub_apps/tests
pytest jhub_apps/tests/tests_e2e -vvv -s --headed
JHub Apps foi testado com JupyterHub local usando SimpleLocalProcessSpawner
e com The Littlest JupyterHub usando SystemdSpawner
.
pip install git + https : // github . com / nebari - dev / jhub - apps . git
jupyterhub_config.py
do The Littlest JupyterHub from tljh . user_creating_spawner import UserCreatingSpawner
from jhub_apps . configuration import install_jhub_apps
c . JupyterHub . bind_url = "<YOUR_JUPYTERHUB_URL>"
c . SystemdSpawner . unit_name_template = 'jupyter-{USERNAME}{JHUBSERVERNAME}'
c . JAppsConfig . apps_auth_type = "oauth" # or none (if you don't want authentication on apps)
c . JAppsConfig . python_exec = "python3"
# Pass in the path to jupyterhub config
c . JAppsConfig . jupyterhub_config_path = "jupyterhub_config.py"
# Either a static list of conda environments to show in the
# create panel apps form or a callable to fetch conda enviornments
# dynamically, e.g. from conda-store API
c . JAppsConfig . conda_envs = []
c = install_jhub_apps ( c , UserCreatingSpawner )