Before performing an upgrade, you might want to back up some components of the stack.
JupyterHub keeps the state in a sqlite database, with information such as the last login and whether a user is an admin or not.
TLJH keeps the database in the /opt/tljh/state directory on the server. The full path to the database is /opt/tljh/state/jupyterhub.sqlite.
/opt/tljh/state
/opt/tljh/state/jupyterhub.sqlite
To know more about backing up the database please refer to:
The JupyterHub documentation
The TLJH documentation on the state files
For more info on where TLJH is installed: What does the installer do?
This TLJH plugin is a regular Python package.
It is installed in /opt/tljh/hub/lib/python3.6/site-packages/tljh_plasma, and doesn’t need to be backed up as it doesn’t hold any state.
/opt/tljh/hub/lib/python3.6/site-packages/tljh_plasma
The user environments correspond to Docker images on the host. There is no need to back them up as they will stay untouched if not removed manually.
It is generally recommended to have a backup strategy for important data such as user data.
This can be achieved by setting up tools that for example sync the user home directories to another machine on a regular basis.
Check out the User Data section to know more about user data.
To perform an upgrade of the setup, you can re-run the playbooks as explained in Deploying with Ansible.
Re-running the playbooks will:
Update the TLJH Plasma plugin
Update TLJH
Restart JupyterHub and the Proxy to take new changes into account
However, performing an upgrade does not:
Stop user servers
Remove user environments (Docker images)
Delete user data
In most cases, it is enough to only run the tljh.yml playbook to perform the upgrade.
tljh.yml
Refer to Running individual playbooks for more info.