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

Обзор развертывания gpt-oss на сервере

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

Для корректной работы приложения сервер должен соответствовать следующим требованиям:

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

  • Аппаратное обеспечение: Наличие графического процессора (GPU) с поддержкой CUDA для ускорения вычислений.

  • Доступ: Права суперпользователя (root) для установки системных пакетов и управления Docker.

  • Сеть: Открытые порты 443 (HTTPS) и 8080 (внутренний сервис).

FDQN итоговой панели на домене hostkey.in

Для доступа к интерфейсу приложения используется следующий шаблон доменного имени:

Параметр Значение
Префикс gpt-oss
Домен hostkey.in
Полный шаблон gpt-oss{Server_ID}.hostkey.in

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

Процесс развертывания включает в себя установку системных компонентов, настройку среды выполнения нейросетей и запуск контейнеров.

  1. Подготовка системы:

  2. Установка Docker.

  3. Установка драйверов и библиотек NVIDIA CUDA.

  4. Установка Ollama:

  5. Загрузка и выполнение установочного скрипта https://ollama.com/install.sh.

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

  7. Настройка службы ollama.service для прослушивания всех сетевых интерфейсов (OLLAMA_HOST=0.0.0.0) и разрешения запросов из других контейнеров (OLLAMA_ORIGINS=*).

  8. Активация функции Flash Attention (LLAMA_FLASH_ATTENTION=1).

  9. Загрузка модели:

  10. Автоматическая загрузка весов модели gpt-oss:20b в систему Ollama.

  11. Развертывание интерфейса:

  12. Запуск контейнера Open WebUI через Docker с использованием GPU.

Контейнеры Docker и их запуск

В системе развернуты следующие компоненты:

open-webui

Контейнер пользовательского интерфейса для взаимодействия с нейросетью.

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

  • Порты: 8080 (внутри контейнера) -> 8080 (на хосте).

  • Тома: open-webui (Docker volume) для хранения данных пользователя.

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

  • ENV='dev'

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

  • Политика перезапуска: always.

  • Особенности: Использует параметр --gpus all для доступа к видеокарте и --add-host=host.docker.internal:host-gateway для связи с Ollama на хосте.

nginx (через Docker Compose)

Контейнер для управления SSL-сертификатами и проксирования трафика.

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

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

  • Тома:

  • nginx_secrets:/etc/letsencrypt (для хранения сертификатов).

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d (конфигурации проксирования).

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

  • CERTBOT_EMAIL=hkadm@hostkey.com

Кастомные скрипты и дополнительные настройки

В процессе развертывания выполняются следующие действия:

  • Настройка конфигурации Nginx: После запуска контейнера с прокси-сервером, в файл конфигурации пользователя /data/nginx/user_conf.d/{prefix}{server_id}.hostkey.in.conf автоматически добавляется директива proxy_pass http://127.0.0.1:8080;, что направляет HTTPS-трафик на работающий интерфейс Open WebUI.

  • Настройка системной службы Ollama: В файл /etc/systemd/system/ollama.service вносятся изменения для обеспечения сетевой доступности API.

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

Для обновления основного компонента (интерфейса) необходимо выполнить следующие действия:

  1. Перезапустить контейнер Open WebUI, чтобы подтянуть актуальный образ:

    docker pull ghcr.io/open-webui/open-webui:cuda
    docker restart open-webui
    

  2. Для обновления модели Ollama используйте команду:

    ollama pull gpt-oss:20b
    

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

Тип данных Путь на сервере
Конфигурации Nginx (пользовательские) /data/nginx/user_conf.d/
Данные Open WebUI (Docker Volume) /var/lib/docker/volumes/open-webui/_data
Сертификаты SSL Внутри тома nginx_secrets
Конфигурация Nginx (системная) /root/nginx/compose.yml

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

Порт Назначение Протокол
443 Основной интерфейс приложения (через SSL) HTTPS
8080 Внутренний порт сервиса Open WebUI HTTP
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×