Обзор развертывания gpt-oss на сервере¶
Предварительные требования¶
Для корректной работы приложения сервер должен соответствовать следующим требованиям:
-
Операционная система: Ubuntu.
-
Наличие установленного Docker и поддержки GPU (NVIDIA CUDA).
-
Доступ к интернету для загрузки моделей и образов.
-
Открытые порты:
443(HTTPS) и8080(внутренний сервис).
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | gpt-oss |
| Домен | hostkey.in |
| Полный шаблон | gpt-oss{Server_ID}.hostkey.in |
Процесс установки приложения¶
Процесс развертывания включает в себя несколько этапов: установку системных компонентов, настройку среды выполнения нейросетей и запуск контейнеров.
-
Установка базовых компонентов:
-
Устанавливается пакет
curl. -
Выполняется установка Docker и драйверов NVIDIA CUDA.
-
Настройка Ollama:
-
С помощью официального установочного скрипта устанавливается среда Ollama.
-
Создается системный пользователь
ollama. -
Настраивается конфигурация службы
systemdдля прослушивания всех сетевых интерфейсов (OLLAMA_HOST=0.0.0.0) и разрешения запросов из других контейнеров (OLLAMA_ORIGINS=*). -
Включается поддержка ускорения
LLAMA_FLASH_ATTENTION=1. -
Загрузка модели:
-
Выполняется автоматическая загрузка весов модели
gpt-oss:20bв систему Ollama. -
Развертывание интерфейса:
-
Запускается контейнер Docker для веб-интерфейса Open WebUI с поддержкой GPU.
Контейнеры Docker и их запуск¶
В системе развернуты следующие контейнеры:
open-webui¶
Контейнер пользовательского интерфейса для взаимодействия с нейросетью.
-
Образ:
ghcr.io/open-webui/open-webui:cuda -
Порты:
8080:8080 -
Тома (volumes):
open-webui(именованный том для хранения данных приложения). -
Переменные окружения:
-
ENV='dev' -
OLLAMA_BASE_URLS='http://host.docker.internal:11434' -
Политика перезапуска:
always -
Особенности: Используется параметр
--gpus allдля доступа к видеокарте и--add-host=host.docker.internal:host-gatewayдля связи с хостовой машиной.
nginx (через docker-compose)¶
Контейнер для обеспечения работы HTTPS и проксирования трафика.
-
Образ:
jonasal/nginx-certbot:latest -
Сеть: Режим
host. -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt(для хранения SSL-сертификатов). -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d(пользовательские конфигурации). -
Политика перезапуска:
unless-stopped.
Кастомные скрипты и дополнительные настройки¶
В процессе установки выполняются следующие действия:
-
Настройка проксирования: В конфигурационные файлы Nginx вносится автоматическое правило
proxy_pass, направляющее трафик с внешнего домена на внутренний портhttp://127.0.0.1:8080. -
Подготовка SSL: Настраивается интеграция с Certbot для автоматического получения и обновления сертификатов через Docker-контейнер Nginx.
Инструкция по обновлению приложения¶
Для обновления основного интерфейса необходимо выполнить следующие действия:
Также рекомендуется обновить модель Ollama, выполнив команду: ollama pull gpt-oss:20b
Расположение конфигурационных файлов и данных¶
| Тип данных | Путь к расположению |
|---|---|
| Конфигурация Nginx (пользовательская) | /data/nginx/user_conf.d/ |
| Данные Open WebUI (внутри Docker) | open-webui (volume) |
| Сертификаты SSL | В томе nginx_secrets |
| Конфигурация Nginx (Docker Compose) | /root/nginx/compose.yml |
Доступные порты для подключения¶
-
443 — HTTPS доступ к веб-интерфейсу через доменное имя.
-
8080 — локальный порт сервиса Open WebUI.