Обзор развертывания Gemma3 на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu.
-
Аппаратное обеспечение: Наличие графического процессора NVIDIA для использования аппаратного ускорения (CUDA).
-
Права доступа: Права суперпользователя (
root) или доступ черезsudo. -
Доменное имя: Настроенный DNS для работы с SSL-сертификатами.
FDQN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | gemma |
| Домен | hostkey.in |
| Полный шаблон | gemma{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/root/nginx— конфигурация прокси-сервера Nginx. -
/etc/systemd/system/— системные файлы службы Ollama. -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx. -
/data/nginx/nginx-certbot.env— переменные окружения для получения SSL-сертификатов.
Процесс установки приложения¶
Развертывание включает в себя несколько этапов настройки системы и установку компонентов:
-
Установка среды выполнения: Устанавливается Docker и необходимые библиотеки NVIDIA CUDA.
-
Настройка Ollama:
-
Загружается установочный скрипт
https://ollama.com/install.sh. -
Создается системный пользователь
ollama. -
В конфигурационный файл службы
/etc/systemd/system/ollama.serviceвносятся изменения для поддержки сетевого доступа (OLLAMA_HOST=0.0.0.0) и оптимизации вычислений (LLAMA_FLASH_ATTENTION=1). -
Выполняется загрузка модели
gemma3:27b. -
Настройка GPU-ускорения:
-
Устанавливаются пакеты
nvidia-container-toolkitиnvidia-container-runtime. -
Конфигурация Docker (
/etc/docker/daemon.json) настраивается для использования NVIDIA runtime по умолчанию. -
Развертывание интерфейса: Запуск контейнера Open WebUI с поддержкой GPU.
Права доступа и безопасность¶
-
Для работы сервисов используются системные пользователи (например,
ollama). -
Конфигурационные файлы Nginx имеют права доступа
0644. -
Директория
/root/nginxимеет права0755. -
Настройка Docker включает использование специализированного рантайма для изоляции процессов GPU.
Базы данных¶
Приложение использует встроенное хранилище данных внутри контейнера 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' -
Особенности: Использует все доступные GPU (
--gpus all) и имеет политику перезапускаalways.
nginx¶
-
Образ:
jonasal/nginx-certbot:latest -
Сеть: Режим
host(прямое использование сетевого стека хоста). -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d -
Переменные окружения: Используется файл конфигурации
/data/nginx/nginx-certbot.env.
Кастомные скрипты и дополнительные настройки¶
В процессе установки выполняются следующие действия:
-
Настройка Ollama: Редактирование системных юнитов
systemdдля открытия портов и включения функций ускорения внимания (Flash Attention). -
Конфигурация Docker Runtime: Автоматическое создание файла
/etc/docker/daemon.jsonс настройками NVIDIA для обеспечения бесшовной работы контейнеров с GPU.
Инструкция по обновлению приложения¶
Для обновления основного интерфейса используется стандартная процедура Docker:
(Примечание: Обновление модели Ollama выполняется командой ollama pull gemma3:27b).
Расположение конфигурационных файлов и данных¶
-
Данные Open WebUI: Docker volume
open-webui. -
Конфигурация Nginx:
/root/nginx/compose.yml. -
Сертификаты SSL: Внутри тома
nginx_secrets.
Доступные порты для подключения¶
| Порт | Назначение | Протокол |
|---|---|---|
443 | Основной доступ к приложению (через Nginx) | HTTPS |
8080 | Внутренний порт приложения Open WebUI | HTTP |
Запуск, остановка приложения¶
Управление прокси-сервером:
Управление интерфейсом: