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

Gemma-3-27B

Предварительные требования

  • Операционная система: Ubuntu Linux

  • Привилегии: Для внесения изменений в систему, установки Docker и управления службами требуются права root или привилегии sudo.

  • Оборудование: Система должна быть оснащена графическими процессорами NVIDIA для поддержки nvidia-container-runtime.

  • Сеть: Требуется подключение к Интернету для получения образов Docker и загрузки модели Gemma3.

FQDN конечной панели

Приложение доступно по следующему полностью квалифицированному доменному имени (FQDN) в домене hostkey.in:

  • Адрес: gemma<Server ID>.hostkey.in:443

  • Замените <Server ID> на конкретный идентификатор, назначенный вашему экземпляру.

Структура файлов и директорий

Следующие директории и файлы содержат критически важные конфигурации и данные:

  • /root/nginx/: Директория с файлами конфигурации прокси Nginx и Certbot.

  • /root/nginx/compose.yml: Файл Docker Compose для стека Nginx/Certbot.

  • /etc/systemd/system/ollama.service: Файл юнита службы Systemd для бэкенда Ollama.

  • /etc/systemd/system/ollama.service.bak: Резервная копия оригинального файла службы Ollama.

  • /etc/docker/daemon.json: Файл конфигурации демона Docker, определяющий рантайм NVIDIA.

  • /data/nginx/: Директория для данных Nginx, включая SSL-сертификаты и конфигурации пользователей.

  • /data/nginx/nginx-certbot.env: Переменные окружения для службы Certbot.

  • /data/nginx/user_conf.d/: Директория для пользовательских сниппетов конфигурации Nginx.

  • /etc/letsencrypt/: Внешний том (volume) для монтирования SSL-секретов, управляемых Nginx-Certbot.

  • /app/backend/data/: Внутренний том (volume) для монтирования постоянных данных Open-WebUI.

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

Установка состоит из трех основных компонентов: бэкенд Ollama, рантайм для GPU NVIDIA и фронтенд Open-WebUI.

Настройка бэкенда Ollama

  1. Установите Ollama, используя официальный скрипт установки.

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

  3. Измените файл ollama.service, чтобы сделать службу доступной на всех сетевых интерфейсах, и включите определенные переменные окружения для производительности и безопасности:

  4. OLLAMA_HOST=0.0.0.0

  5. OLLAMA_ORIGINS=*

  6. LLAMA_FLASH_ATTENTION=1

  7. Перезагрузите демон systemd и перезапустите службу Ollama.

  8. Загрузите конкретную модель gemma3:27b, используя команду ollama pull gemma3:27b.

Настройка NVIDIA Container Toolkit

  1. Установите пакет nvidia-container-toolkit.

  2. Настройте рантайм контейнера NVIDIA для Docker, выполнив nvidia-ctk runtime configure --runtime=docker.

  3. Обновите файл /etc/docker/daemon.json, установив nvidia в качестве рантайма по умолчанию.

  4. Перезапустите службу Docker для применения изменений рантайма.

Настройка фронтенда Open-WebUI

  1. Удалите любой существующий контейнер с именем open-webui.

  2. Разверните контейнер Open-WebUI, используя образ ghcr.io/open-webui/open-webui:cuda.

  3. Настройте контейнер для публикации порта 8080 и использования всех доступных GPU.

  4. Установите переменную окружения OLLAMA_BASE_URLS в значение http://host.docker.internal:11434.

  5. Установите переменную окружения ENV со значением dev.

Права доступа и безопасность

  • Пользователь Docker: Пользователь ollama создается как системный пользователь для управления службой бэкенда.

  • Оригины Ollama: Переменная окружения OLLAMA_ORIGINS установлена в значение *, что позволяет запросы с любого источника.

  • Nginx/Certbot: Контейнер Nginx работает в режиме сети host, чтобы обрабатывать HTTPS-трафик напрямую на сетевом интерфейсе сервера.

  • Персистентность служб: Служба Ollama и контейнер Open-WebUI настроены на автоматический перезапуск при сбое или перезагрузке системы.

Базы данных

  • Хранение: Приложение Open-WebUI сохраняет свои данные в томе Docker с именем open-webui, который отображается в директорию /app/backend/data внутри контейнера.

  • Подключение: Внешнее подключение к базе данных не настроено; приложение использует свой внутренний механизм хранения в смонтированном томе.

Контейнеры Docker и их развертывание

В данной архитектуре используются два отдельных развертывания Docker:

Контейнер Open-WebUI

  • Образ: ghcr.io/open-webui/open-webui:cuda

  • Имя: open-webui

  • Порты: Внутренний порт 8080 отображается на порт хоста 8080.

  • GPU: Настроен с параметром --gpus all для использования аппаратного ускорения NVIDIA.

  • Томы: Том open-webui смонтирован в /app/backend/data.

  • Хосты: Добавлена DNS-запись host.docker.internal, указывающая на шлюз хоста.

  • Переменные окружения:

  • ENV=dev

  • OLLAMA_BASE_URLS=http://host.docker.internal:11434

Контейнер Nginx-Certbot

  • Образ: jonasal/nginx-certbot:latest

  • Метод развертывания: Docker Compose, расположенный в /root/nginx/compose.yml.

  • Томы:

  • nginx_secrets (внешний том), смонтированный в /etc/letsencrypt.

  • Путь на хосте /data/nginx/user_conf.d, смонтированный в /etc/nginx/user_conf.d.

  • Окружение:

  • CERTBOT_EMAIL=hkadm@hostkey.com

  • Загружает дополнительные переменные из /data/nginx/nginx-certbot.env.

  • Режим сети: host

Прокси-серверы

  • ПО: Nginx с Certbot для управления SSL-сертификатами.

  • Образ: jonasal/nginx-certbot:latest

  • Конфигурация:

  • Управляет SSL-сертификатами для домена gemma<Server ID>.hostkey.in.

  • Перенаправляет трафик с внешнего порта 443 (HTTPS) на внутренний порт 8080.

  • Использует режим сети host, связываясь напрямую с сетевым стеком сервера.

  • Электронная почта: Уведомления о продлении SSL настроены для адреса hkadm@hostkey.com.

Настройки разрешений

  • Директория Nginx: Директория /root/nginx принадлежит root:root с правами 0755.

  • Файл Compose: Файл /root/nginx/compose.yml принадлежит root:root с правами 0644.

  • Демон Docker: Файл /etc/docker/daemon.json принадлежит root с правами 0644.

Расположение файлов конфигурации и данных

Компонент Файл/Путь конфигурации Описание
Nginx Proxy /root/nginx/compose.yml Определение Docker Compose для Nginx и Certbot.
Служба Ollama /etc/systemd/system/ollama.service Файл юнита Systemd для бэкенда Ollama.
Демон Docker /etc/docker/daemon.json Конфигурация рантайма для поддержки NVIDIA.
Данные Nginx /data/nginx/ Корневая директория для логов, конфигов и сертификатов Nginx.
SSL Секреты /data/nginx/user_conf.d/ Директория для пользовательской конфигурации Nginx.
Данные Open-WebUI Том Docker open-webui Постоянное хранилище для веб-интерфейса.

Доступные порты для подключения

  • 443 (HTTPS): Внешний доступ к фронтенду Open-WebUI через прокси Nginx.

  • 8080 (HTTP): Внутренний доступ к контейнеру Open-WebUI (используется прокси Nginx).

  • 11434 (HTTP): Внутренний доступ к конечной точке API Ollama.

Запуск, остановка и обновление

Служба Ollama

  • Запуск: systemctl start ollama

  • Остановка: systemctl stop ollama

  • Перезапуск: systemctl restart ollama

  • Включение в автозагрузку: systemctl enable ollama

Контейнер Open-WebUI

  • Запуск: docker start open-webui

  • Остановка: docker stop open-webui

  • Удаление: docker rm -f open-webui

  • Перезапуск: docker restart open-webui

Контейнер Nginx-Certbot

  • Запуск/Обновление: Перейдите в /root/nginx и выполните docker compose up -d.

  • Остановка: Перейдите в /root/nginx и выполните docker compose down.

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