5.5. Service « nb_serverproxy_xpra »#

Ce plugins Jupyter lab permet d’utiliser Jupyter server proxy pour Xpra dans un serveur de cours basé sur Jupyter.

Il permet d’ouvrir un terminal xfce4-terminal sur le serveur dans une page du navigateur, pour ensuite lancer des applications X11 comme spyder, libre office, texmaker , Visual studio qui s’exécutent sur le serveur de cours.

Cela permet:

  • un accès https, donc pas d’encodage supplémentaire sous Xpra,

  • l’authentification se fait par jupyterhub, et non avec Xpra

Cette intégration est basée sur 2 intégrations

Pour contrôler l’environnement de xpra (qui est l’environnement système et pas l’environnement virtuel python), la commande xpra utilisé est dans bin.

Voir la documentation ici Applications (Xpra) sous Jupyterlab

5.5.1. Correction pour debian 11 (menu XDG)#

pour gérer les menus affichés sous Xpra

  cd etc/xdg/menus
  ln -s xfce-applications.menu kde-debian-menu.menu

dans /usr/share/applications on gère la liste des applications desktop pour le menu de xpra (enlever les applications inutiles en les déplaçant dans un sous-répertoire REMOVE )

5.5.2. Configuration de xpra#

configuration de xpra dans /etc/xpra/xpar.conf

speaker = off
pulseaudio = off
printing  = no 
compression_level = 1
compressors       = none, lz4, zlib, brotli
csc-modules       = all,
mdns = no
notifications=no

et dans /etc/xpra/conf.d/55_server_x11.conf limitation de la taille de l’écran (HD)

xvfb = Xvfb +extension GLX +extension Composite -screen 0 \
    1920x1200x24+32 -nolisten tcp -noreset -auth $XAUTHORITY \
    -dpi 96

5.5.3. Applications#

On peut ajouter le lancement directe des applications en utilisant le modèle précédent et en modifiant le lancement du terminal en ajoutant le programme à lancer avec le bon environnement. La script de lancement de l’application est dans bin et son logo dans icons. Actuellement la liste des applications pouvant être lancé directement avec une integration jupyterlab

installation de ghostwriter

   sudo add-apt-repository ppa:wereturtle/ppa
   sudo apt update
   sudo apt install ghostwriter

attention une fois installé, il faut sauvegarder le fichier wereturtle-ubuntu-ppa-lunar.list dans wereturtle-ubuntu-ppa-lunar.list.save (pble de compatibilité)

5.5.4. dépendance#

  • nodejs (version 14)

    curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
    

vérification: cat /etc/apt/sources.list.d/nodesource.list

deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_14.x bullseye main
deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_14.x bullseye main

installation

  apt-get install -y nodejs
  • jupyter-server-proxy

    pip install jupyter-server-proxy
    jupyter labextension install @jupyterlab/server-proxy
    jupyter lab build
    

attention aux versions de jupyter: tester avec jupyter-server-proxy 3.2.1

jupyter                           1.0.0
jupyter_client                    7.4.9
jupyter-console                   6.2.0
jupyter-contrib-core              0.3.3
jupyter-contrib-nbextensions      0.5.1
jupyter_core                      5.2.0
jupyter-dash                      0.4.2
jupyter-highlight-selected-word   0.2.0
jupyter-latex-envs                1.4.6
jupyter-nbextensions-configurator 0.4.1
jupyter-server                    1.17.0
jupyter-server-proxy              3.2.1
jupyter-telemetry                 0.1.0
jupyterhub                        1.5.0
jupyterhub-idle-culler            1.2.1
jupyterhub-ltiauthenticator       1.3.0
jupyterhub-systemdspawner         0.16
jupyterlab                        3.2.3
jupyterlab-latex                  3.1.0
jupyterlab-launcher               0.13.1
jupyterlab-pygments               0.1.2
jupyterlab-pytutor                0.1.1
jupyterlab-server                 2.14.0
jupyterlab-widgets                1.1.0
  • Xpra multi-platform screen and application forwarding system « screen for X11 »

installation du serveur xpra (ajouter dans les sources des paquets https://xpra.org pour avoir la dernière version)

 apt-get install xpra
 apt-get install xpra-html5

Il faut bien évidemment installer les bibliothèques X11, gnome et opengl

5.5.5. installation#

  python3 setup.py build
  python3 setup.py install

5.5.6. Authors and acknowledgment#

Marc BUFFAT, dpt mécanique, Université Lyon 1

5.5.7. License#

Projet sous licence libre, mais sans garantie

5.5.8. Project status#

Projet en cours de développement