Získání funkční a stabilní instalace Proxmoxu, která má také funkční možnosti GPU passthrough pro LXC kontejnery, je kritickým krokem, kterého musíte dosáhnout pro maximalizaci funkčnosti vašeho domácího serveru. Tyto kroky vám to přesně poskytnou.
V hostitelském uzlu přejděte do terminálu shellu a spusťte následující příkazy.
apt update && apt upgrade -y && apt install pve-headers-$(uname -r) build-essential software-properties-common make nvtop htop -y
update-initramfs -u
Stáhněte si šablonu Debaian pro LXC do svého počítače
Vytvořte nový kontejner LXC. Vstupte do shellu kontejneru. Aktualizujte kontejner.
Najděte nejnovější ovladač pro vaše karty
wget pro stažení souboru .run
wget HTTP://URLHERE
chmod +x xxxxx.run
./xxxxx.run --dkms
Klikněte na Ano pro kompletní instalaci
Jakmile to bude hotové, získáme cgroups spuštěním
ls -al /dev/nvidia*
Pro jednu GPU (nvidia0) a univerzální skupiny pro nvidiactl, nvidia-uvm, nvidia-uvm-tools, nvidia-cap1 a nvidia-cap2 se zobrazí něco podobného. Všimněte si zde uvedených čísel 195, 509 a 234. Tato ID se pro vás BUDOU lišit a my si je všimneme a použijeme je v dalším kroku.
root@prox1:~# ls -al /dev/nvidia*
crw-rw-rw- 1 root root 195, 0 13. listopadu 01:23 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 13. listopadu 01:23 /dev/nvidiactl
crw-rw-rw- 1 root root 509, 0 13. listopadu 01:23 /dev/nvidia-uvm
crw-rw-rw- 1 root root 509, 1 13. listopadu 01:23 /dev/nvidia-uvm-tools
/dev/nvidia-caps:
celkem 0
drwxr-xr-x 2 root root 80 13. listopadu 01:23 .
drwxr-xr-x 22 root root 6360 13. listopadu 01:23 ..
cr——– 1 root root 234, 1 13. listopadu 01:23 nvidia-cap1 cr
–r–r– 1 root root 234, 2 13. listopadu 01:23 nvidia-cap2
Nyní přidáme tyto skupiny do kontejneru LXC pro průchod hardwaru.
nano /etc/pve/lxc/105.conf
Přidejte tyto hodnoty k ID, která jste si dříve poznamenali, do souboru takto. Všimněte si umístění číslic 195, 234 a 509. Toto platí i pro JEDNU grafickou kartu, pokud máte více dalších.
lxc.mount.entry: /dev/nvidia1 dev/nvidia1 none bind,optional,create=file
řádky s inkrementací jako nvidia1,2,3 atd…
lxc.cgroup2.devices.allow: c 195:* rwm
lxc.cgroup2.devices.allow: c 234:* rwm
lxc.cgroup2.devices.allow: c 509:* rwm
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-caps/nvidia-cap1 dev/nvidia-caps/nvidia-cap1 none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-caps/nvidia-cap2 dev/nvidia-caps/nvidia-cap2 none bind,optional,create=file
Vložte instalační soubor .run do kontejneru
pct push 105 NVIDIA-Linux-x86_64-550.107.02.run /root/NVIDIA-Linux-x86_64-550.107.02.run
Poté vstupte do konzole/terminálu pro kontejner LXC. Nainstalujte instalační program .run s --no-kernel-modules
příznakem
./NVIDIA-Linux-x86_64-550.107.02.run --no-kernel-modules
Instalace sady nástrojů NVIDIA Container Toolkit
apt install gpg curl
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | 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' | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
apt update
apt install nvidia-container-toolkit
Upravte soubor config.toml, povolte no-cgroups a nastavte hodnotu z false na true.
nano /etc/nvidia-container-runtime/config.toml
#no-cgroups = false
to
no-cgroups = true
Uložte a restartujte kontejner. Tím by se měla vaše GPU předat do LXC. Dále nastavíme Docker s Dockge a GPU passthru.
Instalace Dockeru pro Debian Bookworm
apt install ca-certificates
apt update
apt install ca-certificates
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
chmod a+r /etc/apt/trusted.gpg.d/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Nyní musíme povolit sadu nástrojů pro kontejnery od Nvidie, aby fungovala s Dockerem.
nvidia-ctk runtime configure --runtime=docker
Nainstalujte Dockge Docker Container Manager. V tomto případě se váš datový adresář nachází v /opt/dockge.
mkdir -p /opt/stacks /opt/dockge
cd /opt/dockge
curl https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml --output compose.yaml
docker compose up -d
Nyní můžete přejít do správce Dockeru a dokončit zbývající kroky. Pokud neznáte IP adresu LXC, zkontrolujte síťové nastavení kontejneru. Poté přidejte :5001.
Například moje adresa je 192.168.1.70:5001. Při první návštěvě si budete muset nastavit uživatelské jméno a heslo. Zapište si je. Nyní jste připraveni začít vytvářet kontejnery Docker pro OpenwebUI, Ollama, SearXNG a Tika.
Napište to pomocí Ollamy (zkopírujte to do zobrazení pro vytvoření nového textu), klikněte na Uložit, poté na Aktualizovat a nakonec na Spustit.
version: "3.3"
services:
ollama:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities:
- gpu
volumes:
- ollama:/root/.ollama
ports:
- 11434:11434
container_name: ollama
image: ollama/ollama
restart: always
volumes:
ollama: {}
networks:
dockge_default:
external: true
openwebui_default:
external: true
searxng_searxng:
external: true
tika_default:
external: true
Napište to do OpenwebUI (zkopírujte to do zobrazení pro vytvoření nového), klikněte na Uložit, poté Aktualizovat a nakonec Spustit.
version: "3.3"
services:
open-webui:
ports:
- 7000:8080
volumes:
- open-webui:/app/backend/data
container_name: open-webui
restart: always
image: ghcr.io/open-webui/open-webui:latest
volumes:
open-webui: {}
networks:
dockge_default:
external: true
ollama_default:
external: true
searxng_searxng:
external: true
tika_default:
external: true
SearXNG a REDIS sestavují (zkopírujte to do zobrazení pro vytvoření nového), klikněte na Uložit, poté Aktualizovat a nakonec Spustit.
version: "3.7"
services:
redis:
container_name: redis
image: docker.io/valkey/valkey:7-alpine
command: valkey-server --save 30 1 --loglevel warning
restart: unless-stopped
networks:
- searxng_searxng
volumes:
- valkey-data2:/data
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
logging:
driver: json-file
options:
max-size: 4m
max-file: "1"
searxng:
container_name: searxng
image: docker.io/searxng/searxng:latest
restart: unless-stopped
networks:
- searxng_searxng
ports:
- 7777:8080
volumes:
- ./searxng/img:/usr/local/searxng/searx/static/themes/simple/img:rw
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=http://${SEARXNG_HOSTNAME:-localhost}/
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
logging:
driver: json-file
options:
max-size: 4m
max-file: "1"
networks:
searxng_searxng:
external: true
#searxng: null
dockge_default:
external: true
openwebui_default:
external: true
tika_default:
external: true
ollama_default:
external: true
volumes:
valkey-data2: null
Stiskněte tlačítko „Napsat“ (zkopírujte to do zobrazení pro vytvoření nového obsahu), klikněte na „Uložit“, poté na „Aktualizovat“ a nakonec na „Spustit“.
version: "3.3"
services:
tika:
ports:
- 9998:9998
image: apache/tika:latest-full
restart: always
networks:
dockge_default:
external: true
openwebui_default:
external: true
ollama_default:
external: true
searxng_searxng:
external: true
Gratuluji! Nyní máte VELMI pěkné nastavení pro váš AI Homelab! OpenWEBUI se nachází na adrese https://ipaddress:7000 a vyhledávač (SearXNG) se nachází na adrese http://ipaddress:7777