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
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
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.
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
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.
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.
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
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.
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.
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
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„.
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:
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„.
Jetzt siehst du das Jupyter Notebook Dashboard wie folgt:
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.