JupyterHub Apps Launcher ist ein allgemeiner Server-Launcher. Das Ziel dieses Projekts besteht darin, den Start von beispielsweise einem Flask-Server, einem FastAPI-Server oder einem Panel-Dashboard über einen vom Benutzer bereitgestellten Befehl zu unterstützen. Derzeit werden folgende Frameworks unterstützt:
pip install jhub-apps
oder über conda
conda install -c conda-forge jhub-apps
conda env create -f environment-dev.yml
conda activate jhub-apps-dev
pip install -e .
Um das React-UI-Frontend zu entwickeln, führen Sie außerdem Folgendes aus:
cd ui
npm install
cd -
Legen Sie die folgende Umgebungsvariable fest:
export JHUB_APP_JWT_SECRET_KEY= $( openssl rand -hex 32 )
Starten Sie JupyterHub:
jupyterhub -f jupyterhub_config.py
Gehen Sie nun zu http://127.0.0.1:8000/hub/home, um auf den JHub Apps Launcher zuzugreifen
Der Hub-Dienst wird über FastAPI-Endpunkte verfügbar gemacht. Auf die entsprechende Dokumentation kann unter http://127.0.0.1:10202/services/japps/docs zugegriffen werden
Um authentifizierte Endpunkte auszuprobieren, klicken Sie oben rechts in der obigen URL auf die Schaltfläche „Autorisieren“, wählen Sie OAuth2AuthorizationCodeBearer
und klicken Sie auf „Autorisieren“.
Hinweis: Für die lokale Entwicklung sollten sowohl das JupyterHub-Backend als auch das React UI-Frontend ausgeführt werden.
jupyterhub -f jupyterhub_config.py
ui
-Verzeichnis aus: npm run watch
pytest jhub_apps/tests
pytest jhub_apps/tests/tests_e2e -vvv -s --headed
JHub Apps wurde mit lokalem JupyterHub unter Verwendung von SimpleLocalProcessSpawner
und mit The Littlest JupyterHub unter Verwendung von SystemdSpawner
getestet.
pip install git + https : // github . com / nebari - dev / jhub - apps . git
jupyterhub_config.py
von The Littlest JupyterHub hinzu 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 )