So installierst du Jupyter Notebook mit Nginx Proxy unter Debian 12

Jupyter ist eine freie und quelloffene Webanwendung für interaktives Computing und Data Science. Jupyter unterstützt alle Programmiersprachen und bietet verschiedene Software an, wie z.B. JupyetrLab, das eine funktionsreiche Bearbeitungsumgebung für mehrere Notizbücher mit Registerkarten bietet, Notebook als leichtgewichtige und vereinfachte Notizbucherstellung, Qtconsole und viele mehr.

In diesem Tutorial lernst du, wie du Jupyter installierst und Jupyter Notebook auf dem Debian 12 Server konfigurierst. Außerdem sicherst du Jupyter Notebook mit einem Passwort und führst Jupyter Notebook als systemd-Dienst aus. Zum Schluss installierst und konfigurierst du Nginx als Reverse Proxy für die Installation von Jupyter Notebook.

Voraussetzungen

Bevor du beginnst, solltest du sicherstellen, dass du Folgendes hast

  • Einen Debian 12-Server
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten
  • Einen Domainnamen, der auf die IP-Adresse des Servers zeigt

Installation von Python-Paketen

Bevor du Jupyter installierst, musst du Python, den Python-Paketmanager Pip, venv zum Erstellen einer virtuellen Python-Umgebung und git installieren. In diesem Abschnitt wirst du diese Pakete mit dem APT-Paketmanager installieren.

Um zu beginnen, führe den folgenden Befehl aus, um deinen Debian-Paketindex zu aktualisieren.

sudo apt update

Repo aktualisieren

Installiere nun Python und Abhängigkeiten wie Pip, venv und das Python Dev Paket. Gib „Y“ ein, um die Installation zu bestätigen.

sudo apt install python3 python3-pip python3-dev python3-venv git

Pakete installieren

Nachdem die Installation abgeschlossen ist, führe den Befehl „pip3“ aus, um deine Pip-Version zu aktualisieren.

pip3 install --break-system-package --upgrade pip

Überprüfe nun die Python- und Pip-Version mit dem unten stehenden Befehl.

python3 --version
pip3 --version

Du siehst unten, dass Python 3.11 und Pip 24.3 installiert sind.

pip und python überprüfen

Einrichten der virtuellen Python-Umgebung

Nachdem du Python und andere Abhängigkeiten installiert hast, erstellst du eine neue virtuelle Python-Umgebung für die Jupyter-Installation. Damit wird deine Jupyter-Installation in der virtuellen Umgebung isoliert. Außerdem brauchst du einen eigenen Linux-Benutzer, also stelle sicher, dass du deinen Benutzer bereit hast.

Melde dich mit dem unten stehenden Befehl bei deinem Benutzer an.

su - username

Führe den Befehl „python3“ aus, um eine neue virtuelle Python-Umgebung „venv“ zu erstellen. Dadurch werden Python und Pip in deiner virtuellen Umgebung installiert, die von deinem System getrennt ist.

python3 -m venv venv

Aktiviere die virtuelle Python-Umgebung „venv„. Sobald sie aktiviert ist, sieht deine Shell-Eingabeaufforderung so aus: „(venv) username@host …„.

source venv/bin/activate

venv erstellen

Wenn du „venv“ deaktivieren möchtest, führe den Befehl „deaktivieren“ unten aus.

deactivate

Installation von Jupyter

Nachdem du die virtuelle Python-Umgebung erstellt und aktiviert hast, kannst du die Jupyter-Installation über den Pip Python-Paketmanager starten.

Um Jupyter zu installieren, führst du den Befehl „pip3“ aus.

pip3 install jupyter

Unten siehst du die Installation von Jupyter in einer virtuellen Umgebung.

Juopyter installieren

Sobald die Installation abgeschlossen ist, überprüfe die Jupyter-Version mit dem folgenden Befehl.

jupyter --version

In der folgenden Ausgabe siehst du die Version jeder Jupyter-Komponente, die installiert ist.

Version prüfen

Aktiviere die Authentifizierung im Jupyter Notebook

Nachdem du Jupyter installiert hast, konfigurierst du die Jupyter Notebook-Installation, indem du die Passwortauthentifizierung aktivierst.

Führe zunächst den folgenden Befehl aus, um die Konfiguration für Jupyter Notebook zu erstellen. Dadurch wird eine neue Konfiguration in „~/.jupyter/jupyter_notebook_config.py“ erstellt.

jupyter notebook --geenrate-config

Richte nun das Passwort für Jupyter Notebook mit dem unten stehenden Befehl ein. Gib dein Passwort ein, wenn du dazu aufgefordert wirst und wiederhole es.

jupyter notebook password

Zum Schluss führst du den Befehl „deaktivieren“ aus, um dich aus der virtuellen Umgebung „venv“ abzumelden.

deactivate

Jupyter Notebook als Systemd-Dienst ausführen

In diesem Abschnitt erstellst du einen neuen systemd-Dienst, der Jupyter Notebook ausführt. Damit läuft das Jupyter Notebook im Hintergrund als systemd-Dienst und du kannst es mit dem Dienstprogramm„systemctl“ einfach verwalten.

Erstelle eine neue systemd-Dienstdatei „/etc/systemd/system/jupyter.service“ mit dem folgenden „nano„-Editor.

sudo nano /etc/systemd/system/jupyter.service

Füge die unten stehende Konfiguration ein, um Jupyter Notebook als systemd-Dienst auszuführen.

[Unit]
Description=Jupyter Notebook
[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/home/alice/venv/bin/jupyter-notebook --config=/home/alice/.jupyter/jupyter_notebook_config.py --allow-root
User=root
Group=root
WorkingDirectory=/home/alice/venv
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Speichere die Datei und beende den Editor.

Führe nun den Befehl „systemctl“ aus, um den systemd Manager neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl daemon-reload

jupyter systemd

Starte und aktiviere schließlich den Dienst „jupyter“ mit dem unten stehenden Befehl.

sudo systemctl enable --now jupyter
sudo systemctl status jupyter

In der folgenden Ausgabe kannst du sehen, dass der Dienst „jupyter“ auf deinem System läuft.

Jupyter-Status

Fernzugriff auf Jupyter Notebook zulassen

In diesem Abschnitt wirst du den Fernzugriff auf Jupyter aktivieren. Dies ist notwendig, wenn du einen Reverse Proxy vor deiner Jupyter-Installation einrichten willst.

Melde dich mit deinem Benutzer an und öffne die Jupyter-Konfiguration „~/.jupyter/jupyter_notebook_config.py“ mit dem Editor „nano“.

su - username
nano ~/.jupyter/jupyter_notebook_config.py

Um den Fernzugriff zu aktivieren, entkommentiere die Option „c.ServerApp.allow_remote_access“ und ändere den Wert in „True„.

c.ServerApp.allow_remote_access = True

Speichere und beende die Datei, wenn du fertig bist.

Als Nächstes führst du den Befehl „systemctl“ aus, um den Dienst „jupyter“ neu zu starten und deine Änderungen zu übernehmen. Dadurch wird das neue Token generiert und kann in der Logdatei gefunden werden.

sudo systemctl restart jupyter

Überprüfe abschließend den Status des„jupyter„-Dienstes mit dem folgenden Befehl.

sudo systemctl status jupyter

Wirf einen Blick auf den unteren Teil der Meldung und kopiere das generierte Token für Jupyter Notebook.

Token

Nginx als Reverse Proxy einrichten

Da Jupyter Notebook nun als Dienst läuft, musst du im nächsten Schritt Nginx installieren und als Reverse-Proxy für Jupyter Notebook konfigurieren. Auf diese Weise kannst du Jupyter Notebook ganz einfach mit HTTPS absichern.

Installiere das Paket „nginx“ mit dem unten stehenden„apt„-Befehl.

sudo apt install nginx -y

nginx installieren

Nachdem die Installation abgeschlossen ist, erstelle eine neue Nginx-Serverblockkonfiguration „/etc/nginx/sites-available/jupyter“ mit dem folgenden „nano„-Editor.

sudo nano /etc/nginx/sites-available/jupyter

Füge die folgende Konfiguration ein, um Nginx als Reverse Proxy für das Jupyter Notebook einzurichten. Achte darauf, dass du den Parameter „server_name“ durch deinen Domainnamen ersetzt.

server {
listen 80;
server_name lab.howtoforge.local;
access_log /var/log/nginx/howtoforge.local.access.log;
error_log /var/log/nginx/howtoforge.local.error.log;

location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}

Speichere die Datei und beende den Editor.

Als Nächstes führst du den folgenden Befehl aus, um den Serverblock „jupyter“ zu aktivieren und deine Nginx-Konfiguration zu überprüfen.

sudo ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled/
sudo nginx -t

Wenn du Nginx richtig eingestellt hast, siehst du eine Ausgabe wie „syntax is ok – test is successful„.

nginx-Einrichtung

Führe abschließend den Befehl „systemctl“ aus, um den Nginx-Webserver neu zu starten und den Nginx-Status zu überprüfen.

sudo systemctl restart nginx
sudo systemctl status nginx

Wenn Nginx läuft, siehst du eine Ausgabe wie die folgende:

nginx prüfen

Zugriff auf das Jupyter Notebook

Öffne deinen Webbrowser und rufe den Domainnamen deiner Jupyter Notebook-Installation auf, z. B. http://lab.howtoforge.local/. Wenn deine Installation erfolgreich war, wirst du aufgefordert, dich mit dem Jupyter-Passwort zu authentifizieren.

Gib dein Passwort ein und klicke auf „Anmelden„.

Anmeldung

Jetzt siehst du das Jupyter Notebook Dashboard wie folgt:

Dashboard

Notizbuch

Fazit

Herzlichen Glückwunsch! Du hast die Installation von Jupyter Notebook auf dem Debian 12 Server abgeschlossen. Du hast Jupyter Notebook installiert und mit der Authentifizierung gesichert. Außerdem hast du Nginx als Reverse Proxy für Jupyter Notebook konfiguriert. Im nächsten Schritt möchtest du SSL-Zertifikate hinzufügen, um Jupyter Notebook zu sichern, und einige Erweiterungen installieren, um die Funktionen von Jupyter Notebook zu erweitern.

Das könnte dich auch interessieren …