This guide shows you how to install jupyterhub-fancy-profiles with your JupyterHub deployment.
Installation with zero to jupyterhub (z2jh)¶
Configuration via the Zero to JupyterHub helm chart is the most common deployment method. We provide pre-built Docker images that bundle jupyterhub-fancy-profiles with the appropriate z2jh hub image.
Step 1: Find the right docker tag¶
Browse the list of available tags and find a tag that matches your z2jh version.
For example, if you’re using z2jh version 4.2.0, look for a tag like 4.2.0-*.
Step 2: Configure your helm values¶
Add the following to your values.yaml file:
hub:
image:
name: quay.io/yuvipanda/z2jh-hub-with-fancy-profiles
tag: <tag-from-the-list>
extraConfig:
01-enable-fancy-profiles: |
from jupyterhub_fancy_profiles import setup_ui
setup_ui(c)Replace <tag-from-the-list> with the actual tag you found in Step 1.
Step 3: Deploy¶
Run your Helm upgrade:
helm upgrade --install jupyterhub jupyterhub/jupyterhub \
--namespace jupyterhub \
--values values.yamlThat’s it! Your JupyterHub should now have fancy profiles enabled.
Installation with kubespawner in jupyterhub configuration¶
If you’re running JupyterHub with KubeSpawner but not using z2jh, you can install the package directly.
Step 1: Install the package¶
In your hub image or environment, install the package:
pip install jupyterhub-fancy-profilesStep 2: Configure jupyterhub¶
Add the following to your jupyterhub_config.py:
from jupyterhub_fancy_profiles import setup_ui
setup_ui(c)The setup_ui() function will:
Configure extra templates for rendering the profile list UI
Set up HTTP handlers for serving static assets (JavaScript, CSS)
Step 3: Restart jupyterhub¶
Restart your JupyterHub hub to apply the changes.
Verification¶
After installation, you should see the fancy profile selector when users try to start their server. The UI will display:
Rich profile descriptions with images
Better organized options
Improved form controls for custom selections
If you don’t see the new UI:
Check that your profiles are configured in KubeSpawner (see the User Guide)
Verify that
setup_ui(c)is being called in your configurationCheck the JupyterHub logs for any errors