An interactive Git workshop for the ultimate novice. You can check it out here.
This git
workshop was created to run on a distributed JupyterHub instance, where each user has its own computational environments and resources without the burden of installation and maintenance tasks, bringing the power of Jupyter to a group of users at the same time.
Our deployment, due to the required low number of users per instance, used The Littlest JupyterHub (TLJH) in GCP (Google Cloud Platform) and used bash_kernel to enable a Jupyter kernel for bash
.
Deployment details for TLJH can be found here with the added step of configuring bash_kernel
using:
sudo -E pip install bash_kernel
sudo -E python -m bash_kernel.install
The command sudo -E
is very important when admin users can install packages since it is required to install within the User Environment, i.e., the conda
environment that is shared by all users in the JupyterHub instance.
To allow all users access to the necessary workshop files, one needs to create a folder within /srv/data/
, in our case, we cloned this repository.
sudo git clone https://github.com/acmfeup/git-workshop.git
In this case, sudo
is required since we are accessing folders only accessible by admins unless you access the server through ssh.
After the command above, every user now has read access to the folder, but no easy way of accessing the files.
To solve this problem, one only needs to access the user's skeleton directory, and, finally, creating a symbolic link to the required files.
cd /etc/skel
sudo ln -s /srv/data/git-workshop/messy_files messy_files
sudo ln -s /srv/data/git-workshop/workshop.ipynb workshop.ipynb
Lastly, TLJH has the classic Jupyter Notebook interface, however, since, for git, folder and repository management is something very important, JupiterLab is a better alternative due to the visibility of the file system. Thankfully, JupiterLab (along with nteract) are also shipped with TLJH by default. One can try them temporarily, by accessing them through the change of /tree
to /lab
or /nteract
, and, after validation, change the default interface whenever one logins by running the following:
sudo tljh-config set user_environment.default_app jupyterlab
sudo tljh-config reload hub