Обзор развертывания Qwen3-coder на сервере¶
Предварительные требования¶
Для корректной работы приложения сервер должен соответствовать следующим требованиям:
-
Операционная система: Ubuntu.
-
Аппаратное обеспечение: Наличие графического процессора NVIDIA (требуется поддержка CUDA).
-
Доступ: Права суперпользователя (root) для установки системных пакетов и драйверов.
-
Сеть: Открытые порты 80, 443 (для SSL) и 8080 (внутренний порт приложения).
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | qwen3-coder |
| Домен | hostkey.in |
| Полный шаблон | qwen3-coder{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/root/nginx— конфигурация прокси-сервера Nginx и Docker Compose. -
/data/nginx/user_conf.d/— пользовательские конфигурации веб-сервера. -
/data/nginx/nginx-certbot.env— переменные окружения для SSL. -
/var/lib/docker/volumes/open-webui/_data— данные приложения Open WebUI (через Docker volume).
Процесс установки приложения¶
Процесс развертывания включает несколько этапов: подготовка системы, установка драйверов и запуск контейнеров.
-
Подготовка ОС:
-
Установка
curl. -
Настройка графической подсистемы NVIDIA (установка драйверов и CUDA). При необходимости выполняется перезагрузка сервера для активации модулей ядра.
-
Установка Docker.
-
Установка Ollama:
-
Загрузка и запуск официального установочного скрипта
ollama. -
Создание системного пользователя
ollama. -
Настройка службы
systemdдля работы Ollama на всех интерфейсах (0.0.0.0) с включенным режимомLLAMA_FLASH_ATTENTION=1. -
Загрузка модели
qwen3-coder. -
Развертывание веб-интерфейса:
-
Запуск контейнера Open WebUI через Docker.
Права доступа и безопасность¶
-
Для работы Ollama используется системный пользователь
ollama. -
Конфигурационные файлы Nginx имеют права
0644и принадлежат пользователюroot. -
Директория
/root/nginxимеет права0755. -
Приложение работает в изолированном Docker-контейнере с ограниченным доступом к хост-системе через
host.docker.internal.
Базы данных¶
В данной конфигурации база данных не развертывается отдельно; данные приложения Open WebUI хранятся в именованном Docker-томе open-webui.
Контейнеры Docker и их запуск¶
open-webui¶
Контейнер для взаимодействия с моделью через веб-интерфейс.
-
Образ:
ghcr.io/open-webui/open-webui:cuda -
Порты:
8080:8080 -
Тома (volumes):
open-webui:/app/backend/data -
Переменные окружения:
-
ENV=dev -
OLLAMA_BASE_URLS=http://host.docker.internal:11434 -
Дополнительные параметры:
--gpus all,--add-host=host.docker.internal:host-gateway -
Политика перезапуска:
always
nginx¶
Контейнер для управления SSL-сертификатами и проксирования трафика.
-
Образ:
jonasal/nginx-certbot:latest -
Сеть:
network_mode: host -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d -
Переменные окружения:
-
CERTBOT_EMAIL=hkadm@hostkey.com -
Политика перезапуска:
unless-stopped
Кастомные скрипты и дополнительные настройки¶
В процессе установки выполняются следующие действия:
-
Настройка Ollama Service: В файл
/etc/systemd/system/ollama.serviceвносятся изменения для разрешения внешних подключений (OLLAMA_HOST=0.0.0.0) и оптимизации производительности. -
Конфигурация Nginx Proxy: После запуска контейнера с сертификатами, в конфигурационный файл пользователя
/data/nginx/user_conf.d/{prefix}{server_id}.hostkey.in.confавтоматически добавляется директиваproxy_pass http://127.0.0.1:8080;для перенаправления трафика на веб-интерфейс.
Инструкция по обновлению приложения¶
Для обновления основного интерфейса используется стандартный метод Docker Compose:
Также рекомендуется обновить модель Ollama командой: ollama pull qwen3-coder