Skip to content

Commit 050f799

Browse files
rumzrgnet1
authored andcommitted
Added DGX Dashboard access over Tailnet instructions
1 parent f2709b8 commit 050f799

2 files changed

Lines changed: 88 additions & 14 deletions

File tree

nvidia/dgx-dashboard/README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414

1515
## Basic idea
1616

17-
The DGX Dashboard is a web application that runs locally on DGX Spark devices, providing a graphical interface for system updates, resource monitoring, and an integrated JupyterLab environment. Users can access the dashboard locally from the app launcher or remotely through NVIDIA Sync or SSH tunneling. The dashboard is the easiest way to update system packages and firmware when working remotely.
17+
The DGX Dashboard is a web application that runs locally on DGX Spark devices, providing a graphical interface for system updates, resource monitoring, and an integrated JupyterLab environment. Users can access the dashboard locally from the app launcher or remotely through NVIDIA Sync, SSH tunneling, or Tailscale. The dashboard is the easiest way to update system packages and firmware when working remotely.
1818

1919
## What you'll accomplish
2020

21-
You will learn how to access and use the DGX Dashboard on your DGX Spark device. By the end of this walkthrough, you will be able to launch JupyterLab instances with pre-configured Python environments, monitor GPU performance, manage system updates, and run a sample AI workload using Stable Diffusion. You'll understand multiple access methods including desktop shortcuts, NVIDIA Sync, and manual SSH tunneling.
21+
You will learn how to access and use the DGX Dashboard on your DGX Spark device. By the end of this walkthrough, you will be able to launch JupyterLab instances with pre-configured Python environments, monitor GPU performance, manage system updates, and run a sample AI workload using Stable Diffusion. You'll understand multiple access methods including desktop shortcuts, NVIDIA Sync, manual SSH tunneling, and Tailscale.
2222

2323
## What to know before starting
2424

@@ -98,6 +98,10 @@ Replace `<ASSIGNED_PORT>` with the port number from the YAML file.
9898

9999
Open your web browser and navigate to `http://localhost:11000`.
100100

101+
**Option D: Tailscale (alternative to manual SSH tunnels)**
102+
103+
For secure remote access over your private network without manual SSH tunneling, check out the [Tailscale playbook](../tailscale/README.md#step-12-access-dgx-dashboard-over-tailnet) for instructions on accessing the DGX Dashboard over the tailnet using Tailscale Serve.
104+
101105

102106
## Step 2. Log into DGX Dashboard
103107

nvidia/tailscale/README.md

Lines changed: 82 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@
1818
- [Step 9. Configure SSH authentication](#step-9-configure-ssh-authentication)
1919
- [Step 10. Test SSH connection](#step-10-test-ssh-connection)
2020
- [Step 11. Validate installation](#step-11-validate-installation)
21-
- [Step 13. Cleanup and rollback](#step-13-cleanup-and-rollback)
22-
- [Step 14. Next steps](#step-14-next-steps)
21+
- [Step 12. Access DGX Dashboard over Tailnet](#step-12-access-dgx-dashboard-over-tailnet)
22+
- [Step 13. Next steps](#step-13-next-steps)
23+
- [Step 14. Cleanup and rollback](#step-14-cleanup-and-rollback)
24+
2325
- [Troubleshooting](#troubleshooting)
2426

2527
---
@@ -316,14 +318,89 @@ Expected output:
316318
- Successful file transfers
317319
- Remote command execution working
318320

319-
### Step 13. Cleanup and rollback
321+
### Step 12. Access DGX Dashboard over Tailnet
322+
323+
The DGX Dashboard is locked to localhost:11000 for security. This means you can only access it over localhost thorugh the ssh tunnel. Instead of manually creating an SSH tunnel every time, use Tailscale Serve to proxy the traffic so you can access it via your Tailscale IP/URL from any device.
324+
325+
## On your DGX Spark machine, run:
326+
```bash
327+
## Proxy incoming Tailnet traffic to the local dashboard
328+
## The --bg flag ensures this keeps running after you close your terminal
329+
sudo tailscale serve --bg --http=11000 localhost:11000
330+
```
331+
332+
## Verify proxy is active:
333+
```bash
334+
tailscale serve status
335+
```
336+
337+
You can access the dashboard using the Tailscale IP address:
338+
339+
`http://<TAILSCALE_IP>:11000`
340+
341+
You can find your Tailscale IP by running `tailscale ip -4` on the DGX Spark device.
342+
343+
Alternatively, if you set up tailsale with Magic DNS, you can use your tailscale URL with:
344+
345+
`http://SPARK_HOST_NAME.XXXXX-YYYYYY.ts.net:11000`
346+
347+
Where XXXXX an YYYYYY are part of the custom domain name to your tailnet.
348+
349+
You can now bookmark this URL and access it anywhere on your tailnet.
350+
351+
**Option: Enable HTTPS (recommended for security)**
352+
353+
For secure HTTPS access with SSL certificates, enable MagicDNS and HTTPS Certificates in your Tailscale Admin Console:
354+
355+
1. Go to your Tailscale Admin Console
356+
2. Under DNS, ensure MagicDNS is enabled
357+
3. Scroll down to HTTPS Certificates and click Enable
358+
359+
Then, on your DGX Spark machine, reset the HTTP proxy and start the HTTPS proxy:
360+
361+
```bash
362+
# First, reset the old HTTP proxy
363+
sudo tailscale serve --http=11000 off
364+
365+
# Now, start the HTTPS proxy
366+
sudo tailscale serve --bg --https=11000 localhost:11000
367+
```
368+
369+
Access the dashboard securely via: `https://SPARK_HOST_NAME.XXXXX-YYYYYY.ts.net:11000`
370+
> **Note:** It may take a little longer on first load to set the SSL certificate. This is normal.
371+
372+
### Step 13. Next steps
373+
374+
Your Tailscale setup is complete. You can now:
375+
376+
- Access your DGX Spark device from any network with: `ssh <USERNAME>@<SPARK_HOSTNAME>`
377+
- Transfer files securely: `scp file.txt <USERNAME>@<SPARK_HOSTNAME>:~/`
378+
- Open the DGX Dashboard and start JupyterLab, then connect with:
379+
`ssh -L 8888:localhost:1102 <USERNAME>@<SPARK_HOSTNAME>`
380+
381+
> **Note:** Alternatively, see Step 12 for accessing the DGX Dashboard over Tailnet without manual SSH tunneling.
382+
383+
384+
### Step 14. Cleanup and rollback
320385

321386
Remove Tailscale completely if needed. This will disconnect devices from the
322387
tailnet and remove all network configurations.
323388

389+
**Option A: Remove only DGX Dashboard access**
390+
391+
If you want to keep Tailscale installed but stop serving the DGX Dashboard:
392+
393+
```bash
394+
## Remove DGX Dashboard access from tailnet (from Step 12)
395+
sudo tailscale serve --http=11000 off
396+
sudo tailscale serve --https=11000 off
397+
```
398+
324399
> [!WARNING]
325400
> This will permanently remove the device from your Tailscale network and require re-authentication to rejoin.
326401
402+
**Option B: Full Tailscale removal**
403+
327404
```bash
328405
## Stop Tailscale service
329406
sudo tailscale down
@@ -337,18 +414,11 @@ sudo rm /usr/share/keyrings/tailscale-archive-keyring.gpg
337414

338415
## Update package list
339416
sudo apt update
340-
```
341417

342-
To restore: Re-run installation steps 3-5.
343-
344-
### Step 14. Next steps
418+
```
345419

346-
Your Tailscale setup is complete. You can now:
347420

348-
- Access your DGX Spark device from any network with: `ssh <USERNAME>@<SPARK_HOSTNAME>`
349-
- Transfer files securely: `scp file.txt <USERNAME>@<SPARK_HOSTNAME>:~/`
350-
- Open the DGX Dashboard and start JupyterLab, then connect with:
351-
`ssh -L 8888:localhost:1102 <USERNAME>@<SPARK_HOSTNAME>`
421+
To restore: Re-run installation steps 3-5.
352422

353423
## Troubleshooting
354424

0 commit comments

Comments
 (0)