Обзор развертывания Qwen на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы:
-
Операционная система: Ubuntu (рекомендуется версия 22.04 с ядром HWE).
-
Права доступа: Права суперпользователя (
root) для установки драйверов и системных зависимостей. -
Порты:
-
8080— внутренний порт приложения (Ollama/OpenWebUI). -
443— внешний порт для HTTPS доступа.
FDQN итоговой панели на домене hostkey.in¶
Шаблон доменного имени для доступа к интерфейсу:
| Параметр | Значение |
|---|---|
| Префикс | qwen |
| Домен | hostkey.in |
| Полный шаблон | qwen{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные пути к данным и конфигурациям:
-
/root/nginx— рабочая директория для контейнера Nginx (содержитcompose.yml). -
/data/nginx/user_conf.d— директория с пользовательскими конфигурациями Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для SSL. -
/app/backend/data(внутри контейнера) — хранилище данных OpenWebUI.
Процесс установки приложения¶
Развертывание включает в себя следующие этапы:
-
Обновление системных пакетов и установка ядра
linux-generic-hwe-22.04. -
Установка драйверов NVIDIA (если обнаружена видеокарта) и утилиты
ubuntu-drivers-common. -
Установка среды выполнения Ollama через официальный скрипт.
-
Загрузка модели
qwen3.6:35bв Ollama. -
Развертывание контейнера OpenWebUI для взаимодействия с моделью.
-
Настройка обратного прокси-сервера Nginx с автоматическим получением SSL-сертификатов через Certbot.
Права доступа и безопасность¶
-
Пользователи: Для работы Ollama создается системный пользователь
ollamaбез возможности входа в систему (/bin/false). -
Брандмауэр: Доступ осуществляется через стандартный HTTPS порт
443. -
Безопасность Docker: Контейнер OpenWebUI запущен с использованием сетевого режима
hostдля прямого взаимодействия с локальным сервисом Ollama.
Базы данных¶
Приложение использует встроенные механизмы хранения данных внутри контейнера OpenWebUI через именованный том open-webui. Внешняя база данных не требуется, так как модель работает через API локального сервиса Ollama (http://127.0.0.1:11434).
Контейнеры Docker и их запуск¶
В системе развернуты два типа контейнерных сред:
Nginx (Reverse Proxy)¶
-
Имя образа:
jonasal/nginx-certbot:latest -
Порты:
8080(внутренний),443(внешний, через host mode). -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— сертификаты SSL. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— конфигурации сайтов. -
Переменные окружения:
CERTBOT_EMAIL=hkadm@hostkey.com. -
Политика перезапуска:
unless-stopped.
OpenWebUI (Интерфейс)¶
-
Имя образа:
ghcr.io/open-webui/open-webui:main -
Порты: Использует сетевой режим
host. -
Тома (volumes):
open-webui:/app/backend/data. -
Переменные окружения:
OLLAMA_BASE_URL=http://127.0.0.1:11434. -
Политика перезапуска:
always.
Инструкция по обновлению приложения¶
Обновление выполняется через перезапуск контейнеров и обновление образов:
Для сервиса Nginx возможен перезапуск конфигурации без остановки контейнера: docker exec nginx-nginx-1 nginx -s reload
Настройки прав¶
-
Директория
/root/nginxимеет права0755, владелецroot. -
Конфигурационные файлы в
/root/nginx/compose.ymlимеют права0644. -
Пользователь
ollamaдобавляется в группыrenderиvideoдля доступа к графическому ускорению (GPU).
Расположение конфигурационных файлов и данных¶
| Тип данных | Путь на хосте / В контейнере |
|---|---|
| Конфигурация Nginx | /data/nginx/user_conf.d/ |
| Данные OpenWebUI | Том open-webui (Docker volume) |
| Сертификаты SSL | Том nginx_secrets |
Доступные порты для подключения¶
- HTTPS:
443— основной порт для доступа к веб-интерфейсу.
Запуск, остановка приложения¶
Управление контейнером Nginx:
-
Остановка:
docker compose down(в директории/root/nginx). -
Запуск:
docker compose up -d.
Управление сервисом Ollama:
-
systemctl start ollama -
systemctl stop ollama -
systemctl restart ollama
Прокси серверы¶
В качестве прокси-сервера используется nginx-certbot. Он обеспечивает автоматическое получение и обновление SSL-сертификатов Let's Encrypt. Трафик, поступающий на порт 443, перенаправляется (proxy_pass) на локальный адрес http://127.0.0.1:8080 внутри защищенного туннеля.