Platform:
-
Hardware: NVIDIA DGX Spark (GB10)
-
OS: Ubuntu 24.04 LTS (Debian-based)
-
DGX Dashboard:
/opt/nvidia/dgx-dashboard-service/build (Oct 2025 release) -
Use Case: Multi-user lab environment with individual Linux logins sharing a single Spark node
-
Logs:
pre-workaround.log (1.5 MB)
post-workaround.log (169.2 KB)
Problem Description
When multiple Linux users are added to a shared DGX Spark, DGX Dashboard authentication works correctly, but JupyterLab fails to start for any new user that is not explicitly listed in:
/opt/nvidia/dgx-dashboard-service/jupyterlab_ports.yaml
The dashboard returns an error similar to:
username "<newuser>" not found in jupyterlab_ports.yaml file
This occurs even when /home/<user>/jupyterlab/ exists (as required by DGX Dashboard).
Reproduction Steps
-
Create a new system user and grant sudo access:
sudo adduser ryan sudo usermod -aG sudo ryan -
Log into DGX Dashboard using that username/password.
→ Login succeeds, but JupyterLab fails to spawn. -
Examine
/opt/nvidia/dgx-dashboard-service/jupyterlab_ports.yaml:users: - username: nobody jupyterlab_port: 11001 - username: is-win jupyterlab_port: 11002 # <new user missing> -
Append the new user manually:
- username: ryan jupyterlab_port: 11003 -
Reboot DGX Spark or restart DGX Dashboard service:
sudo systemctl restart dgx-dashboard-service -
JupyterLab now spawns successfully.
Observed Behavior
-
Without manual YAML edit, JupyterLab launch fails.
-
Restarting
dgx-dashboard-serviceis required for the new mapping to load. -
Full reboot is not required.
-
The following directory rule must be respected:
-
/home/<user>/jupyterlab/must exist -
/home/<user>/jupyterlab/<workingdir>/must not exist (Dashboard creates it automatically)
-
Expected Behavior
For multi-user research environments:
-
DGX Dashboard should dynamically populate
jupyterlab_ports.yamlwhen a new authenticated user first launches JupyterLab, assigning a free port automatically. -
Manual YAML edits and service restarts should not be necessary.
Proposed Enhancement
-
Automatic user registration
On first login, DGX Dashboard detects new system usernames and appends a new entry tojupyterlab_ports.yamlusing the next available port. -
Hot reload of configuration
Enable live reload of the YAML mapping without requiring a service restart. -
Validation helper
Provide an admin CLI command, e.g.:dgx-dashboard users add <username> [--port <port>] dgx-dashboard users listto streamline multi-user provisioning.
Workaround (Verified)
users:
- username: nobody
jupyterlab_port: 11001
- username: is-win
jupyterlab_port: 11002
- username: ryan
jupyterlab_port: 11003
Restarting dgx-dashboard-service applies the change immediately. Note that this may not be the only place fixes are needed, though it appears to be enough to get the JupyterLab server to launch on other accounts.
Impact
Multi-user labs (universities, research groups, and shared HPC environments) currently must manually edit a privileged system file for every new account, which complicates administration and introduces potential configuration drift between updates.
Thank you for considering this enhancement request.
This change would greatly improve out-of-the-box usability for academic and enterprise teams sharing DGX Spark systems. It’s much more organized for us to create our own logins rather than share a common one.