From a425023b2e5f9e63070227a61e0a9d518abddc9e Mon Sep 17 00:00:00 2001 From: DerGrumpf Date: Tue, 16 Sep 2025 11:20:21 +0200 Subject: [PATCH] Changed: Ngshare as managed Service --- jupyterhub/jupyterhub_config.py | 78 ++++++++++----------------------- 1 file changed, 23 insertions(+), 55 deletions(-) diff --git a/jupyterhub/jupyterhub_config.py b/jupyterhub/jupyterhub_config.py index 063575f..c14bfc6 100644 --- a/jupyterhub/jupyterhub_config.py +++ b/jupyterhub/jupyterhub_config.py @@ -157,69 +157,37 @@ c.JupyterHub.concurrent_spawn_limit = 10 c.JupyterHub.allow_named_servers = True c.JupyterHub.named_server_limit_per_user = 3 - -# ngshare +# ngshare service configuration c.JupyterHub.services.append( { "name": "ngshare", "url": "http://127.0.0.1:10101", - "command": ["python3", "-m", "ngshare", "--admins", "admin"], + "command": [ + "python3", + "-m", + "ngshare", + "--admins", + "admin", + "--debug" if ds_debug else "", + ], + "environment": { + "JUPYTERHUB_SERVICE_URL": "http://127.0.0.1:10101", + "JUPYTERHUB_SERVICE_REDIRECT_URL": f"{base_url}services/ngshare/", + "JUPYTERHUB_BASE_URL": base_url, + }, } ) -""" -# NBgrader - -nbgrader_exchange_dir = "/srv/nbgrader/exchange" - - -c.JupyterHub.services = [ +# Additional ngshare configuration +c.JupyterHub.load_roles = [ { - "name": "nbgrader-formgrader", - "url": "http://127.0.0.1:9999", - "command": [ - "python", - "-m", - "nbgrader.apps.formgraderapp", - "--FormgradeApp.authenticator_plugin_class=nbgrader.auth.JupyterHubAuthPlugin", - "--FormgradeApp.ip=0.0.0.0", - "--FormgradeApp.port=9999", - f"--FormgradeApp.base_url={base_url}services/nbgrader-formgrader/", + "name": "ngshare", + "scopes": [ + "admin:servers", + "access:services", + "list:users", + "read:users:activity", ], - "cwd": "/srv/nbgrader/exchange", - "environment": { - "JUPYTERHUB_API_TOKEN": "", # Will be set automatically - "JUPYTERHUB_API_URL": f"http://jupyterhub:{port}{base_url}hub/api", - "JUPYTERHUB_SERVICE_PREFIX": "/services/nbgrader-formgrader/", - "POSTGRES_USER": p_user, - "POSTGRES_PASSWORD": p_pass, - "POSTGRES_HOST": p_host, - "POSTGRES_DB": p_db, - }, + "services": ["ngshare"], } ] - - -c.DockerSpawner.environment = { - "JUPYTERHUB_API_TOKEN": "", # Will be populated automatically - "JUPYTERHUB_API_URL": f"http://jupyterhub:{port}{base_url}hub/api", - "NBGRADER_EXCHANGE_DIRECTORY": nbgrader_exchange_dir, - "NBGRADER_CACHE_DIRECTORY": "/home/jovyan/.cache/nbgrader", - "NBGRADER_CONFIG_FILE": "/home/jovyan/.jupyter/nbgrader_config.py", -} - -# Configure NBgrader to use the same PostgreSQL database -c.NbGrader.db_url = f"postgresql://{p_user}:{p_pass}@{p_host}:5432/{p_db}" - -# NBgrader course configuration -c.CourseDirectory.root = "/srv/nbgrader" -c.CourseDirectory.course_id = os.environ.get("NBGRADER_COURSE_ID", "default_course") - -# Exchange configuration -c.Exchange.root = nbgrader_exchange_dir -c.Exchange.course_id = os.environ.get("NBGRADER_COURSE_ID", "default_course") - -# Formgrader configuration -c.FormgradeApp.authenticator_plugin_class = "nbgrader.auth.JupyterHubAuthPlugin" -c.FormgradeApp.base_url = f"{base_url}services/nbgrader-formgrader/" -"""