defaultUrl behaviour

Hi,

According to the docs, JupyterLab is the default UI as of JupyterHub 2.0 and Helm chart 2.0. I am using binderhub-1.0.0-0.dev.git.3002.h5f189ce which I think matches that, but please let me know otherwise.

I get the classic notebook UI when I run binder with this repo. However, if I follow what’s in the docs and use the below:

  singleuser:
    cmd: jupyterhub-singleuser
    defaultUrl: "/lab"
    extraEnv:
      JUPYTERHUB_SINGLEUSER_APP: "jupyter_server.serverapp.ServerApp"
    image:
      name: pangeo/pangeo-notebook
      tag: 2023.01.04

Running binder again with the same repo produces:

image

Reverting back the config to:

  singleuser:
    cmd: jupyterhub-singleuser
    image:
      name: pangeo/pangeo-notebook
      tag: 2023.01.04

and running binder again with the same repo gets me back to the classic notebook UI:

https://<url>/user/<user>/tree

However, if I manually replace tree with lab in the url:

https://<url>/user/<user>/lab

It runs JupyterLab smoothly.

Do you know why?

Many thanks,
Sebastian

Hey @sluna did you end up solving this issue? i’m facing the exact same issue.
I have binderhub with authentication and the it deafults to tree as the UI.
I tried to change the defaultUrl parameter in the chart but that didnt work.
Please let me if you solved this somehow

Hi @Omri_Shilton

Sorry, I can’t remember what the solution was.

Are you using exactly the same version for binderhub and the pangeo-notebook image?

Maybe the issue simply disappeared after upgrading those.

Hey, im using the chart version: 1.0.0-0.dev.git.3129.h4244d4c
and my values looks like this:

imageBuilderType: dind

registry:
  url: https://***.azurecr.io
  username: ***
  password: ***

config:
  GitHubRepoProvider:
    access_token: ***
  BinderHub:
    auth_enabled: true
    hub_url: https://***
    use_registry: true
    image_prefix: ***.azurecr.io/binderhub/binder-
  DockerRegistry:
    token_url: "https://***oauth2/token?service=***"

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/healthcheck-path: /
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/backend-protocol: HTTP
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
    alb.ingress.kubernetes.io/certificate-arn: ***
  ingressClassName:
  hosts:
    - ***
  pathType: Prefix

service:
  type: NodePort

jupyterhub:
  cull:
    users: False
  ingress:
    enabled: true
    annotations:
      kubernetes.io/ingress.class: alb
      alb.ingress.kubernetes.io/target-type: ip
      alb.ingress.kubernetes.io/healthcheck-path: /
      alb.ingress.kubernetes.io/scheme: internet-facing
      alb.ingress.kubernetes.io/backend-protocol: HTTP
      alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
      alb.ingress.kubernetes.io/certificate-arn: ***
    ingressClassName:
    hosts:
      - ***
    pathType: Prefix

  proxy:
    service:
      type: NodePort

  imagePullSecret:
    create: true
    registry: ***.azurecr.io
    username: ***
    password: ***

  hub:
    redirectToServer: false
    services:
      binder:
        oauth_client_id: service-binderhub
        oauth_no_confirm: true
        oauth_redirect_uri: "https://***/oauth_callback"
    loadRoles:
      user:
        scopes:
          - self
          - "access:services"
    config:
      BinderSpawner:
        auth_enabled: true
      GoogleOAuthenticator:
        client_id: ***
        client_secret: ***
        oauth_callback_url: https://***/hub/oauth_callback
        hosted_domain:
          - ***
        login_service: ***
      JupyterHub:
        authenticator_class: google

  singleuser:
    cmd: jupyterhub-singleuser
    defaultUrl: "/lab"

Im not using pangeo-notebook, im using the default binderhub image with some modifications such as installing apt and pip packages

Sorry, I looked at my notes and couldn’t find the solution to this. I am not sure, I am afraid.