modules/agent-framework/deployments/jupyterhub/jupyterhub_config.py (53 lines of code) (raw):

from oauthenticator.generic import GenericOAuthenticator import os import sys # Authenticator Configuration c.JupyterHub.authenticator_class = GenericOAuthenticator c.GenericOAuthenticator.client_id = os.getenv('OAUTH_CLIENT_ID') c.GenericOAuthenticator.client_secret = os.getenv('OAUTH_CLIENT_SECRET') c.GenericOAuthenticator.oauth_callback_url = 'https://hub.cybershuttle.org/hub/oauth_callback' c.GenericOAuthenticator.authorize_url = 'https://auth.cybershuttle.org/realms/10000000/protocol/openid-connect/auth' c.GenericOAuthenticator.token_url = 'https://auth.cybershuttle.org/realms/10000000/protocol/openid-connect/token' c.GenericOAuthenticator.userdata_url = 'https://auth.cybershuttle.org/realms/10000000/protocol/openid-connect/userinfo' c.GenericOAuthenticator.scope = ['openid', 'profile', 'email'] c.GenericOAuthenticator.username_claim = 'email' # User Permissions c.Authenticator.enable_auth_state = True c.GenericOAuthenticator.allow_all = True # c.Authenticator.admin_users = {'user@airavata'} TODO Add admin users # Spawner Configuration c.JupyterHub.spawner_class = 'dockerspawner.DockerSpawner' c.DockerSpawner.image = os.environ.get('DOCKER_NOTEBOOK_IMAGE', 'cybershuttle/jupyterlab-base:latest') c.DockerSpawner.notebook_dir = '/home/jovyan' c.DockerSpawner.volumes = { 'jupyterhub-user-{username}': '/home/jovyan', } c.DockerSpawner.environment = { 'CHOWN_HOME': 'yes', 'CHOWN_HOME_OPTS': '-R', } c.DockerSpawner.extra_create_kwargs = {'user': 'root'} c.DockerSpawner.use_internal_ip = True c.DockerSpawner.network_name = os.getenv('DOCKER_NETWORK_NAME', 'jupyterhub_network') # Hub Configuration c.JupyterHub.hub_ip = '0.0.0.0' c.JupyterHub.hub_port = 8081 c.JupyterHub.hub_connect_ip = 'jupyterhub' # External URL c.JupyterHub.external_url = 'https://hub.cybershuttle.org' # Logging c.JupyterHub.log_level = 'DEBUG' # Terminate idle notebook containers c.JupyterHub.services = [ { "name": "jupyterhub-idle-culler-service", "admin": True, "command": [sys.executable, "-m", "jupyterhub_idle_culler", "--timeout=3600"], } ] c.JupyterHub.load_roles = [ { "name": "jupyterhub-idle-culler-role", "scopes": [ "list:users", "read:users:activity", "read:servers", "delete:servers", ], "services": ["jupyterhub-idle-culler-service"], } ] # SSL Termination c.JupyterHub.bind_url = 'http://:8000' c.JupyterHub.external_ssl = True