Files
TV-Server/scripts/install-nvidia-stack.sh
T

46 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Install proprietary NVIDIA driver + NVIDIA Container Toolkit on Ubuntu (for Docker GPU).
# Run on the server: bash scripts/install-nvidia-stack.sh
# Reboot after completion, then: nvidia-smi
set -euo pipefail
echo "==> Updating apt"
sudo apt-get update
echo "==> Installing ubuntu-drivers-common"
sudo apt-get install -y ubuntu-drivers-common
echo "==> Detected devices / recommendations:"
ubuntu-drivers devices || true
echo "==> Installing recommended proprietary NVIDIA driver"
sudo ubuntu-drivers autoinstall
echo "==> Adding NVIDIA Container Toolkit repository"
sudo apt-get install -y curl gnupg2
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
echo "==> Installing nvidia-container-toolkit"
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
echo "==> Configuring Docker to use NVIDIA runtime"
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
echo ""
echo "Done. Reboot the server so the kernel loads the NVIDIA driver:"
echo " sudo reboot"
echo ""
echo "After reboot, verify:"
echo " nvidia-smi"
echo " docker run --rm --gpus all nvidia/cuda:12.6.3-base-ubuntu22.04 nvidia-smi"
echo ""
echo "Then recreate Jellyfin:"
echo " cd $(dirname "$(dirname "$(readlink -f "$0")")") && docker compose up -d jellyfin"