Обзор развертывания gpt-oss на сервере¶
Предварительные требования¶
Для корректной работы приложения сервер должен соответствовать следующим требованиям:
-
Операционная система: Ubuntu.
-
Аппаратное обеспечение: Наличие графического процессора (GPU) с поддержкой CUDA для ускорения вычислений.
-
Доступ: Права суперпользователя (root) для установки системных пакетов и управления Docker.
-
Сеть: Открытые порты 443 (HTTPS) и 8080 (внутренний сервис).
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу приложения используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | gpt-oss |
| Домен | hostkey.in |
| Полный шаблон | gpt-oss{Server_ID}.hostkey.in |
Процесс установки приложения¶
Процесс развертывания включает в себя установку системных компонентов, настройку среды выполнения нейросетей и запуск контейнеров.
-
Подготовка системы:
-
Установка Docker.
-
Установка драйверов и библиотек NVIDIA CUDA.
-
Установка Ollama:
-
Загрузка и выполнение установочного скрипта
https://ollama.com/install.sh. -
Создание системного пользователя
ollama. -
Настройка службы
ollama.serviceдля прослушивания всех сетевых интерфейсов (OLLAMA_HOST=0.0.0.0) и разрешения запросов из других контейнеров (OLLAMA_ORIGINS=*). -
Активация функции Flash Attention (
LLAMA_FLASH_ATTENTION=1). -
Загрузка модели:
-
Автоматическая загрузка весов модели
gpt-oss:20bв систему Ollama. -
Развертывание интерфейса:
-
Запуск контейнера 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.
Инструкция по обновлению приложения¶
Для обновления основного компонента (интерфейса) необходимо выполнить следующие действия:
-
Перезапустить контейнер Open WebUI, чтобы подтянуть актуальный образ:
-
Для обновления модели Ollama используйте команду:
Расположение конфигурационных файлов и данных¶
| Тип данных | Путь на сервере |
|---|---|
| Конфигурации 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 |