How to Install Jupyter Notebook on a Vultr Ubuntu 16.04 Server Instance

Published on: Fri, Mar 9, 2018 at 6:06 pm EST
Linux Guides Server Apps Ubuntu Web Servers

Introduction

Jupyter Notebook, derived from IPython, is a widely used, interactive data science web application which can be used to create and share scientific computing-related documents.

This article will show you how to install Jupyter Notebook on a Vultr Ubuntu 16.04 server instance for remote access using Python3 and pip.

Prerequisites

Before getting started, you need to:

  • Deploy a fresh Vultr Ubuntu 16.04 server instance.
  • Log in from an SSH terminal as a non-root sudo user, and let's say the username is "juser". You should follow the Debian instructions but execute /etc/init.d/ssh restart instead of /etc/init.d/sshd restart.

Update the system and install PIP

Use the following commands to update the system:

sudo apt-get update -y
sudo apt-get install python3-pip -y
pip3 install --upgrade pip

Install Jupyter Notebook

Install Jupyter Notebook.

sudo apt-get install python3-setuptools -y
sudo pip3 install jupyter

Configure Jupyter

Before configuring Jupyter Notebook, we'll need to make a config file, to do so, let's move to our home directory and make a new one.

cd ~
jupyter notebook --generate-config

Next, let's create a hashed password for our server, execute the following command and follow the instructions.

jupyter notebook password

For the sake of this tutorial, let's say the password is "jupyter". This will create the hash and save it in your jupyter_notebook_config.json which will be located at ~/.jupyter/jupyter_notebook_config.json.

Now, since we want at least some security let's make an SSL certificate under the .jupyter/cert directory.

cd .jupyter
mkdir cert
cd cert
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout jkey.key -out jcert.pem

Now let's edit the jupter_notebook_config.py. Open it with your favorite text editor and find the following lines, uncomment them, and change them as shown below.

Before editing.

#c.NotebookApp.password = ''
#c.NotebookApp.port = 8888
#c.NotebookApp.ip = 'localhost'
#c.NotebookApp.open_browser = False
#c.NotebookApp.certfile = ''
#c.NotebookApp.keyfile = ''

After editing.

c.NotebookApp.password = 'sha1:<your sha hashed password>'
c.NotebookApp.port = 8888
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.certfile = '/home/juser/.jupyter/cert/jcert.pem'
c.NotebookApp.keyfile = '/home/juser/.jupyter/cert/jkey.key'

Note: Remember your hashed password was saved under ~/.jupyter/jupyter_notebook_config.json.

Modify firewall

Modify the firewall rules.

sudo apt-get install firewalld -y
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
sudo systemctl restart firewalld.service

Conclusion

Run Jupyter Notebook with the command jupyter notebook, and visit https://<your server ip>:8888, ignore the security warning and use the password set earlier.

Remember you can run it with nohup if you want to log out and keep it running.

nohup jupyter notebook &

Want to contribute ?

You could earn up to $300 by adding new articles