Перейти к содержанию

Обзор развертывания 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).

Процесс установки приложения

Процесс развертывания включает несколько этапов: подготовка системы, установка драйверов и запуск контейнеров.

  1. Подготовка ОС:

  2. Установка curl.

  3. Настройка графической подсистемы NVIDIA (установка драйверов и CUDA). При необходимости выполняется перезагрузка сервера для активации модулей ядра.

  4. Установка Docker.

  5. Установка Ollama:

  6. Загрузка и запуск официального установочного скрипта ollama.

  7. Создание системного пользователя ollama.

  8. Настройка службы systemd для работы Ollama на всех интерфейсах (0.0.0.0) с включенным режимом LLAMA_FLASH_ATTENTION=1.

  9. Загрузка модели qwen3-coder.

  10. Развертывание веб-интерфейса:

  11. Запуск контейнера 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:

docker compose -f /root/nginx/compose.yml pull && docker compose -f /root/nginx/compose.yml up -d

Также рекомендуется обновить модель Ollama командой: ollama pull qwen3-coder

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×