Skip to main content

Run a desktop environments on Jupyter

Project description

Jupyter Remote Desktop Proxy

Binder

Run XFCE (or other desktop environments) on Jupyter.

This is based on https://github.com/ryanlovett/nbnovnc.

When this extension is launched it will run a Linux desktop on the Jupyter single-user server, and proxy it to your browser using VNC via Jupyter.

If a vncserver executable is found in PATH it will be used, otherwise a bundled TightVNC server is run. You can use this to install vncserver with support for other features, for example the Dockerfile in this repository installs TurboVNC for improved OpenGL support.

Installation

  1. Install this package itself, with pip from PyPI:

    pip install jupyter-remote-desktop-proxy
    
  2. Install the websockify dependency. Unfortunately, the PyPI websockify package is broken, so you need to install it either from conda-forge or with apt

  3. Install the packages needed to provide the actual Linux Desktop environment. You need to pick a desktop environment (there are many!) - here is the packages you would need for using the light-weight XFCE4 desktop environment:

    dbus-x11
    libgl1-mesa-glx
    xfce4
    xfce4-panel
    xfce4-session
    xfce4-settings
    xorg
    xubuntu-icon-theme
    

    The recommended way to install these is from your Linux system package manager of choice (such as apt).

Docker

To spin up such a notebook first build the container:

$ docker build -t $(whoami)/$(basename ${PWD}) .

Now you can ran the image:

$ docker run --rm  -p 8888:8888 $(whoami)/$(basename ${PWD})
Executing the command: jupyter notebook
[I 12:43:59.148 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
[I 12:44:00.221 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab
[I 12:44:00.221 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 12:44:00.224 NotebookApp] Serving notebooks from local directory: /home/jovyan
[I 12:44:00.225 NotebookApp] The Jupyter Notebook is running at:
[I 12:44:00.225 NotebookApp] http://924904e0a646:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
[I 12:44:00.225 NotebookApp]  or http://127.0.0.1:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
[I 12:44:00.225 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 12:44:00.229 NotebookApp]

    To access the notebook, open this file in a browser:
        file:///home/jovyan/.local/share/jupyter/runtime/nbserver-8-open.html
    Or copy and paste one of these URLs:
        http://924904e0a646:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
     or http://127.0.0.1:8888/?token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
*snip*

Now head to the URL shown and you will be greated with a XFCE desktop.

Limitations

  1. Desktop applications that require access to OpenGL are currently unsupported.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyter-remote-desktop-proxy-1.0.0.tar.gz (10.6 MB view details)

Uploaded Source

Built Distribution

File details

Details for the file jupyter-remote-desktop-proxy-1.0.0.tar.gz.

File metadata

File hashes

Hashes for jupyter-remote-desktop-proxy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ad40827b55ec9a51a4da27c0d6585a3712bbb639c25711c9a809176bf9b9d58a
MD5 1488bda8add222dd6b103f397724bebb
BLAKE2b-256 7360c0d5b6c14f09d725d5d363d8cf37bbf9fd6543e6999db143eb4278a3ac20

See more details on using hashes here.

File details

Details for the file jupyter_remote_desktop_proxy-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_remote_desktop_proxy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2e5248404f6a572a7940cb7fca4ded67312fc54335140b84748169d18fa65a0
MD5 65243d2acc5e40e79a91342129c89043
BLAKE2b-256 206a094f236302aff02acb183db5de8e088430bdc2973a5f1e551c0c366d5fbe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page