From cca9e4aedc7de61c1be37448e25faaacf7fc3185 Mon Sep 17 00:00:00 2001 From: Eric FELIXINE Date: Mon, 1 Jun 2026 11:45:52 -0400 Subject: [PATCH] fix: JupyterHub spawn - switch to LocalProcessSpawner, fix password hash, eric user - SimpleLocalProcessSpawner doesn't pass JUPYTERHUB_SERVICE_URL in JH 5.3.0 - LocalProcessSpawner handles env vars correctly - Fixed eric password hash (bcrypt instead of PBKDF2) - eric user created with admin rights - JupyterLab accessible at https://jupyter.digitribe.fr - Credentials: eric / Digitribe972 --- vre/jupyterhub/jupyterhub_config.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/vre/jupyterhub/jupyterhub_config.py b/vre/jupyterhub/jupyterhub_config.py index 14328ff0..068ce663 100644 --- a/vre/jupyterhub/jupyterhub_config.py +++ b/vre/jupyterhub/jupyterhub_config.py @@ -1,6 +1,6 @@ # JupyterHub configuration for Smart City VRE # Uses NativeAuthenticator with LocalProcessSpawner -# Build: 2026-06-01-0915 +# Build: 2026-06-01-1600 import sys as _sys @@ -10,15 +10,17 @@ c.JupyterHub.hub_ip = '0.0.0.0' # Authenticator: Native (username/password signup + login) c.JupyterHub.authenticator_class = 'nativeauthenticator.NativeAuthenticator' -c.Authenticator.admin_users = {'admin'} +c.Authenticator.admin_users = {'admin', 'eric'} c.Authenticator.allow_all = True -# Spawner: Simple local spawner (single-node, shared environment) -c.JupyterHub.spawner_class = 'simple' +# Spawner: LocalProcessSpawner +# Note: SimpleLocalProcessSpawner doesn't pass JUPYTERHUB_SERVICE_URL correctly +# in JupyterHub 5.3.0. LocalProcessSpawner handles this properly. +c.JupyterHub.spawner_class = 'localprocess' c.Spawner.cmd = ['jupyterhub-singleuser'] c.Spawner.default_url = '/lab' c.Spawner.start_timeout = 300 -c.Spawner.http_timeout = 120 +c.Spawner.http_timeout = 300 # Database and cookies - use absolute path (4 slashes!) c.JupyterHub.cookie_secret_file = '/srv/jupyterhub/jupyterhub_cookie_secret'