TIP
If you haven't already installed NVIDIA Sync, learn how here.
From your laptop:
You must first make sure that your user account can run Docker commands on the Spark without sudo.
To test that, in the terminal run:
docker ps > /dev/null
Success: If the command returns a blank, then skip ahead to Step 3.
Otherwise, you will see a permission denied error, which means you still need to remove the sudo requirement. To do that, add your user to the docker group with the commands below.
sudo usermod -aG docker $USER
newgrp docker
Then verify the change is set by testing Docker access again with the command:
docker ps > /dev/null
Pull the container image onto your Spark with the command:
docker pull ghcr.io/open-webui/open-webui:ollama
Wait for the image to download, then go to Step 4.
A custom application lets NVIDIA Sync start Open WebUI and automatically forward its port.
In the NVIDIA Sync device window:
Select Add New in the Custom section.
Fill out the form with these values:
Then, copy and paste the entire script below into the Launch Script field
#!/usr/bin/env bash
set -euo pipefail
NAME="open-webui"
IMAGE="ghcr.io/open-webui/open-webui:ollama"
cleanup() {
echo "Signal received; stopping ${NAME}..."
docker stop "${NAME}" >/dev/null 2>&1 || true
exit 0
}
trap cleanup INT TERM HUP QUIT EXIT
# Ensure Docker CLI and daemon are available
if ! docker info >/dev/null 2>&1; then
echo "Error: Docker daemon not reachable." >&2
exit 1
fi
# Already running?
if [ -n "$(docker ps -q --filter "name=^${NAME}$" --filter "status=running")" ]; then
echo "Container ${NAME} is already running."
else
# Exists but stopped? Start it.
if [ -n "$(docker ps -aq --filter "name=^${NAME}$")" ]; then
echo "Starting existing container ${NAME}..."
docker start "${NAME}" >/dev/null
else
# Not present: create and start it.
echo "Creating and starting ${NAME}..."
docker run -d -p 12000:8080 --gpus=all \
-v open-webui:/app/backend/data \
-v open-webui-ollama:/root/.ollama \
--name "${NAME}" "${IMAGE}" >/dev/null
fi
fi
echo "Running. Press Ctrl+C to stop ${NAME}."
# Keep the script alive until a signal arrives
while :; do sleep 86400; done
Once the app is configured, you can launch it from NVIDIA Sync and connect to it with your browser.
In the NVIDIA Sync application window for the Spark, select "Open WebUI" in the "Custom" section.
The application should open in your web browser at the URL http://localhost:12000.
If it does not, open your web browser and go to http://localhost:12000.
Open WebUI uses a local administrator account to control access. The account credentials are stored locally on your Spark.
When the app opens in your browser, create your admin account as follows:
TIP
The Open WebUI container doesn't come with a model so you must download one before chat will work. Open WebUI downloads selected models from the Ollama registry here.
Do the following in the Open WebUI application:
gpt-oss:latest in the search field.Pull "gpt-oss:latest" from Ollama.com button that appears.Alternatively, you can enter qwen3.6:latest instead of gpt-oss:latest.
After the download completes, the model appears in the Select a model menu.
TIP
Selecting an available model loads it onto the GPU, which can take up to 30 seconds, depending on the model size. This can delay server response to your initial query.
Write me a haiku about GPUs and press Enter.When you finish your session, you can stop the Open WebUI container from the NVIDIA Sync application window.
x icon on the right of the "Open WebUI" entry.You can follow up with other playbooks or use different models.
Steps to remove the Open WebUI from your Spark.
WARNING
These commands will permanently delete all Open WebUI data and downloaded models on the Spark.
Stop the Open WebUI application in the NVIDIA Sync device window (this will also stop the container)
Open a terminal on the Spark using the Terminal App in the NVIDIA Sync device window
Remove the container with the command:
docker rm open-webui
docker rmi ghcr.io/open-webui/open-webui:ollama
docker volume rm open-webui open-webui-ollama