JupyterPi: Difference between revisions

From XPUB & Lens-Based wiki
No edit summary
No edit summary
Line 70: Line 70:


`sudo systemctl start jupyter@murtaugh`
`sudo systemctl start jupyter@murtaugh`
==Reset your jupyter password==
First run this to find your jupyterlab "port", which you will need to give it to the reset script in a second:
$ cat /home/USERNAME/.jupyter/jupyter_notebook_config.py
Then move to the folder where the reset script is:
$ cd /srv/jupyterpi/
And run the reset script:
$ sudo python3 reset_jupyter_password.py

Revision as of 11:30, 6 March 2024

Installing JupyterPi on a Raspberry Pi

Notes from Monday 20th of September 2021

Downloading the OS on the SD card

Downloaded latest Raspberry Pi OS Lite image which today was: https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2021-05-28/2021-05-07-raspios-buster-armhf-lite.zip

I stick the SD card into my laptop and use the "Disks" program to confirm what it's name is: /dev/mmcblk0

(nb this pipeline uses pv to show the progress -- you need to apt install it first -- or just remove it as it's not strictly necessary)

$ unzip -p 2021-05-07-raspios-buster-armhf-lite.zip | pv | sudo dd of=/dev/mmcblk0 bs=4M
1.75GiB 0:00:52 [34.2MiB/s] [                                              <=> ]
0+28608 records in
0+28608 records out
1874853888 bytes (1.9 GB, 1.7 GiB) copied, 89.6663 s, 20.9 MB/s

Follow the instructions for the case

https://shop.pimoroni.com/products/pibow-coupe-4?variant=29210100170835

And for the fan

https://shop.pimoroni.com/products/fan-shim

TINC

We're following this page Tinc to connect the pi to the XPUB virtual private network (VPN).

And we follow this page to add a node to the hub: XPUB_HUB_New_Nodes

(the Tinc page needs cleaning)

nginx

on XVM: We add nginx configurations on the XVM, adding a reverse proxy from /sandbol to 10.0.0.13.

on Sandbol: Then we install nginx on the pi as the webserver of the sandbol.

JupyterPi

Then, to set up the pi as a shared server with multiple Jupyter Lab instances for each user, you can use the code that we have been writing here:

https://git.xpub.nl/XPUB/jupyterpi

First jupyterlab needs to be installed:

`pip3 install jupyterlab`

You can use the make_user_accounts.py script with the following scripts:

  • `--passwords`: words.txt -- a txt file with ingredient words on each line to generate passwords with
  • `--from_file`: users.txt -- a txt file with a username on each line
  • `--servername`: sandbol -- a string

The script generates:

  • `users.csv`: a list of all the users, their personal ports, their passwords
  • `users.md`: a bulletpoint list with a link to the `/__LAB__/` link for each user
  • `users.nginx.conf`: snippets of nginx configuration that can be added to the main nginx config file

Then the service file template is copied:

`sudo cp templates/jupyterlab@.service /etc/systemd/system`

This service file is a template for all the jupyter lab services that are running, which is one for each user.

Now try to start one jupyterlab instance with:

`sudo systemctl start jupyter@murtaugh`

Reset your jupyter password

First run this to find your jupyterlab "port", which you will need to give it to the reset script in a second:

$ cat /home/USERNAME/.jupyter/jupyter_notebook_config.py

Then move to the folder where the reset script is:

$ cd /srv/jupyterpi/

And run the reset script:

$ sudo python3 reset_jupyter_password.py