The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. In this post, I will demonstrate how to setup a public Jupyter Notebook Server with self-signed HTTPs.
Prerequisite
Python3
pip3
Install and Setup Jupyter Notebook
You can install Jupyter with pip3.
Beyond the default configuration settings, you can configure a rich array of options to suit your workflow. To create a jupyter_notebook_config.py file in the .jupyter directory, with all the defaults commented out, use the following command:
First prepare a hashed password using the function notebook.auth.security.passwd().
To use SSL for encrypted communication, a self-signed certificate can be generated with openssl.
Modify the generated configuration file.
Copy the hashed password to c.NotebookApp.password
Set the full paths to the key file and the certification file
Set IP to '*' to binds on all interfaces for public server
Move to your working directory and type the following command.
Now you can access your Jupyter Notebook with https://ip.to.your.server:8888/. Noted that the https at the front and the default port is 8888. Since the certification is self-signed, there will be a warning from the browser. Just click on Advance and Proceed to ip.to.your.server (unsafe) and you are ready to go.
Conclusion
Jupyter Notebook has supprot for over 40 programming languages, including Python, R, Julia, and Scala. Now you can check out here.