Обзор развертывания Phi-4 на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu.
-
Наличие установленного Docker и драйверов NVIDIA CUDA для поддержки GPU.
-
Доступ к интернету для загрузки моделей и образов.
-
Права суперпользователя (root) для установки системных пакетов и управления сервисами.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу приложения используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | phi |
| Домен | hostkey.in |
| Полный шаблон | phi{Server_ID}.hostkey.in |
Процесс установки приложения¶
Процесс развертывания включает в себя несколько этапов:
-
Подготовка системы:
-
Установка Docker и драйверов NVIDIA CUDA.
-
Установка системных зависимостей (в частности,
curl). -
Установка Ollama:
-
Загрузка и запуск официального установочного скрипта Ollama.
-
Создание системного пользователя
ollama. -
Настройка службы
ollama.serviceдля прослушивания всех сетевых интерфейсов (0.0.0.0) и включения поддержки Flash Attention. -
Загрузка модели
phi4через командуollama pull phi4. -
Развертывание веб-интерфейса:
-
Запуск контейнера Docker для Open WebUI с поддержкой GPU.
-
Настройка проксирования и SSL:
-
Создание директории
/root/nginxи конфигурационного файлаcompose.yml. -
Настройка Nginx для перенаправления трафика на локальный порт приложения через Certbot.
Контейнеры Docker и их запуск¶
В системе работают следующие контейнеры:
Open WebUI
-
Имя образа:
ghcr.io/open-webui/open-webui:cuda -
Порты:
8080:8080(внутренний порт 8080) -
Тома:
open-webui:/app/backend/data -
Переменные окружения:
-
ENV='dev' -
OLLAMA_BASE_URLS='http://host.docker.internal:11434' -
Политика перезапуска:
always -
Особенности: Используется параметр
--gpus allдля доступа к видеокарте и--add-host=host.docker.internal:host-gatewayдля связи с Ollama на хосте.
Nginx (Certbot 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_HOST,OLLAMA_ORIGINSиLLAMA_FLASH_ATTENTION. Это необходимо для обеспечения сетевого доступа к API модели. -
Конфигурация Nginx: В конфигурационные файлы пользователя по пути
/data/nginx/user_conf.d/автоматически добавляется директиваproxy_pass http://127.0.0.1:8080;, которая направляет входящий HTTPS трафик на контейнер Open WebUI.
Инструкция по обновлению приложения¶
Для обновления основного приложения (Open WebUI) необходимо выполнить следующие действия:
-
Если используется Docker Compose, выполните команды:
docker compose pull && docker compose up -d -
Для обновления модели Ollama используйте команду:
ollama pull phi4
Расположение конфигурационных файлов и данных¶
| Тип данных | Путь на сервере |
|---|---|
| Конфигурация Nginx (пользовательская) | /data/nginx/user_conf.d/ |
| Данные Open WebUI (Docker Volume) | open-webui |
| Сертификаты SSL | В томе nginx_secrets |
| Конфигурация прокси Nginx | /root/nginx/compose.yml |
Доступные порты для подключения¶
-
443 (HTTPS): Основной порт для доступа к веб-интерфейсу через доменное имя.
-
8080: Внутренний порт приложения Open WebUI.
-
11434: Порт API Ollama (доступен локально внутри сервера).