Обзор развертывания Qwen3-32B на сервере¶
Предварительные требования и базовые условия¶
Для развертывания требуется сервер Linux с установленной Ubuntu и правами root. На хост-системе должны быть доступны следующие компоненты:
-
Установленный и запущенный Docker Engine.
-
Диспетчер служб Systemd для управления фоновыми процессами.
-
Доступ к сети для загрузки установщика Ollama, модели
qwen3:32bи образов Docker. -
Поддержка GPU с установленными драйверами CUDA для контейнера Open WebUI.
-
Настройка домена, указывающая на хост-сервер, для выдачи SSL-сертификатов.
FQDN финальной панели¶
Приложение доступно по следующему формату Полного Квалифицированного Доменного Имени (FQDN):
qwen3-32b<Server ID>.hostkey.in:443
Замените <Server ID> на конкретный идентификатор, назначенный экземпляру сервера. Сервис работает по протоколу HTTPS на порту 443.
Структура файлов и каталогов¶
Развертывание использует следующую структуру каталогов для конфигурации, данных и сертификатов:
-
/root/nginx/: Содержит файл Docker Compose для прокси и управления SSL. -
/root/nginx/compose.yml: Конфигурация Docker Compose для служб Nginx и Certbot. -
/data/nginx/user_conf.d/: Хранит пользовательские файлы конфигурации Nginx для конкретного домена. -
/data/nginx/nginx-certbot.env: Файл окружения, содержащий настройки для контейнера Nginx-Certbot. -
/etc/systemd/system/ollama.service: Файл юнита Systemd для службы Ollama. -
/usr/share/ollama/.ollama/models/: Расположение хранилища для загруженной моделиqwen3:32b. -
/var/lib/docker/volumes/open-webui/: Том Docker, хранящий данные бэкенда для приложения Open WebUI.
Процесс установки приложения¶
Приложение состоит из трех основных компонентов: движка вывода Ollama, интерфейса Open WebUI и прокси Nginx с SSL.
-
Установка Ollama:
-
Пакет Ollama устанавливается через официальный скрипт оболочки.
-
Создается системный пользователь
ollamaдля управления службой. -
Служба
ollama.serviceнастраивается с использованием конкретных переменных окружения для разрешения внешних подключений и включения механизма flash attention. -
Модель
qwen3:32bзагружается и сохраняется локально. -
Развертывание Open WebUI:
-
Контейнер Open WebUI развертывается с использованием образа
ghcr.io/open-webui/open-webui:cuda. -
Контейнер настраивается для подключения к локальному экземпляру Ollama, работающему на хосте.
-
Настройка прокси и SSL:
-
Развертывается контейнер Nginx с Certbot для обработки терминации SSL и обратного проксирования.
-
Генерируется конфигурация для маршрутизации трафика с внешнего домена на внутреннюю службу Open WebUI.
Права доступа и безопасность¶
-
Межсетевой экран (Firewall): Сервер должен разрешать входящий трафик на порт 443 (HTTPS) и порт 80 (HTTP для валидации SSL).
-
Пользователи: Системный пользователь
ollamaсоздается для запуска движка вывода. Контейнеры Docker работают с конкретными привилегиями, необходимыми для доступа к GPU. -
Ограничения: Служба Ollama настроена на прослушивание
0.0.0.0, но доступна только во внутренней сети через прокси Nginx. Прямой доступ к порту Ollama (11434) или порту Open WebUI (8080) не предназначен для внешних пользователей.
Базы данных¶
Приложение Open WebUI использует локальный том Docker для сохранения данных.
-
Расположение хранилища:
/var/lib/docker/volumes/open-webui/ -
Метод подключения: Приложение хранит данные непосредственно внутри смонтированного тома; внешний сервер базы данных не требуется.
-
Настройки: Переменная окружения
ENVустановлена в значениеdevвнутри конфигурации контейнера.
Контейнеры Docker и их развертывание¶
В рамках данного решения развертываются два основных контейнера Docker:
-
Open WebUI:
-
Образ:
ghcr.io/open-webui/open-webui:cuda -
Команда:
-
Порты: Открывает порт 8080 во внутренней сети.
-
Томы: Монтирует том
open-webuiв/app/backend/data. -
Nginx-Certbot:
-
Образ:
jonasal/nginx-certbot:latest -
Метод развертывания: Управляется через Docker Compose, расположенный по пути
/root/nginx/compose.yml. -
Режим сети: Host.
-
Томы:
-
nginx_secrets(внешний) монтируется в/etc/letsencrypt. -
/data/nginx/user_conf.dмонтируется в/etc/nginx/user_conf.d.
-
Прокси-серверы¶
Прокси Nginx обрабатывает терминацию SSL и маршрутизацию для приложения.
-
ПО: Nginx с Certbot (через контейнер Docker).
-
SSL: Управляется автоматически с помощью Certbot, использующего образ
jonasal/nginx-certbot. -
Пользовательский домен: Настроен для зоны
hostkey.inс префиксомqwen3-32b. -
Конфигурация:
-
Прокси передает запросы с внешнего домена на
http://127.0.0.1:8080. -
Файл конфигурации расположен по адресу
/data/nginx/user_conf.d/qwen3-32b<Server ID>.hostkey.in.conf. -
Директива
proxy_passдинамически обновляется для указания на внутреннюю службу Open WebUI.
Настройки прав доступа¶
-
Каталог Nginx:
/root/nginxпринадлежитroot:rootс правами0755. -
Файл Compose:
/root/nginx/compose.ymlпринадлежитroot:rootс правами0644. -
Служба Ollama: Служба
ollamaработает под системным пользователемollama. -
Томы Docker: Docker управляет правами доступа для томов
open-webuiиnginx_secretsво внутреннем режиме.
Расположение файлов конфигурации и данных¶
-
Конфигурация прокси Nginx:
/root/nginx/compose.yml -
Пользовательская конфигурация Nginx:
/data/nginx/user_conf.d/qwen3-32b<Server ID>.hostkey.in.conf -
Окружение Nginx:
/data/nginx/nginx-certbot.env -
Файл службы Ollama:
/etc/systemd/system/ollama.service -
Данные модели:
/usr/share/ollama/.ollama/models/ -
Данные WebUI:
/var/lib/docker/volumes/open-webui/
Доступные порты для подключения¶
-
Порт 443: Трафик HTTPS для интерфейса Open WebUI (Внешний).
-
Порт 80: Трафик HTTP для валидации SSL-сертификата (Внешний).
-
Порт 8080: Внутренний порт для Open WebUI (Не открыт напрямую в интернет).
-
Порт 11434: Внутренний порт для API Ollama (Не открыт напрямую в интернет).
Запуск, остановка и обновление¶
Службы управляются с помощью systemctl для Ollama и docker compose для прокси.
-
Служба Ollama:
-
Запуск:
systemctl start ollama -
Остановка:
systemctl stop ollama -
Перезапуск:
systemctl restart ollama -
Включение при загрузке:
systemctl enable ollama -
Прокси Nginx:
-
Запуск/Обновление:
docker compose up -d(выполняется из/root/nginx) -
Остановка:
docker compose down(выполняется из/root/nginx) -
Контейнер Open WebUI:
-
Запуск:
docker start open-webui -
Остановка:
docker stop open-webui -
Перезапуск:
docker restart open-webui -
Обновление: Загрузите последний образ и пересоздайте контейнер, используя команду
docker run, предоставленную в разделе установки.