Обзор развертывания gpt-oss-20b на сервере¶
Предварительные требования и базовые условия¶
Развертывание приложения требует сервера с совместимым дистрибутивом Linux, в частности Ubuntu, для поддержки необходимого управления пакетами и системных служб. Перед продолжением должны быть соблюдены следующие предварительные требования:
-
Сервер должен иметь права root или доступ через
sudo. -
На системе должна быть доступна утилита
curl. -
Docker Engine должен быть установлен и запущен.
-
Служба
ollamaдолжна быть установлена и настроена на прослушивание всех сетевых интерфейсов. -
Домен
hostkey.inдолжен быть доступен для разрешения DNS и генерации сертификатов. -
Порты 8080 (внутренний) и 443 (внешний) должны быть доступны для маршрутизации трафика.
FQDN конечной панели¶
Приложение доступно через Полное доменное имя (Fully Qualified Domain Name, FQDN), используя домен hostkey.in. Формат следует паттерну: префикс, за которым следует ID сервера и порт.
-
Базовый домен:
hostkey.in -
Формат URL:
gpt-oss<Server ID>.hostkey.in:443 -
Протокол доступа: HTTPS
Структура файлов и директорий¶
Приложение использует определенные директории для конфигурации, хранения данных и SSL-сертификатов. Ключевые расположения приведены ниже:
-
Директория конфигурации Nginx:
/root/nginx -
Файл Nginx Compose:
/root/nginx/compose.yml -
Директория пользовательской конфигурации:
/data/nginx/user_conf.d -
Файл конфигурации конкретного пользователя:
/data/nginx/user_conf.d/gpt-oss<Server ID>.hostkey.in.conf -
Том SSL-сертификатов: Подключен в точке
/etc/letsencryptвнутри контейнера Nginx. -
Директория моделей Ollama:
/usr/share/ollama/.ollama/models -
Том данных Open WebUI: Сопоставлен с том Docker
open-webui(физический путь обычно/var/lib/docker/volumes/open-webui/_data).
Процесс установки приложения¶
Установка включает настройку бэкенда Ollama и фронтенда Open WebUI через Docker.
-
Установка Ollama: Пакет Ollama устанавливается с использованием официального скрипта установки.
-
Настройка системной службы Ollama: Служба
ollamaмодифицируется для прослушивания всех интерфейсов (0.0.0.0) и включения определенных переменных окружения для Origins и Flash Attention. Файл службы находится в/etc/systemd/system/ollama.service. -
Установленные переменные окружения:
-
OLLAMA_HOST=0.0.0.0 -
OLLAMA_ORIGINS=* -
LLAMA_FLASH_ATTENTION=1
-
-
Загрузка модели: Конкретная модель
gpt-oss:20bзагружается в репозиторий Ollama. -
Развертывание Open WebUI: Контейнер Open WebUI развертывается с поддержкой GPU и конкретными переменными окружения для подключения к локальному экземпляру Ollama.
-
Образ:
ghcr.io/open-webui/open-webui:cuda -
Имя контейнера:
open-webui -
Сопоставление портов: Открывает порт хоста
8080для порта контейнера8080.
Контейнеры Docker и их развертывание¶
В этом развертывании управляются два основных контейнера Docker: Open WebUI и Nginx Certbot.
Контейнер Open WebUI:
-
Команда развертывания:
-
Ключевые параметры:
-
--gpus all: Включает ускорение через GPU. -
-v open-webui:/app/backend/data: Обеспечивает сохранение данных приложения. -
-e OLLAMA_BASE_URLS: Указывает на экземпляр Ollama через шлюз хоста.
Контейнер Nginx и Certbot:
-
Метод развертывания: Управляется через
docker composeв директории/root/nginx. -
Файл конфигурации:
/root/nginx/compose.yml. -
Образ:
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, который обрабатывает завершение SSL и маршрутизацию.
-
Программное обеспечение прокси: Nginx с Certbot для SSL-сертификатов Let's Encrypt.
-
Расположение конфигурации: Пользовательская конфигурация добавляется в
/data/nginx/user_conf.d/gpt-oss<Server ID>.hostkey.in.conf. -
Правило маршрутизации: Блок
location/проксирует запросы к внутреннему экземпляру Open WebUI. -
Внешний порт: 443 (HTTPS).
-
Внутренний порт: 8080 (HTTP).
Права доступа и безопасность¶
-
Системный пользователь: Выделенный системный пользователь
ollamaсоздается и используется службой Ollama. -
Межсетевой экран (Firewall): Конфигурация предполагает, что внешний трафик разрешен на порту 443. Внутренний трафик на порту 8080 обрабатывается локально.
-
SSL/TLS: Безопасные соединения обеспечиваются через контейнер Nginx с использованием сертификатов Let's Encrypt, управляемых Certbot.
-
Ограничения: Конфигурация прокси Nginx ограничивает доступ к конкретному поддомену, определенному в директории
user_conf.d.
Расположение файлов конфигурации и данных¶
Следующая таблица резюмирует критические расположения файлов для развертывания:
| Компонент | Путь к файлу/директории | Описание |
|---|---|---|
| Директория конфигурации Nginx | /root/nginx | Директория, содержащая настройку Docker Compose для прокси. |
| Файл Nginx Compose | /root/nginx/compose.yml | Определение контейнеров Nginx и Certbot. |
| Пользовательская конфигурация Nginx | /data/nginx/user_conf.d/gpt-oss<Server ID>.hostkey.in.conf | Конкретные правила прокси для домена приложения. |
| SSL-секреты | /etc/letsencrypt (Docker том) | Хранилище для SSL-сертификатов (подключенный том). |
| Служба Ollama | /etc/systemd/system/ollama.service | Файл сервиса systemd для бэкенда Ollama. |
| Резервная копия Ollama | /etc/systemd/system/ollama.service.bak | Резервная копия исходного файла сервиса. |
| Данные Open WebUI | /var/lib/docker/volumes/open-webui/_data | Физическое расположение Docker-тома для данных приложения. |
| Модели Ollama | /usr/share/ollama/.ollama/models | Хранилище для загруженных AI-моделей. |
Доступные порты для подключения¶
Развертывание использует следующие порты для сетевой связи:
-
Порт 443:
-
Тип: Внешний (HTTPS)
-
Использование: Безопасный веб-доступ через домен
hostkey.in. -
Служба: Прокси Nginx.
-
Порт 8080:
-
Тип: Внутренний (HTTP)
-
Использование: Локальное подключение от прокси Nginx к контейнеру Open WebUI.
-
Служба: Open WebUI.
-
Порт 11434:
-
Тип: Внутренний (HTTP)
-
Использование: Локальное подключение от контейнера Open WebUI к бэкенду Ollama.
-
Служба: Ollama.
Запуск, остановка и обновление¶
Управление службами осуществляется с помощью команд Docker для контейнеров и systemctl для службы Ollama.
-
Перезапуск прокси: Стек контейнеров Nginx и Certbot управляется через Docker Compose в директории
/root/nginx. -
Перезапуск Open WebUI: Контейнер Open WebUI настроен с параметром
--restart always, что означает автоматический перезапуск при сбое или перезагрузке. Для ручного перезапуска: -
Управление службой Ollama: Служба Ollama управляется через
systemd. -
Перезагрузка демона systemd после изменений конфигурации:
-
Перезапуск службы:
-
Проверка статуса: