JupyterHub Apps Launcher — это универсальный модуль запуска серверов. Целью этого проекта является поддержка запуска чего-либо, например, сервера Flask, сервера FastAPI или панели мониторинга Panel, с помощью команды, введенной пользователем. На данный момент поддерживаются следующие фреймворки:
pip install jhub-apps
или через Конду
conda install -c conda-forge jhub-apps
conda env create -f environment-dev.yml
conda activate jhub-apps-dev
pip install -e .
Чтобы разработать интерфейс React UI, также запустите:
cd ui
npm install
cd -
Установите следующую переменную среды:
export JHUB_APP_JWT_SECRET_KEY= $( openssl rand -hex 32 )
Запустите JupyterHub:
jupyterhub -f jupyterhub_config.py
Теперь перейдите по адресу http://127.0.0.1:8000/hub/home, чтобы получить доступ к средству запуска приложений JHub.
Служба Hub предоставляется через конечные точки FastAPI. Доступ к документации можно получить по адресу: http://127.0.0.1:10202/services/japps/docs.
Чтобы опробовать аутентифицированные конечные точки, нажмите кнопку «Авторизовать» в правом верхнем углу приведенного выше URL-адреса, выберите OAuth2AuthorizationCodeBearer
и нажмите «Авторизовать».
Примечание. Для локальной разработки должны быть запущены как серверная часть JupyterHub, так и внешний интерфейс React UI.
jupyterhub -f jupyterhub_config.py
ui
: npm run watch
pytest jhub_apps/tests
pytest jhub_apps/tests/tests_e2e -vvv -s --headed
Приложения JHub были протестированы с локальным JupyterHub с использованием SimpleLocalProcessSpawner
и с The Littlest JupyterHub с использованием SystemdSpawner
.
pip install git + https : // github . com / nebari - dev / jhub - apps . git
jupyterhub_config.py
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 )