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

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

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

Развертывание включает в себя несколько этапов настройки системы и установку компонентов:

  1. Установка среды выполнения: Устанавливается Docker и необходимые библиотеки NVIDIA CUDA.

  2. Настройка Ollama:

  3. Загружается установочный скрипт https://ollama.com/install.sh.

  4. Создается системный пользователь ollama.

  5. В конфигурационный файл службы /etc/systemd/system/ollama.service вносятся изменения для поддержки сетевого доступа (OLLAMA_HOST=0.0.0.0) и оптимизации вычислений (LLAMA_FLASH_ATTENTION=1).

  6. Выполняется загрузка модели gemma3:27b.

  7. Настройка GPU-ускорения:

  8. Устанавливаются пакеты nvidia-container-toolkit и nvidia-container-runtime.

  9. Конфигурация Docker (/etc/docker/daemon.json) настраивается для использования NVIDIA runtime по умолчанию.

  10. Развертывание интерфейса: Запуск контейнера 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:

docker compose pull && docker compose up -d

(Примечание: Обновление модели 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

Запуск, остановка приложения

Управление прокси-сервером:

cd /root/nginx && docker compose up -d # Запуск
cd /root/nginx && docker compose down # Остановка

Управление интерфейсом:

docker start open-webui # Запуск
docker stop open-webui # Остановка

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