Skip to content

Running VSCode Web IDE inside the Jupyter environment

License

Notifications You must be signed in to change notification settings

pc2/jupyter-code-server

Repository files navigation

Binder

jupyter-code-server

Running VSCode Web IDE code-server inside the Jupyter environment.

JupyterLab

Table of Contents

Requirements

Installation

python3 -m pip install jupyter-code-server

Configuration

Setting the working directory

The environment variable CODE_WORKING_DIRECTORY is prioritised and can be changed for the VSCode Web IDE independently of the Jupyter working/notebook directory.

The order/priority is as follows:

  1. CODE_WORKING_DIRECTORY, if not set:
  2. JUPYTERHUB_ROOT_DIR, if not set:
  3. JUPYTER_SERVER_ROOT, if not set:
  4. HOME

Using pre-started code-server

In case code-server is already running (e.g. started in sidecar container with Jupyter running in Kubernetes) and servig either via TCP port or UNIX socket, it is possible to proxy this already running instance instead of starting a new one with jupyter-server-proxy. Variables JSP_CODE_SERVER_PORT and JSP_CODE_SERVER_SOCKET set command to empty list which makes jupyter-server-proxy pass requests to specified port of socket.

If running code-server is listening to TCP port, environment variable JSP_CODE_SERVER_PORT may be set to port number.

If running code-server is listening to UNIX socket, environment variable JSP_CODE_SERVER_SOCKET may be set to socket file path.

If none of these environment variables are set, jupyter-code-server starts new code-server process and proxies requests to its socket.

Enable/disable launcher

By default code-server launcher is enabled and visible in JupyterLab. Option JSP_CODE_SERVER_LAUNCHER_DISABLED may be set to any non-empty value to disable launcher. This is useful when e.g. certain users are not supposed to have code-server available in Jupyterhub as there is no easy way to disable loading of entire jupyter-code-server module for these users if module is for example built into Docker image.

Loading code-server using Lmod

If code-server needs to be loaded from an Lmod environment you can set the JSP_CODE_SERVER_LMOD_MODULE variable to the path of the module.

Example: JSP_CODE_SERVER_LMOD_MODULE=tools/code-server/4.22.1

The module will then be loaded with the help of LMOD_CMD and MODULEPATH before the code-server is started.