JupyterHub Apps Launcher est un lanceur de serveur généralisé. L'objectif de ce projet est de prendre en charge le lancement de quelque chose comme, par exemple, un serveur Flask, un serveur FastAPI ou un tableau de bord Panel via une commande fournie par l'utilisateur. Actuellement, les frameworks suivants sont pris en charge :
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 .
Pour développer l’interface React UI, exécutez également :
cd ui
npm install
cd -
Définissez la variable d'environnement suivante :
export JHUB_APP_JWT_SECRET_KEY= $( openssl rand -hex 32 )
Démarrez JupyterHub :
jupyterhub -f jupyterhub_config.py
Allez maintenant sur http://127.0.0.1:8000/hub/home pour accéder au lanceur d'applications JHub.
Le service Hub est exposé via les points de terminaison FastAPI. La documentation correspondante est accessible à l'adresse : http://127.0.0.1:10202/services/japps/docs
Pour essayer des points de terminaison authentifiés, cliquez sur le bouton Autoriser en haut à droite de l'URL ci-dessus et choisissez OAuth2AuthorizationCodeBearer
et cliquez sur Autoriser.
Remarque : Pour développer localement, le backend JupyterHub et l'interface React UI doivent être exécutés.
jupyterhub -f jupyterhub_config.py
ui
: npm run watch
pytest jhub_apps/tests
pytest jhub_apps/tests/tests_e2e -vvv -s --headed
JHub Apps a été testé avec JupyterHub local à l'aide de SimpleLocalProcessSpawner
et avec The Littlest JupyterHub à l'aide de SystemdSpawner
.
pip install git + https : // github . com / nebari - dev / jhub - apps . git
jupyterhub_config.py
de 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 )