Cómo instalar Jupyter Notebook con Nginx Proxy en Debian 12

Jupyter es una aplicación web gratuita y de código abierto para la informática interactiva y la ciencia de datos. Jupyter es compatible con todos los lenguajes de programación y proporciona múltiples programas, como JupyetrLab, que proporciona un entorno de edición multi-notebook rico en funciones y con pestañas, Notebook como creación de cuadernos ligera y simplificada, Qtconsole, y muchos más.

En este tutorial, aprenderás a instalar Jupyter y a configurar Jupyter Notebook en el servidor Debian 12. También protegerás Jupyter Notebook con una contraseña y ejecutarás Jupyter Notebook como un servicio systemd. Por último, instalarás y configurarás Nginx como proxy inverso para la instalación de Jupyter Notebook.

Requisitos previos

Antes de empezar, asegúrate de que tienes lo siguiente

  • Un servidor Debian 12
  • Un usuario no root con privilegios de administrador
  • Un nombre de dominio apuntando a la dirección IP del servidor

Instalación de paquetes Python

Antes de instalar Jupyter, debes instalar Python, el gestor de paquetes Pip Python, venv para crear un entorno virtual Python, y git. En esta sección, instalarás esos paquetes con el gestor de paquetes APT.

Para empezar, ejecuta el siguiente comando para actualizar el índice de paquetes de Debian.

sudo apt update

actualizar repo

Ahora instala Python y sus dependencias, como Pip, venv y el paquete Python Dev. Introduce«Y» para confirmar la instalación.

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

instalar paquetes

Una vez finalizada la instalación, ejecuta el siguiente comando‘pip3‘ para actualizar tu versión de Pip.

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

Ahora comprueba la versión de Python y Pip con el comando que aparece a continuación.

python3 --version
pip3 --version

Puedes ver a continuación que Python 3.11 y Pip 24.3 están instalados.

comprueba pip y python

Configurar el entorno virtual de Python

Después de haber instalado Python y otras dependencias, crearás un nuevo entorno virtual Python para la instalación de Jupyter. Con esto, tu instalación de Jupyter estará aislada en el entorno virtual. Además, necesitas un usuario Linux dedicado, así que asegúrate de que tienes tu usuario preparado.

Accede a tu usuario con el siguiente comando.

su - username

Ejecuta el comando‘python3‘ que aparece a continuación para crear un nuevo Entorno Virtual Python‘venv‘. Esto instalará Python y Pip en tu entorno virtual, que está separado de tu sistema.

python3 -m venv venv

Activa el entorno virtual Python‘venv‘. Una vez activado, tu intérprete de comandos será como ‘(venv) nombreusuario@host …‘.

source venv/bin/activate

crear venv

Si quieres desactivar‘venv‘, ejecuta el comando‘desactivar‘ que aparece a continuación.

deactivate

Instalar Jupyter

Ahora que has creado y activado el entorno virtual Python, puedes iniciar la instalación de Jupyter a través del gestor de paquetes Pip Python.

Para instalar Jupyter, ejecuta el comando‘pip3‘ que aparece a continuación.

pip3 install jupyter

A continuación puedes ver la instalación de Jupyter en un entorno virtual.

instalar juopyter

Una vez finalizada la instalación, comprueba la versión de Jupyter con el siguiente comando.

jupyter --version

En la siguiente salida, puedes ver la versión de cada componente de Jupyter que está instalado.

comprobar versión

Habilitar la autenticación en Jupyter Notebook

Una vez que hayas instalado Jupyter, configurarás la instalación de Jupyter Notebook habilitando la autenticación por contraseña.

En primer lugar, ejecuta el siguiente comando para generar la configuración de Jupyter Notebook. Esto generará una nueva configuración en‘~/.jupyter/jupyter_notebook_config.py‘.

jupyter notebook --geenrate-config

Ahora configura la contraseña para Jupyter Notebook utilizando el comando que aparece a continuación. Introduce la contraseña cuando se te pida y repite la operación.

jupyter notebook password

Por último, ejecuta el comando«desactivar» para desconectarte del entorno virtual «venv».

deactivate

Ejecutar Jupyter Notebook como un servicio Systemd

En esta sección, crearás un nuevo servicio systemd que ejecutará Jupyter Notebook. Con esto, Jupyter Notebook se ejecutará en segundo plano como un servicio systemd, y podrás gestionarlo fácilmente con la utilidad‘systemctl‘.

Crea un nuevo archivo de servicio systemd‘/etc/systemd/system/jupyter.service‘ con el siguiente editor‘nano‘.

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

Introduce la siguiente configuración para ejecutar Jupyter Notebook como un servicio systemd.

[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

Guarda el archivo y sal del editor.

Ahora ejecuta el comando‘systemctl‘ que aparece a continuación para reiniciar el gestor systemd y aplicar tus cambios.

sudo systemctl daemon-reload

jupyter systemd

Por último, inicia y activa el servicio«jupyter» con el comando que aparece a continuación.

sudo systemctl enable --now jupyter
sudo systemctl status jupyter

En la siguiente salida, puedes ver que el servicio«jupyter» se está ejecutando en tu sistema.

estado de jupyter

Permitir el acceso remoto a Jupyter Notebook

En esta sección, habilitarás el acceso remoto a Jupyter. Esto debes hacerlo si quieres configurar un proxy inverso delante de tu instalación de Jupyter.

Accede con tu usuario y abre la configuración de Jupyter ‘~/.jupyter/jupyter_notebook_config.py’ con el siguiente editor ‘nano’.

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

Para habilitar el acceso remoto, descomenta la opción‘c.ServerApp.allow_remote_access‘ y cambia el valor a‘True’.

c.ServerApp.allow_remote_access = True

Guarda el archivo y sal de él cuando hayas terminado.

A continuación, ejecuta el siguiente comando«systemctl» para reiniciar el servicio«jupyter» y aplicar los cambios. Con esto, se generará el nuevo token y podrás encontrarlo en el archivo de registro.

sudo systemctl restart jupyter

Por último, comprueba el estado del servicio«jupyter» con el siguiente comando.

sudo systemctl status jupyter

Echa un vistazo a la parte inferior del mensaje, y copia el token generado para Jupyter Notebook.

ficha

Configurar Nginx como proxy inverso

Ahora que Jupyter Notebook se está ejecutando como servicio, el siguiente paso es instalar Nginx y configurarlo como proxy inverso para Jupyter Notebook. De esta forma, podrás asegurar fácilmente Jupyter Notebook con HTTPS.

Instala el paquete‘nginx‘ con el siguiente comando‘apt‘.

sudo apt install nginx -y

instalar nginx

Una vez completada la instalación, crea una nueva configuración de bloque de servidor Nginx‘/etc/nginx/sites-available/jupyter‘ con el siguiente editor‘nano‘.

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

Introduce la configuración que aparece a continuación para configurar Nginx como proxy inverso para Jupyter Notebook. Asegúrate de cambiar el parámetro‘nombre_servidor‘ por tu nombre de dominio.

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;
}
}

Guarda el archivo y sal del editor.

A continuación, ejecuta el siguiente comando para activar el bloque de servidor‘jupyter‘ y verificar tu configuración de Nginx.

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

Si la configuración de Nginx es correcta, verás una salida como‘syntax is ok – test is successful‘.

configuración de nginx

Por último, ejecuta el siguiente comando‘systemctl‘ para reiniciar el servidor web Nginx y comprobar su estado.

sudo systemctl restart nginx
sudo systemctl status nginx

Si Nginx se está ejecutando, podrás ver una salida como la siguiente:

comprobar nginx

Acceder a Jupyter Notebook

Abre tu navegador web y visita el nombre de dominio de tu instalación de Jupyter Notebook, como http://lab.howtoforge.local/. Si la instalación se ha realizado correctamente, se te solicitará la autenticación de la contraseña de Jupyter.

Introduce tu contraseña y haz clic en«Iniciar sesión«.

inicio de sesión

Ahora verás el panel de Jupyter Notebook como el siguiente:

salpicadero

cuaderno

Conclusión

¡Enhorabuena! Has completado la instalación de Jupyter Notebook en el servidor Debian 12. Has instalado Jupyter Notebook y asegurado con autenticación. También has configurado Nginx como proxy inverso para Jupyter Notebook. Para el siguiente paso, quieres añadir certificados SSL para asegurar Jupyter Notebook e instalar algunas extensiones para ampliar la funcionalidad de Jupyter Notebook.

También te podría gustar...