Installation JupyterLab · 8 min read · Oct 21, 2025
Comment installer et configurer un environnement JupyterLab sur Rocky Linux 9

JupyterLab est un environnement de développement basé sur le web de nouvelle génération pour le projet Jupyter. Le projet Jupyter a été développé dans le but de créer des logiciels open-source, des normes ouvertes et des services pour le calcul interactif à travers plusieurs langages de programmation. JupyterLab offre une interface flexible qui permet aux développeurs de travailler avec des documents et des activités telles que des notebooks Jupyter, des éditeurs de texte, des terminaux et des composants personnalisés de manière flexible, intégrée et extensible. JupyterLab est la prochaine génération de Jupyter Notebook et est censé le remplacer à terme. Il prend en charge plus de 40 langages de programmation, y compris R, Python, Scala et Julia.
Ce tutoriel vous apprendra comment installer et configurer JupyterLab sur un serveur Rocky Linux 9.
Prérequis
- Un serveur exécutant Rocky Linux 9.
- Un utilisateur non-root avec des privilèges sudo.
- Un nom de domaine entièrement qualifié (FQDN) pointant vers votre serveur. Pour nos besoins, nous utiliserons
jupyterlab.example.comcomme nom de domaine. - SELinux est désactivé.
- Assurez-vous que tout est à jour.
$ sudo dnf update - Installez des paquets utilitaires de base. Certains d’entre eux peuvent déjà être installés.
$ sudo dnf install wget curl nano unzip yum-utils -y
Étape 1 - Configurer le pare-feu
La première étape consiste à configurer le pare-feu. Rocky Linux utilise le pare-feu Firewalld. Vérifiez l’état du pare-feu.
$ sudo firewall-cmd --state
running
Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous allons utiliser. Listez tous les services et ports actifs sur le pare-feu.
$ sudo firewall-cmd --permanent --list-services
Il devrait afficher la sortie suivante.
cockpit dhcpv6-client ssh
Wiki.js a besoin des ports HTTP et HTTPS pour fonctionner. Ouvrez-les.
$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent
Rechargez le pare-feu pour appliquer les modifications.
$ sudo firewall-cmd --reload
Étape 2 - Installer Nginx
Rocky Linux 9 est livré avec une version plus ancienne de Nginx. Vous devez télécharger le dépôt officiel de Nginx pour installer la dernière version.
Créez et ouvrez le fichier /etc/yum.repos.d/nginx.repo pour créer le dépôt officiel de Nginx.
$ sudo nano /etc/yum.repos.d/nginx.repo
Collez le code suivant dedans.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Installez le serveur Nginx.
$ sudo dnf install nginx -y
Vérifiez l’installation.
$ nginx -v
nginx version: nginx/1.22.1
Activez et démarrez le serveur Nginx.
$ sudo systemctl enable nginx --now
Vérifiez l’état du serveur.
$ sudo systemctl status nginx
? nginx.service - nginx - serveur web haute performance
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-12-13 06:07:05 UTC; 31s ago
Docs: http://nginx.org/en/docs/
Process: 146475 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 146476 (nginx)
Tasks: 2 (limit: 5911)
Memory: 1.9M
CPU: 15ms
CGroup: /system.slice/nginx.service
??146476 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??146477 "nginx: worker process"
Étape 3 - Installer JupyterLab
Vérifions d’abord la version de Python.
$ python -V
Python 3.9.14
Installez le gestionnaire de paquets PIP.
$ sudo dnf install python3-pip
Créez un répertoire pour JupyterLab.
$ mkdir jupyterlab
Passez au répertoire nouvellement créé.
$ cd ~/jupyterlab
Configurez un environnement virtuel appelé jupyterlab_env.
$ python3 -m venv --system-site-packages jupyterlab_env
Activez l’environnement.
$ source jupyterlab_env/bin/activate
Mettez à jour le gestionnaire de paquets Pip.
(jupyterlab_env) $ pip install --upgrade pip
Installez JupyterLab.
(jupyterlab_env) $ pip install jupyterlab
Étape 4 - Configurer JupyterLab
Par défaut, JupyterLab génère un nouveau jeton chaque fois que vous le démarrez pour accorder l’accès à l’interface. Remplaçons-le par une authentification par mot de passe.
Générez un hachage de mot de passe. Remplacez YOUR_PASSWORD par un mot de passe fort de votre choix.
(jupyterlab_env) $ python3 -c "from jupyter_server.auth import passwd; print(passwd('YOUR_PASSWORD'))"
La commande ci-dessus générera un long hachage de mot de passe. Il utilise la fonction de hachage de mot de passe Argon2. Notez le hachage.
Créez un fichier de configuration JupyterLab.
(jupyterlab_env) $ jupyter lab --generate-config
La commande ci-dessus générera un fichier de configuration avec des valeurs par défaut et l’enregistrera dans le répertoire ~/.jupyter.
Ouvrez le fichier pour l’éditer.
(jupyterlab_env) $ nano ~/.jupyter/jupyter_lab_config.py
Trouvez les variables suivantes, décommentez-les et changez leur valeur comme ci-dessous. Remplacez PASSWORD_HASH par le hachage généré ci-dessus.
c.ServerApp.allow_remote_access = True
c.ServerApp.password = 'PASSWORD_HASH'
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Ouvrez le port 8888 dans le pare-feu.
$ sudo firewall-cmd --add-port=8888/tcp --permanent
$ sudo firewall-cmd --reload
Exécutez le serveur JupyterLab. Le paramètre --ip 0.0.0.0 lui permet d’écouter n’importe quelle adresse IP et pas seulement localhost.
$ jupyter lab --ip 0.0.0.0
La commande ci-dessus lance un serveur JupyterLab sur le port par défaut 8888 que nous avons ouvert. Lancez l’URL http:// dans votre navigateur et vous verrez l’écran suivant.

Entrez votre mot de passe et cliquez sur le bouton Connexion pour ouvrir l’interface JupyterLab.

Maintenant que l’accès est confirmé, appuyez sur Ctrl + C pour arrêter le serveur et entrez y lorsque vous y êtes invité pour arrêter.
Étape 5 - Créer un fichier de service JupyterLab
Quittez l’environnement virtuel.
(jupyterlab_env) $ deactivate
Créez un nouveau fichier de service pour JupyterLab.
$ sudo nano /lib/systemd/system/jupyterlab.service
Collez le code suivant dedans.
[Unit]
Description=Serveur JupyterLab
[Service]
User=USER
Group=USER
Type=simple
WorkingDirectory=/home/USER/jupyterlab
ExecStart=/home/USER/jupyterlab/jupyterlab_env/bin/jupyter-lab --config=/home/USER/.jupyter/jupyter_lab_config.py
StandardOutput=null
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Remplacez USER par l’utilisateur actuellement connecté de votre système.
Initialisez le service JupyterLab.
$ sudo systemctl daemon-reload
Activez et démarrez le service JupyterLab.
$ sudo systemctl enable jupyterlab --now
Vérifiez l’état du service.
$ sudo systemctl status jupyterlab
? jupyterlab.service - Serveur JupyterLab
Loaded: loaded (/usr/lib/systemd/system/jupyterlab.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2022-12-13 11:45:26 UTC; 5s ago
Main PID: 151675 (jupyter-lab)
Tasks: 1 (limit: 5911)
Memory: 59.0M
CPU: 1.943s
CGroup: /system.slice/jupyterlab.service
??151675 /home/navjot/jupyterlab/jupyterlab_env/bin/python3 /home/navjot/jupyterlab/jupyterlab_env/bin/jupyter-lab --config=/home/navjot/.jupyter/jupyter_lab_config.py
Dec 13 11:45:26 jupyter.example.com systemd[1]: Started JupyterLab Server.
Étape 6 - Installer SSL
Avant de continuer, nous devons installer l’outil Certbot et un certificat SSL pour notre domaine.
Pour installer Certbot, nous utiliserons le gestionnaire de paquets Snapd. Snapd porte toujours la dernière version stable de Certbot et vous devriez l’utiliser.
L’outil Snapd nécessite le dépôt Epel pour fonctionner.
$ sudo dnf install epel-release -y
Nous utiliserons Snapd pour installer Certbot. Installez Snapd.
$ sudo dnf install snapd -y
Activez et démarrez le service Snap.
$ sudo systemctl enable snapd.socket --now
Créez les liens nécessaires pour que Snapd fonctionne.
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Assurez-vous que votre version de snapd est à jour.
$ sudo snap install core
$ sudo snap refresh core
Installez Certbot.
$ sudo snap install --classic certbot
Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Générez un certificat SSL.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d jupyterlab.example.com
La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/jupyterlab.example.com sur votre serveur.
Générez un certificat de groupe Diffie-Hellman.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Faites un essai à blanc du processus pour vérifier si le renouvellement SSL fonctionne correctement.
$ sudo certbot renew --dry-run
Si vous ne voyez pas d’erreurs, vous êtes prêt. Votre certificat se renouvellera automatiquement.
Étape 7 - Configurer Nginx
Créez et ouvrez le fichier /etc/nginx/conf.d/jupyterlab.conf pour l’éditer.
$ sudo nano /etc/nginx/conf.d/jupyterlab.conf
Collez le code suivant dans le fichier jupyterlab.conf. Remplacez toutes les occurrences de jupyterlab.example.com par votre domaine.
## imposer HTTPS
server {
listen 80;
listen [::]:80;
server_name jupyterlab.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name jupyterlab.example.com;
access_log /var/log/nginx/jupyterlab.access.log;
error_log /var/log/nginx/jupyterlab.error.log;
client_max_body_size 20m;
http2_push_preload on; # Activer le serveur HTTP/2 Push
ssl_certificate /etc/letsencrypt/live/jupyterlab.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jupyterlab.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/jupyterlab.example.com/chain.pem;
ssl_session_timeout 1d;
# Activer les versions TLS (TLSv1.3 est requis pour le prochain HTTP/3 QUIC).
ssl_protocols TLSv1.2 TLSv1.3;
# Activer le 0-RTT de TLSv1.3. Utilisez $ssl_early_data lors du proxy inverse pour
# prévenir les attaques de rejeu.
#
# @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
ssl_early_data on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# OCSP Stapling ---
# récupérer les enregistrements OCSP à partir de l'URL dans ssl_certificate et les mettre en cache
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
add_header X-Early-Data $tls1_3_early_data;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Scheme $scheme;
proxy_buffering off;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8888;
}
}
# Ce bloc est utile pour déboguer TLS v1.3. N'hésitez pas à le supprimer
# et à utiliser la variable `$ssl_early_data` exposée par NGINX directement si vous
# souhaitez le faire.
map $ssl_early_data $tls1_3_early_data {
"~." $ssl_early_data;
default "";
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
La configuration ci-dessus redirigera toutes les requêtes HTTP vers HTTPS et servira de proxy pour le service JupyterLab afin de le servir via votre domaine.
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Ouvrez le fichier /etc/nginx/nginx.conf pour l’éditer.
$ sudo nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.
Vérifiez votre configuration Nginx.
$ sudo nginx -t
Si vous ne voyez pas d’erreurs, cela signifie que vous êtes prêt à partir. Rechargez le serveur Nginx.
$ sudo systemctl reload nginx
Vous pouvez maintenant accéder à JupyterLab en visitant l’URL https://jupyterlab.example.com dans votre navigateur.
Conclusion
Cela conclut notre tutoriel sur l’installation et la configuration de JupyterLab sur un serveur Rocky Linux 9 et son service via le serveur proxy Nginx. Si vous avez des questions, postez-les dans les commentaires ci-dessous.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.