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
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
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.
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
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.
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.
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
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.
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.
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
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‘.
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:
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«.
Ahora verás el panel de Jupyter Notebook como el siguiente:
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.