Обзор развертывания gpt-oss-120b на сервере¶
Предварительные требования и базовые условия¶
Для развертывания требуется сервер Linux с операционной системой Ubuntu и правами root. В системе должен быть установлен и настроен Docker для поддержки ускорения GPU для работы ИИ-модели. Необходимы следующие компоненты:
-
Операционная система: Ubuntu
-
Права доступа: Доступ root (sudo)
-
Сеть: Доступ в интернет для загрузки моделей и сертификатов
-
Аппаратное обеспечение: Поддержка GPU для ускорения CUDA
FQDN целевой панели¶
Приложение доступно по следующему формату полного доменного имени (FQDN):
gpt-oss<Server ID>.hostkey.in:443
Замените <Server ID> на конкретный идентификатор, назначенный экземпляру сервера.
Структура файлов и каталогов¶
Развертывание использует следующую структуру каталогов для конфигурации, данных и сертификатов:
-
/root/nginx/: Содержит конфигурацию Docker Compose для прокси и управления SSL. -
/data/nginx/user_conf.d/: Хранит пользовательские файлы конфигурации Nginx для конкретного домена. -
/data/nginx/nginx-certbot.env: Файл окружения для сервиса Nginx-Certbot. -
/etc/systemd/system/ollama.service: Файл сервиса Systemd для бэкенда Ollama. -
/usr/share/ollama/.ollama/models/: Место хранения загруженных моделей ИИ. -
/var/lib/docker/volumes/open-webui/: Постоянный том хранения для данных приложения Open WebUI.
Процесс установки приложения¶
Приложение состоит из бэкенд-движка ИИ (Ollama) и фронтенд-интерфейса (Open WebUI). Установка включает следующие шаги:
-
Установка Ollama: Пакет Ollama устанавливается с помощью официального скрипта установки.
-
Настройка сервиса Ollama: Файл
ollama.serviceмодифицируется для установки следующих переменных окружения:-
OLLAMA_HOST=0.0.0.0 -
OLLAMA_ORIGINS=* -
LLAMA_FLASH_ATTENTION=1
-
-
Загрузка модели: Модель
gpt-oss:20bзагружается и сохраняется локально. -
Развертывание Open WebUI: Фронтенд развертывается как контейнер Docker с использованием образа
ghcr.io/open-webui/open-webui:cuda.
Контейнеры Docker и их развертывание¶
Для запуска стека приложения развертываются два основных контейнера Docker:
-
Контейнер Open WebUI:
-
Образ:
ghcr.io/open-webui/open-webui:cuda -
Имя:
open-webui -
Порты: Маппинг порта хоста
8080на порт контейнера8080. -
Переменные окружения:
-
ENV=dev -
OLLAMA_BASE_URLS=http://host.docker.internal:11434
-
-
Томы: Монтирование тома
open-webuiв/app/backend/data. -
GPU: Настроен с параметром
--gpus allдля поддержки CUDA. -
Политика перезапуска: Установлена в
always.
-
-
Контейнер Nginx-Certbot:
-
Образ:
jonasal/nginx-certbot:latest -
Режим сети: Host
-
Томы:
-
nginx_secretsсмонтирован в/etc/letsencrypt. -
/data/nginx/user_conf.dсмонтирован в/etc/nginx/user_conf.d.
-
-
Окружение: Использует
CERTBOT_EMAIL=hkadm@hostkey.comи загружает переменные из/data/nginx/nginx-certbot.env.
-
Прокси-серверы¶
Приложение использует Nginx в качестве обратного прокси с завершением SSL, управляемым Certbot.
-
Конфигурация прокси: Файл конфигурации Nginx, расположенный по пути
/data/nginx/user_conf.d/gpt-oss<Server ID>.hostkey.in.conf, направляет трафик во внутреннее приложение. -
Proxy Pass: Трафик перенаправляется с внешнего порта на внутренний сервис с использованием правила:
proxy_pass http://127.0.0.1:8080;. -
SSL: Автоматически управляется контейнером
nginx-certbotдля обеспечения подключения по HTTPS на порту 443.
Доступные порты для подключения¶
Для приложения настроены следующие порты:
-
Порт 443: Внешний доступ по HTTPS через прокси Nginx.
-
Порт 8080: Внутренний доступ по HTTP для контейнера Open WebUI.
-
Порт 11434: Внутренний доступ для сервиса Ollama (доступен через
host.docker.internalизнутри контейнера).
Запуск, остановка и обновление¶
Управление сервисами осуществляется с помощью команд Docker и Systemd:
-
Контейнер Open WebUI:
-
Запуск:
docker start open-webui -
Остановка:
docker stop open-webui -
Перезапуск:
docker restart open-webui -
Обновление: Загрузить последний образ и пересоздать контейнер.
-
-
Сервис Ollama:
-
Запуск:
systemctl start ollama -
Остановка:
systemctl stop ollama -
Перезапуск:
systemctl restart ollama -
Включение при загрузке:
systemctl enable ollama
-
-
Прокси Nginx:
-
Запуск/Обновление:
docker compose up -d, выполняется из каталога/root/nginx. -
Остановка:
docker compose down, выполняется из каталога/root/nginx.
-