- 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
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
# JupyterHub configuration for Smart City VRE
|
|
# Uses NativeAuthenticator with LocalProcessSpawner
|
|
# Build: 2026-06-01-1600
|
|
|
|
import sys as _sys
|
|
|
|
c.JupyterHub.ip = '0.0.0.0'
|
|
c.JupyterHub.port = 8000
|
|
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', 'eric'}
|
|
c.Authenticator.allow_all = True
|
|
|
|
# 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 = 300
|
|
|
|
# Database and cookies - use absolute path (4 slashes!)
|
|
c.JupyterHub.cookie_secret_file = '/srv/jupyterhub/jupyterhub_cookie_secret'
|
|
c.JupyterHub.db_url = 'sqlite:////srv/jupyterhub/jupyterhub.sqlite'
|
|
|
|
# Base URL
|
|
c.JupyterHub.base_url = '/'
|
|
|
|
# Trust forwarded headers from Traefik
|
|
c.JupyterHub.tornado_settings = {
|
|
'headers': {
|
|
'Content-Security-Policy': "frame-ancestors 'self'"
|
|
}
|
|
}
|
|
|
|
c.JupyterHub.shutdown_on_logout = False
|