Z2JH - How to disable Jupyter Notebook, once migrated to Jupyter Lab


We run a lightly customized zero-to-jupyterhub-k8s deployment. We migrated our default endpoint to JupyterLab ( Customizing User Environment — Zero to JupyterHub with Kubernetes documentation ), and we’ve got several jupyterlab plugins that we maintain for our environment. I’d like to completely disable the old Notebook experience (effectively killing the /tree and /notebooks endpoints that host the old notebook experience). I want to do this so we don’t need to maintain the user experience and workflow customizations in both the new (lab) UI, and the old notebook UI. Note: I don’t want someone who knows the old /tree url to simply bypass whatever change I make to address this.

I couldn’t see an easy way to uninstall the old UI, as notebook is a dependency of jupyterlab. I was wondering if you had any thoughts on the best way to achieve this?

I’m currently thinking I can create a plugin for the old notebook experience that redirects you away - but that’s not fantastic. I assume I could also do something to update the reverse proxy to no longer serve those endpoints, but I’d like to avoid maintaining a fork for this if possible.

Any pointers/suggestions would be greatly appreciated.

1 Like

With JupyterLab 3.0 the notebook package is no longer a dependency of JupyterLab; the old notebook package got split into jupyter_server and nbclassic (see this answer for more details). You still cannot just uninstall nbclassic as it is a dependency of the LabApp, but you can disable it with:

jupyter server extension disable nbclassic

There may be some extra steps needed to switch JupyterHub to use the jupyter_server rather than the old notebook server. I will let someone more experience with JupyterHub comment on this, but there is some documentation on this here.