Files
stellars-jupyterhub-ds/services/jupyterhub/conf/settings_dictionary.yml
stellarshenson 05c99624d9 feat: add activity score normalization with TARGET_HOURS
Added JUPYTERHUB_ACTIVITYMON_TARGET_HOURS env var (default 8) to
normalize activity scores based on expected daily work hours.

- Raw score (% of sampled time active) normalized to target
- 8h/day worker with 33% raw score -> 100% normalized
- Progress bar capped at 5 segments (100%)
- Tooltip shows real % with "(>8h/day)" indicator if over 100%

Files: Dockerfile, settings_dictionary.yml, jupyterhub_config.py,
activity.html
2026-01-25 12:17:26 +01:00

120 lines
3.4 KiB
YAML

# Settings Dictionary
# Defines environment variables displayed on the admin Settings page
# Categories are top-level keys, each containing a list of settings
# Each setting has: name (env var), description (UI label), default (fallback value)
JupyterHub Core:
- name: JUPYTERHUB_ADMIN
description: Admin username
default: admin
- name: JUPYTERHUB_BASE_URL
description: Base URL path
default: /jupyterhub
- name: JUPYTERHUB_SIGNUP_ENABLED
description: User self-registration (0=disabled, 1=enabled)
default: "1"
- name: JUPYTERHUB_SSL_ENABLED
description: SSL/TLS (0=disabled, 1=enabled)
default: "1"
- name: JUPYTERHUB_AUTOGENERATED_PASSWORD_WORDS
description: Number of words in auto-generated passwords
default: "4"
- name: JUPYTERHUB_AUTOGENERATED_PASSWORD_DELIMITER
description: Delimiter in auto-generated passwords
default: "-"
Docker Spawner:
- name: JUPYTERHUB_NOTEBOOK_IMAGE
description: User container image
default: stellars/stellars-jupyterlab-ds:latest
- name: JUPYTERHUB_NETWORK_NAME
description: Docker network for containers
default: jupyterhub_network
GPU:
- name: JUPYTERHUB_GPU_ENABLED
description: GPU support (0=disabled, 1=enabled, 2=auto-detect)
default: "2"
- name: JUPYTERHUB_NVIDIA_IMAGE
description: CUDA image for GPU detection
default: nvidia/cuda:13.0.2-base-ubuntu24.04
Services:
- name: JUPYTERHUB_SERVICE_MLFLOW
description: MLflow service (0=disabled, 1=enabled)
default: "1"
- name: JUPYTERHUB_SERVICE_RESOURCES_MONITOR
description: Resources monitor service (0=disabled, 1=enabled)
default: "1"
- name: JUPYTERHUB_SERVICE_TENSORBOARD
description: TensorBoard service (0=disabled, 1=enabled)
default: "1"
Idle Culler:
- name: JUPYTERHUB_IDLE_CULLER_ENABLED
description: Idle culler (0=disabled, 1=enabled)
default: "0"
- name: JUPYTERHUB_IDLE_CULLER_TIMEOUT
description: Idle timeout in seconds
default: "86400"
- name: JUPYTERHUB_IDLE_CULLER_INTERVAL
description: Check interval in seconds
default: "600"
- name: JUPYTERHUB_IDLE_CULLER_MAX_AGE
description: Max server age (0=unlimited)
default: "0"
- name: JUPYTERHUB_IDLE_CULLER_MAX_EXTENSION
description: Max session extension hours per session
default: "24"
Activity Monitor:
- name: JUPYTERHUB_ACTIVITYMON_RETENTION_DAYS
description: Sample retention period in days (1-365)
default: "7"
- name: JUPYTERHUB_ACTIVITYMON_HALF_LIFE
description: Decay half-life in hours (1-168)
default: "72"
- name: JUPYTERHUB_ACTIVITYMON_INACTIVE_AFTER
description: Minutes until user considered inactive (1-1440)
default: "60"
- name: JUPYTERHUB_ACTIVITYMON_TARGET_HOURS
description: Target daily work hours for 100% activity score (1-24)
default: "8"
- name: JUPYTERHUB_ACTIVITYMON_SAMPLE_INTERVAL
description: Activity sampling interval in seconds (60-86400)
default: "600"
- name: JUPYTERHUB_ACTIVITYMON_RESOURCES_UPDATE_INTERVAL
description: Resource refresh interval in seconds (status, CPU, memory)
default: "10"
- name: JUPYTERHUB_ACTIVITYMON_VOLUMES_UPDATE_INTERVAL
description: Volume sizes refresh interval in seconds (background)
default: "3600"
Branding:
- name: JUPYTERHUB_LOGO_URI
description: Custom logo URI
default: file:///srv/jupyterhub/logo.svg
- name: STELLARS_JUPYTERHUB_VERSION
description: Platform version
default: unknown