Обзор развертывания Llama 3.3 на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu.
-
Наличие установленного Docker и драйверов NVIDIA CUDA для поддержки GPU.
-
Права суперпользователя (root) для установки системных пакетов и управления сервисами.
-
Доступ к интернету для загрузки образов контейнеров и моделей.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | llama |
| Домен | hostkey.in |
| Полный шаблон | llama{Server_ID}.hostkey.in |
Процесс установки приложения¶
Процесс развертывания включает в себя несколько этапов:
-
Подготовка системы: установка Docker и библиотек NVIDIA CUDA.
-
Установка Ollama:
-
Загрузка и запуск официального установочного скрипта
curl -fsSL https://ollama.com/install.sh | sh. -
Создание системного пользователя
ollama. -
Настройка системного сервиса
ollama.serviceдля работы на всех интерфейсах (0.0.0.0) и поддержки флагаLLAMA_FLASH_ATTENTION=1. -
Загрузка модели
llama3.3через командуollama pull llama3.3. -
Развертывание веб-интерфейса: запуск контейнера Docker для работы с интерфейсом пользователя.
-
Настройка проксирования и SSL: создание конфигурации Nginx и получение сертификатов через Certbot.
Контейнеры Docker и их запуск¶
В системе развернуты следующие контейнеры:
Open WebUI
-
Имя образа:
ghcr.io/open-webui/open-webui:cuda -
Порты:
8080(внутри контейнера) ->8080(на хосте). -
Тома:
open-webui:/app/backend/data. -
Переменные окружения:
-
ENV='dev' -
OLLAMA_BASE_URLS='http://host.docker.internal:11434' -
Политика перезапуска:
always. -
Особенности: Использует аппаратное ускорение GPU (
--gpus all) и имеет доступ к хосту черезhost.docker.internal.
Nginx (Proxy)
-
Имя образа:
jonasal/nginx-certbot:latest -
Сетевой режим:
host. -
Тома:
-
nginx_secrets:/etc/letsencrypt -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d -
Переменные окружения:
CERTBOT_EMAIL=hkadm@hostkey.com. -
Политика перезапуска:
unless-stopped.
Кастомные скрипты и дополнительные настройки¶
В процессе установки выполняются следующие действия по настройке среды:
-
Настройка Ollama: В файл
/etc/systemd/system/ollama.serviceвносятся изменения для разрешения внешних подключений (OLLAMA_ORIGINS="*") и оптимизации работы с памятью. -
Конфигурация Nginx:
-
Создается директория
/root/nginx. -
Генерируется файл
compose.ymlдля управления прокси-сервером. -
В конфигурационные файлы пользователя в
/data/nginx/user_conf.d/автоматически добавляется директиваproxy_pass http://127.0.0.1:8080;для перенаправления трафика на веб-интерфейс.
Инструкция по обновлению приложения¶
Для обновления основного интерфейса (Open WebUI) необходимо выполнить перезапуск контейнера с подтягиванием актуального образа:
(Примечание: Если используется ручной запуск через docker run, необходимо остановить и удалить старый контейнер, после чего запустить команду установки повторно).
Расположение конфигурационных файлов и данных¶
-
/etc/systemd/system/ollama.service— конфигурация сервиса Ollama. -
/root/nginx/compose.yml— конфигурация Docker Compose для прокси-сервера. -
/data/nginx/user_conf.d/— пользовательские конфигурации Nginx. -
/data/nginx/nginx-certbot.env— переменные окружения для SSL. -
open-webui(Docker Volume) — хранилище данных веб-интерфейса.
Доступные порты для подключения¶
| Порт | Назначение | Протокол |
|---|---|---|
443 | Внешний доступ к интерфейсу (через SSL) | HTTPS |
8080 | Локальный порт веб-интерфейса | HTTP |
11434 | API Ollama (локально на хосте) | HTTP |