Требования к серверу Sherpa AI Server#

Системные требования#

  • ОС: рекомендуется Ubuntu 20.04+, однако с другими дистрибутивами Linux как правило не возникает никаких проблем, совместимость была проверена с RedOS, AstraLinux, AltLinux, Debian
  • CPU: x86_64 с AVX2
  • RAM: 16 ГБ минимум, 32 ГБ+ рекомендуется
  • Диск: 100 ГБ+ свободного места
  • GPU: NVIDIA с CUDA 11.8+ (рекомендуется)
  • Сеть: Стабильное интернет-соединение
  • Доступ: sudo права для установки

Важно:

  • Установка занимает часы из-за скачивания моделей ИИ (10-50 ГБ)
  • После установки интернет не требуется

Подготовка сервера#

Проверка ресурсов#

Далее используется синтаксис Ubuntu, если команда не подходит, вам необходимо изменить синтаксис в зависимости от вашей ОС

# Проверьте системные ресурсы
df -h          # Дисковое пространство
free -h        # Оперативная память
nvidia-smi     # GPU (если установлена)
💡 Комментарии к проверке ресурсов

df -h - показывает использование дискового пространства в человеко-читаемом формате free -h - показывает информацию об оперативной памяти nvidia-smi - показывает информацию о GPU NVIDIA (если установлена)

Установка базовых инструментов#

# Обновите систему и установите инструменты
sudo apt update
sudo apt install -y ca-certificates curl tar
💡 Комментарии к установке базовых инструментов

sudo apt update - обновляет список доступных пакетов из репозиториев sudo apt install -y ca-certificates curl tar - устанавливает необходимые инструменты:

  • ca-certificates - корневые сертификаты для проверки SSL
  • curl - инструмент для скачивания файлов
  • tar - утилита для работы с архивами
  • -y - автоматическое подтверждение установки

Установка Docker (пропустить если установлено)#

Sherpa AI Server работает в Docker-контейнерах.

Установка Docker CE#

# Добавьте официальный GPG-ключ Docker
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Добавьте репозиторий Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Установите Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
💡 Комментарии к установке Docker

Добавление GPG-ключа:

  • sudo install -m 0755 -d /etc/apt/keyrings - создает директорию для ключей с правильными правами
  • sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc - скачивает GPG-ключ Docker
  • sudo chmod a+r /etc/apt/keyrings/docker.asc - устанавливает права чтения для всех

Добавление репозитория:

  • echo "deb [...] - добавляет официальный репозиторий Docker в список источников APT
  • Использует переменные окружения для определения архитектуры и версии Ubuntu

Установка пакетов:

  • sudo apt update - обновляет список пакетов после добавления нового репозитория
  • sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - устанавливает Docker и компоненты

Настройка и проверка#

# Добавьте пользователя в группу docker (опционально)
sudo usermod -aG docker $USER

# Проверьте установку
docker --version
docker compose version
💡 Комментарии к настройке Docker

sudo usermod -aG docker $USER - добавляет текущего пользователя в группу docker

  • -a - append (добавляет к существующим группам)
  • -G docker - добавляет в группу docker
  • $USER - переменная с именем текущего пользователя

docker --version - показывает версию Docker docker compose version - показывает версию Docker Compose

Ожидаемый результат: Docker успешно запускает тестовый контейнер.

Ожидаемый результат: Docker успешно запускает тестовый контейнер.

Установка GPU поддержки (NVIDIA + Toolkit) (пропустить если установлено)#

Если на сервере есть NVIDIA GPU, установите драйверы и Container Toolkit:

💡 Оффлайн установка: Если сервер не имеет доступа к интернету, используйте раздел Оффлайн установка GPU поддержки (NVIDIA) ниже.

Установка драйверов NVIDIA#

# Очистите старые драйверы и установите новые
sudo apt purge 'nvidia-*'
sudo apt autoremove
sudo apt install -y nvidia-driver-580

# Перезагрузите сервер
sudo reboot
💡 Комментарии к установке драйверов NVIDIA

sudo apt purge 'nvidia-*' - удаляет все пакеты NVIDIA

  • purge - удаляет пакеты и их конфигурационные файлы
  • 'nvidia-*' - шаблон для поиска всех пакетов начинающихся с nvidia

sudo apt autoremove - удаляет ненужные зависимости sudo apt install -y nvidia-driver-580 - устанавливает драйверы NVIDIA версии 580

sudo reboot - перезагружает систему для применения изменений

Проверка GPU#

# После перезагрузки проверьте GPU
nvidia-smi
💡 Комментарии к проверке GPU

nvidia-smi - System Management Interface для NVIDIA GPU

  • Показывает информацию о GPU, драйверах, процессах
  • Используется для диагностики и мониторинга

Ожидаемый вывод:

NVIDIA-SMI 580.xx.xx
Driver Version: 580.xx.xx

Установка NVIDIA Container Toolkit#

# Добавьте репозиторий и установите toolkit
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit.gpg

curl -fsSL 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.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt update
sudo apt install -y nvidia-container-toolkit

# Настройте Docker для GPU
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
💡 Комментарии к установке NVIDIA Container Toolkit

Добавление репозитория NVIDIA Container Toolkit:

  • curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey - скачивает GPG-ключ
  • sudo gpg --dearmor - преобразует ключ в бинарный формат
  • curl ... nvidia-container-toolkit.list - скачивает конфигурацию репозитория
  • sed 's#deb https://#deb [signed-by=...] https://#g' - добавляет подпись ключа в конфигурацию

sudo apt update - обновляет список пакетов sudo apt install -y nvidia-container-toolkit - устанавливает toolkit

sudo nvidia-ctk runtime configure --runtime=docker - настраивает Docker runtime для NVIDIA sudo systemctl restart docker - перезапускает Docker daemon для применения изменений

Оффлайн установка GPU поддержки (NVIDIA)#

Если сервер не имеет доступа к интернету, выполните установку драйверов NVIDIA и Container Toolkit в оффлайн режиме. Подготовку пакетов можно выполнить параллельно со скачиванием Docker-образов.

Подготовка пакетов на машине с интернетом#

Требования: Машина с Ubuntu/Debian и доступом к интернету.

Важно:

  • Подготовку пакетов можно выполнить на любой машине с Ubuntu/Debian (не обязательно на целевом сервере)
  • Убедитесь, что у вас достаточно места на диске (около 1 ГБ для всех пакетов)
  • Все команды выполняются в одной сессии терминала, следите за текущей директорией

На машине с доступом к интернету (Ubuntu/Debian) подготовьте архив с пакетами NVIDIA:

Скачивание драйверов NVIDIA

Важно: Выберите один из двух способов - либо скачайте .run файл с сайта NVIDIA, либо используйте .deb пакеты через apt download.

Способ 1: Скачивание .run файла с официального сайта NVIDIA (рекомендуется для начинающих)

  1. Перейдите на официальный сайт NVIDIA: https://www.nvidia.com/Download/index.aspx

  2. Выберите параметры:

    • Product Type: GeForce / Quadro / Tesla (в зависимости от вашей видеокарты)
    • Product Series: выберите серию вашей видеокарты
    • Product: выберите конкретную модель
    • Operating System: Linux 64-bit
    • Download Type: Linux Driver
    • Language: English (US)
  3. Нажмите "Search" и скачайте файл драйвера (например, NVIDIA-Linux-x86_64-580.XX.XX.run)

  4. Создайте директорию для пакетов и сохраните .run файл:

    mkdir -p nvidia-offline-packages/drivers
    # Переместите скачанный .run файл в эту директорию
    mv ~/Загрузки/NVIDIA-Linux-x86_64-*.run nvidia-offline-packages/drivers/
    

Способ 2: Скачивание .deb пакетов через apt (для опытных пользователей)

Если вы используете Ubuntu/Debian и хотите использовать .deb пакеты:

# Создайте директорию для пакетов
mkdir -p nvidia-offline-packages/drivers
cd nvidia-offline-packages/drivers

# Скачайте драйвер через apt download (если доступен репозиторий)
# Сначала добавьте репозиторий NVIDIA (если еще не добавлен)
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

# Скачайте пакет драйвера
apt download nvidia-driver-580

# Скачайте зависимости драйвера (выполните команду построчно)
# Сначала узнайте список зависимостей:
apt-cache depends nvidia-driver-580 | grep "Depends:" | cut -d: -f2 | tr -d ' ' > /tmp/deps.txt

# Затем скачайте каждую зависимость:
while read dep; do
	apt download "$dep" 2>/dev/null || echo "Пропущена зависимость: $dep"
done < /tmp/deps.txt

# Удалите временный файл
rm /tmp/deps.txt

Скачивание NVIDIA Container Toolkit

О GPG ключах:

  • GPG ключи используются для проверки подлинности пакетов при установке через apt install
  • При оффлайн установке через dpkg -i GPG ключи НЕ требуются - пакеты устанавливаются напрямую
  • GPG ключи нужны только если вы планируете использовать apt install или настроить репозиторий для будущих обновлений
  • Для простоты можно пропустить скачивание GPG ключей и устанавливать пакеты через dpkg -i
# Вернитесь в директорию пакетов
cd nvidia-offline-packages

# Создайте директорию для Container Toolkit
mkdir -p toolkit

# Добавьте репозиторий NVIDIA Container Toolkit (если еще не добавлен)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit.gpg

curl -fsSL 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.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt update

# Скачайте пакет Container Toolkit и все его зависимости
cd toolkit
apt download nvidia-container-toolkit

# Скачайте зависимости Container Toolkit (выполните команду построчно)
# Сначала узнайте список зависимостей:
apt-cache depends nvidia-container-toolkit | grep "Depends:" | cut -d: -f2 | tr -d ' ' > /tmp/toolkit-deps.txt

# Затем скачайте каждую зависимость:
while read dep; do
  apt download "$dep" 2>/dev/null || echo "Пропущена зависимость: $dep"
done < /tmp/toolkit-deps.txt

# Удалите временный файл
rm /tmp/toolkit-deps.txt

# Опционально: Скачайте GPG ключ и файл репозитория (нужны только если планируете использовать apt install вместо dpkg)
# Для оффлайн установки через dpkg -i GPG ключи НЕ требуются
cd ..
mkdir -p keys
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey -o keys/nvidia-container-toolkit.gpg
curl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list -o keys/nvidia-container-toolkit.list

Упаковка архива

# Вернитесь в корневую директорию пакетов
cd nvidia-offline-packages

# Убедитесь, что все файлы на месте:
# - drivers/ - содержит .deb пакеты или .run файл драйвера
# - toolkit/ - содержит .deb пакеты Container Toolkit
# - keys/ - содержит GPG ключи и файлы репозитория (опционально, если есть)

# Создайте архив со всеми пакетами
# Если директория keys/ пустая или отсутствует, можно создать архив без неё:
if [ -d "keys" ] && [ "$(ls -A keys)" ]; then
    tar -czf nvidia-packages-offline.tar.gz drivers/ toolkit/ keys/
else
    tar -czf nvidia-packages-offline.tar.gz drivers/ toolkit/
    echo "Внимание: GPG ключи не включены в архив (не обязательны для установки через dpkg)"
fi

# Проверьте размер архива
ls -lh nvidia-packages-offline.tar.gz
💡 Комментарии к подготовке пакетов

Скачивание драйверов:

  • Официальный сайт NVIDIA предоставляет актуальные версии драйверов для всех моделей GPU
  • Версия драйвера должна соответствовать требованиям (рекомендуется 580+)
  • .deb пакеты удобнее для установки через dpkg (рекомендуется для Ubuntu/Debian)
  • .run файлы - универсальные установщики от NVIDIA, работают на любых дистрибутивах Linux, но требуют остановки графического сервера при установке

Скачивание Container Toolkit:

  • apt download скачивает пакет без установки
  • Зависимости скачиваются отдельно для полной оффлайн установки
  • GPG ключи и файлы репозитория опциональны - они нужны только если вы планируете использовать apt install вместо dpkg -i, или если хотите настроить репозиторий для будущих обновлений

Размер архива: Ожидаемый размер архива - около 200-500 МБ в зависимости от версий пакетов.

Перенос архива на целевой сервер#

Перенесите архив nvidia-packages-offline.tar.gz на целевой сервер любым удобным способом (SCP, SFTP, USB-накопитель и т.д.). Рекомендуется переносить архив вместе с Docker-образами

Установка на целевом сервере#

После переноса архива на целевой сервер выполните установку:

Установка драйверов NVIDIA из .deb пакетов

Если вы скачали .deb пакеты драйверов:

# Распакуйте архив
tar -xzf nvidia-packages-offline.tar.gz
cd nvidia-offline-packages

# Проверьте наличие .deb файлов в директории drivers
ls -la drivers/*.deb

# Установите драйверы NVIDIA
cd drivers
sudo dpkg -i *.deb

# Проверьте результат установки
if [ $? -eq 0 ]; then
    echo "Драйверы установлены успешно"
else
    echo "Обнаружены ошибки зависимостей, исправляем..."
    # Если возникли ошибки зависимостей, установите их из кэша или исправьте зависимости
    sudo apt install --fix-broken -y
    
    # Если fix-broken не помог, попробуйте установить зависимости вручную
    # Убедитесь, что все зависимости были скачаны в директорию drivers
    echo "Проверьте, что все зависимости скачаны в директорию drivers/"
    ls -la *.deb
fi

# Перезагрузите сервер для применения драйверов
echo "Перезагрузка сервера через 10 секунд... Нажмите Ctrl+C для отмены"
sleep 10
sudo reboot

Если установка завершилась с ошибкой:

  • Проверьте какие пакеты не установились: dpkg -l | grep nvidia
  • Убедитесь, что все зависимости скачаны: ls -la drivers/*.deb | wc -l (должно быть несколько файлов)
  • Попробуйте установить пакеты по одному: sudo dpkg -i имя_пакета.deb

Установка драйверов NVIDIA из .run файла

Если вы скачали .run файл драйвера с официального сайта NVIDIA:

Важно перед началом:

  • Убедитесь, что у вас есть доступ к серверу через SSH или физический доступ (на случай проблем)
  • Если на сервере установлен графический интерфейс, узнайте какой дисплей-менеджер используется (gdm3, lightdm, sddm)
  • Для серверов без графического интерфейса шаги с остановкой графического сервера можно пропустить
# Распакуйте архив (если .run файл был добавлен в архив)
tar -xzf nvidia-packages-offline.tar.gz
cd nvidia-offline-packages/drivers

# Найдите .run файл драйвера (например, NVIDIA-Linux-x86_64-580.XX.XX.run)
ls -la *.run

# Сделайте файл исполняемым
chmod +x NVIDIA-Linux-x86_64-*.run

# Определите какой графический сервер используется (выполните одну из команд):
# Проверка для GNOME/GDM3:
systemctl status gdm3 > /dev/null 2>&1 && echo "Используется gdm3"
# Проверка для LightDM:
systemctl status lightdm > /dev/null 2>&1 && echo "Используется lightdm"
# Проверка для SDDM (KDE):
systemctl status sddm > /dev/null 2>&1 && echo "Используется sddm"

# Остановите графический сервер (выполните ТОЛЬКО одну команду, соответствующую вашему дисплей-менеджеру):
# Для Ubuntu с GNOME:
sudo systemctl stop gdm3
# ИЛИ для Ubuntu с LightDM:
# sudo systemctl stop lightdm
# ИЛИ для систем с KDE:
# sudo systemctl stop sddm
# ИЛИ если графического интерфейса нет, пропустите этот шаг

# Установите драйвер (используйте флаги для автоматической установки)
sudo ./NVIDIA-Linux-x86_64-*.run \
  --silent \
  --no-nouveau-check \
  --no-opengl-files \
  --disable-nouveau

# Проверьте результат установки (должно быть сообщение об успехе)
echo $?

# Если графический сервер был остановлен, запустите его обратно (используйте ту же команду что и для остановки):
sudo systemctl start gdm3  # или lightdm/sddm в зависимости от вашей системы

# Перезагрузите сервер для применения драйверов
sudo reboot

Если установка завершилась с ошибкой:

  • Проверьте логи: sudo cat /var/log/nvidia-installer.log
  • Убедитесь, что модуль nouveau отключен: lsmod | grep nouveau
  • Попробуйте установку с флагом --no-opengl-files если ошибка связана с OpenGL
💡 Комментарии к установке .run файла

Флаги установщика:

  • --silent - автоматическая установка без интерактивных вопросов
  • --no-nouveau-check - пропускает проверку модуля nouveau (открытый драйвер NVIDIA)
  • --no-opengl-files - не устанавливает OpenGL библиотеки (важно для серверов без GUI)
  • --disable-nouveau - отключает модуль nouveau перед установкой

Остановка графического сервера:

  • На серверах без графического интерфейса этот шаг не требуется
  • Если графический сервер не остановлен, установка может завершиться ошибкой
  • После установки графический сервер можно запустить обратно

Альтернативный способ (без остановки GUI): Если остановка графического сервера невозможна, можно использовать текстовую консоль:

  1. Переключитесь на текстовую консоль (Ctrl+Alt+F1)
  2. Войдите в систему
  3. Выполните установку .run файла
  4. Вернитесь в графический режим (Ctrl+Alt+F7 или перезагрузка)

Проверка установки драйверов

После перезагрузки проверьте установку драйверов:

# Проверьте GPU (эта команда должна показать информацию о видеокарте)
nvidia-smi

Ожидаемый результат: Вы должны увидеть таблицу с информацией о GPU, например:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 580.XX       Driver Version: 580.XX       CUDA Version: 12.X  |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| ...                                                                         |
+-----------------------------------------------------------------------------+

Если команда nvidia-smi не работает или показывает ошибку:

  • Проверьте что драйвер загружен: lsmod | grep nvidia
  • Проверьте логи: dmesg | grep -i nvidia
  • Убедитесь что GPU виден системой: lspci | grep -i nvidia

Установка NVIDIA Container Toolkit

После успешной установки драйверов установите Container Toolkit:

Важно:

  • Docker должен быть установлен перед установкой Container Toolkit
  • Убедитесь что Docker запущен: sudo systemctl status docker
# Вернитесь в директорию пакетов (замените на реальный путь, где вы распаковали архив)
# Например, если архив был распакован в домашней директории:
cd ~/nvidia-offline-packages
# Или если в другом месте, укажите полный путь:
# cd /полный/путь/к/nvidia-offline-packages

# Проверьте что все файлы на месте
ls -la toolkit/*.deb

# Опционально: Установите GPG ключ (НЕ обязательно для установки через dpkg)
# GPG ключи нужны только если:
# 1. Вы планируете использовать apt install вместо dpkg -i
# 2. Вы хотите настроить репозиторий для будущих обновлений (когда появится интернет)
# Для простой оффлайн установки через dpkg -i можно пропустить этот шаг
if [ -f "keys/nvidia-container-toolkit.gpg" ]; then
    echo "Устанавливаю GPG ключ (опционально)..."
    sudo mkdir -p /usr/share/keyrings
    sudo cp keys/nvidia-container-toolkit.gpg /tmp/nvidia-container-toolkit.gpg
    sudo gpg --dearmor /tmp/nvidia-container-toolkit.gpg -o /usr/share/keyrings/nvidia-container-toolkit.gpg
    sudo rm /tmp/nvidia-container-toolkit.gpg
    echo "GPG ключ установлен"
else
    echo "GPG ключ не найден - пропускаю установку (не критично для dpkg -i)"
fi

# Установите Container Toolkit из локальных пакетов
cd toolkit
sudo dpkg -i *.deb

# Проверьте результат установки
if [ $? -eq 0 ]; then
    echo "Container Toolkit установлен успешно"
else
    echo "Обнаружены ошибки зависимостей, исправляем..."
    # Исправьте зависимости если необходимо
    sudo apt install --fix-broken -y
    
    # Если fix-broken не помог, проверьте что все зависимости скачаны
    echo "Проверьте наличие всех зависимостей в директории toolkit/"
    ls -la *.deb
fi

# Настройте Docker для GPU
sudo nvidia-ctk runtime configure --runtime=docker

# Перезапустите Docker для применения изменений
sudo systemctl restart docker

# Проверьте что Docker запущен
sudo systemctl status docker

# Проверьте установку GPU в Docker
nvidia-smi

Если возникли проблемы с установкой:

  • Проверьте что Docker видит GPU: docker info | grep -i runtime
  • Проверьте конфигурацию: cat /etc/docker/daemon.json
  • Убедитесь что nvidia-container-toolkit установлен: dpkg -l | grep nvidia-container-toolkit
  • Проверьте логи Docker: sudo journalctl -u docker -n 50
💡 Комментарии к установке на целевом сервере

Установка драйверов:

  • dpkg -i *.deb - устанавливает все .deb пакеты из директории
  • apt install --fix-broken - исправляет зависимости, используя локальный кэш пакетов (если доступен)
  • Перезагрузка обязательна для активации драйверов NVIDIA

Установка Container Toolkit:

  • При установке через dpkg -i GPG ключи НЕ требуются - пакеты устанавливаются напрямую без проверки подписи
  • GPG ключи нужны только если вы используете apt install или планируете настроить репозиторий для обновлений
  • dpkg -i - более простой способ для оффлайн установки, не требует настройки ключей

Возможные проблемы:

  • Если apt install --fix-broken не работает без интернета, убедитесь что все зависимости скачаны в директорию пакетов
  • Проверьте совместимость версий драйверов и Container Toolkit с вашей версией Ubuntu/Debian

Ожидаемый результат: После установки команда nvidia-smi должна показывать информацию о GPU, а Docker контейнеры должны иметь доступ к GPU.