JupyterHub Apps Launcher هو مشغل خادم عام. الهدف من هذا المشروع هو دعم إطلاق أي شيء مثل Flask Server أو خادم FastAPI أو لوحة معلومات اللوحة عبر أمر يقدمه المستخدم. حاليًا، يتم دعم الأطر التالية:
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 Apps Launcher
يتم عرض خدمة 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 )