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

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

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

Развертывание включает в себя следующие этапы:

  1. Обновление системных пакетов и установка ядра linux-generic-hwe-22.04.

  2. Установка драйверов NVIDIA (если обнаружена видеокарта) и утилиты ubuntu-drivers-common.

  3. Установка среды выполнения Ollama через официальный скрипт.

  4. Загрузка модели qwen3.6:35b в Ollama.

  5. Развертывание контейнера OpenWebUI для взаимодействия с моделью.

  6. Настройка обратного прокси-сервера 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.

Инструкция по обновлению приложения

Обновление выполняется через перезапуск контейнеров и обновление образов:

docker compose pull && docker compose up -d

Для сервиса 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 внутри защищенного туннеля.

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