# Open WebUI: установка, Ollama, модели и локальный чат

Источник: https://modelium.tech/zhurnal/open-webui/

Open WebUI — самостоятельный веб-интерфейс для локальных и удалённых моделей, но не движок инференса: ему нужен Ollama, vLLM, llama.cpp server или другой совместимый API. Для воспроизводимой установки закрепите версию Docker-образа, сохраните отдельный том данных и секрет сессий, затем проверьте модель коротким контрольным запросом.

**Граница проверки.** Материал сверён с Open WebUI v0.11.4 и документацией на ревизии `bb28bbf` 22 сентября 2026 года. Modelium не запускал этот стек и не измерял скорость, RAM, VRAM, качество RAG или совместимость конкретной модели. Команды ниже основаны на документации; перед рабочим внедрением проверьте их в своей ОС и сети.

## Что такое Open WebUI и что он не заменяет

Open WebUI — самостоятельный веб-интерфейс для общения с моделями, управления подключениями, чатами, файлами и дополнительными инструментами. Он работает на macOS, Linux и Windows; документация рекомендует Docker как основной способ установки для большинства пользователей [s2](#src-s2).

Ключевое ограничение: Open WebUI не поставляет собственную языковую модель и не заменяет движок инференса. После установки нужно подключить Ollama либо сервер с OpenAI-совместимым API — например, vLLM, llama.cpp server или LM Studio в режиме сервера [s2](#src-s2) [s5](#src-s5). Поэтому рабочий стек выглядит так:

- модель и её файлы;

- runtime, который загружает модель на CPU, GPU или несколько GPU;

- HTTP API runtime;

- Open WebUI как пользовательский интерфейс;

- контрольный запрос, который подтверждает всю цепочку.

Open WebUI подходит, если нужен браузерный чат для одного или нескольких пользователей, единый список моделей, сохранение истории и подключение документов. Если нужен только API для приложения без человеческого интерфейса, достаточно runtime-сервера. Если нужен первый локальный запуск без отдельного веб-сервиса, проще начать с Ollama или LM Studio, а Open WebUI добавить после проверки модели.

## Какое железо нужно для Open WebUI

Не следует рассчитывать требования к модели по требованиям интерфейса. Open WebUI может работать отдельно от машины с GPU: контейнер обслуживает веб-приложение, а запросы отправляет подключённому provider [s2](#src-s2) [s5](#src-s5). Память для весов, контекста и KV-кэша расходует runtime модели, а не сам факт установки веб-интерфейса.

Есть исключения: стандартный Docker-образ включает локальные компоненты для embeddings, распознавания речи и обработки документов. Облегчённый `slim`-образ удаляет локальный ML-стек и требует внешних сервисов для части этих функций [s3](#src-s3). Поэтому выбор образа зависит от задачи:

- обычный чат с внешним или локальным API — стандартный образ;

- минимальный интерфейс к уже готовым сервисам — `slim`, если его ограничения приняты;

- локальные embeddings, распознавание речи или расширенная обработка файлов — стандартный образ либо явно настроенные внешние компоненты [s3](#src-s3).

Размер Docker-образа и конфигурация машины разработчика не являются минимальными требованиями к вашим моделям. Для выбора GPU сначала определите модель, формат весов, контекст и runtime.

## Как установить Open WebUI 0.11.4 в Docker

На 22 сентября 2026 года проверенная стабильная версия — v0.11.4, опубликованная 21 сентября. Тег указывает на commit `8bd8b4f`; в релизе отдельно отмечены исправления безопасности и контроля доступа, поэтому production-инсталляции не стоит оставлять на заведомо старой версии [s1](#src-s1).

Документация различает плавающие теги `main`/`latest` и закреплённые теги релиза. Для воспроизводимого запуска используйте `v0.11.4`: такой тег не переедет на новую сборку после следующего merge [s3](#src-s3).

Сгенерируйте секрет и сохраните его в менеджере секретов или защищённом env-файле:

openssl rand -hex 32

Запустите контейнер, подставив сохранённое значение вместо `YOUR_FIXED_SECRET`:

docker run -d \  -p 3000:8080 \  --add-host=host.docker.internal:host-gateway \  -v open-webui:/app/backend/data \  -e WEBUI_SECRET_KEY=YOUR_FIXED_SECRET \  --name open-webui \  --restart always \  ghcr.io/open-webui/open-webui:v0.11.4

Том `open-webui` хранит пользователей, чаты и настройки и переживает пересоздание контейнера. Фиксированный `WEBUI_SECRET_KEY` нужен, чтобы после обновления не завершались все пользовательские сессии. Запись `host.docker.internal` позволяет контейнеру обращаться к Ollama или другому серверу на хостовой машине [s3](#src-s3).

Проверьте состояние:

docker ps --filter name=open-webuidocker logs -f open-webui

Документация предлагает дождаться сообщения `Application startup complete`, затем открыть `http://localhost:3000`. Первый созданный аккаунт становится администратором; после его появления самостоятельная регистрация новых пользователей по умолчанию отключается [s2](#src-s2).

## Как подключить Ollama

Сначала убедитесь, что Ollama уже отвечает и в нём есть хотя бы одна модель. Open WebUI использует отдельный Ollama protocol на стандартном порту `11434`, что даёт не только чат, но и управление моделями через интерфейс [s4](#src-s4).

Если Ollama запущен на той же машине, а Open WebUI — в Docker, укажите:

http://host.docker.internal:11434

Откройте **Settings → Admin → Connections**, найдите Ollama connection и сохраните адрес. При обычной установке Open WebUI пытается обнаружить локальный Ollama автоматически; при сетевой ошибке чаще всего нужно проверить адрес, доступность порта и то, на каком интерфейсе слушает Ollama [s2](#src-s2) [s4](#src-s4).

В Open WebUI можно подключить несколько Ollama-инстансов. Документация описывает случайное распределение запросов между ними, но объединение в один пункт списка требует одинаковых model ID и согласованных prefix-настроек [s4](#src-s4). Это базовое распределение, а не гарантия одинаковой скорости, памяти или состояния моделей на узлах.

Контекст задаётся на стороне Ollama и может быть переопределён параметром `num_ctx` в Open WebUI. Документация предупреждает, что включение этого параметра может незаметно установить слишком маленькое значение и обрезать prompt; увеличение контекста одновременно повышает расход RAM или VRAM [s4](#src-s4). Не ставьте максимум только потому, что он указан в карточке модели: начинайте с объёма, который выдерживает ваше железо и контрольный сценарий.

## Как подключить vLLM, llama.cpp server или LM Studio

Для локального сервера с OpenAI-совместимым Chat Completions API откройте **Settings → Admin → Connections**, добавьте OpenAI API connection и укажите base URL и ключ [s5](#src-s5). Если сервер работает на хостовой машине, из Docker вместо `localhost` обычно нужен `host.docker.internal` [s5](#src-s5).

Примеры адресов зависят от runtime:

http://host.docker.internal:8000/v1http://host.docker.internal:1234/v1http://host.docker.internal:8080/v1

Не копируйте порт вслепую: сверяйте его с командой запуска конкретного runtime. Кнопка проверки соединения обращается к `/models`; часть совместимых серверов не реализует этот endpoint. В таком случае неудачная проверка ещё не доказывает несовместимость чата — model ID можно внести вручную в allowlist и отдельно отправить тестовый запрос [s5](#src-s5).

OpenAI-совместимость также не гарантирует работу всех расширений. Chat, streaming, tools, изображения и embeddings могут поддерживаться разными endpoint или форматами. Проверяйте именно ту функцию, ради которой собирается стек.

## Когда не использовать Direct Connections

Обычная схема проходит через backend Open WebUI: браузер отправляет сообщение ему, а он обращается к provider. Экспериментальный режим Direct Connections позволяет браузеру ходить к OpenAI-совместимому API напрямую [s6](#src-s6).

Этот режим полезен для временного теста с личным ключом, но требует корректного CORS на provider и хранит ключ в local storage браузера. Документация рекомендует выдавать таким подключениям минимально необходимые credentials и не использовать административные ключи [s6](#src-s6). Для постоянного командного контура обычно проще централизованное server-side connection с управляемыми секретами, журналированием и сетевыми правилами.

## Как проверить, что стек действительно работает

Не ограничивайтесь тем, что страница открылась. Минимальная приёмка:

- контейнер имеет статус `Up`, а в логах нет цикла перезапуска;

- веб-интерфейс открывается на ожидаемом адресе;

- provider отображается в Admin Connections;

- в selector виден конкретный model ID;

- короткий запрос возвращает осмысленный ответ;

- после перезапуска контейнера остаются аккаунт, чат и настройки;

- модель отвечает повторно с тем же закреплённым runtime и конфигурацией.

Для контрольного запроса выберите маленькую уже проверенную в runtime модель и попросите вернуть короткую фиксированную строку. Успешный ответ подтверждает путь «браузер → Open WebUI → API → runtime → модель», но не доказывает качество модели для документов, кода или инструментов.

Если список моделей пуст, сначала проверяйте `/models`, адрес provider и доступность хоста из контейнера. Если модель видна, но сообщение зависает, проверяйте логи Open WebUI и runtime отдельно: интерфейс может быть исправен, а ошибка находиться в шаблоне чата, контексте, памяти или backend модели.

## Как начать работу с документами и RAG

Open WebUI умеет загружать документы, разбивать их на фрагменты, строить embeddings и добавлять найденный контекст к запросу модели [s7](#src-s7). Это отдельный контур, который нужно тестировать отдельно от обычного чата.

Для первой проверки:

- загрузите один небольшой документ с известным фактом;

- прикрепите его к новому чату;

- задайте вопрос, ответ на который есть только в документе;

- проверьте, использован ли нужный фрагмент;

- повторите вопрос с формулировкой, которой нет в исходном тексте;

- зафиксируйте embedding-модель, chunk size, overlap, top-k и контекст основной модели.

Документация предупреждает, что слишком короткий контекст может обрезать найденные фрагменты, а внешняя vector database должна использовать ту же embedding-модель и размерность, что и запросы Open WebUI [s7](#src-s7). Наличие кнопки загрузки файла не доказывает качество retrieval: проверяйте ответы на своём наборе документов и требуйте видимые источники там, где ошибка критична.

## Как обновлять и откатывать контейнер

Перед обновлением сохраните резервную копию тома данных и не меняйте одновременно версию приложения, runtime модели и настройки provider. Документация рекомендует использовать один и тот же постоянный том и фиксированный `WEBUI_SECRET_KEY`; именно они сохраняют данные и пользовательские сессии при пересоздании контейнера [s2](#src-s2) [s3](#src-s3).

Для безопасной проверки новой версии поднимайте второй контейнер на другом порту и с отдельным томом. Не подключайте production- и pre-release-инстансы к одной базе: документация отдельно предупреждает, что миграции могут сделать обратный запуск старой версии невозможным [s3](#src-s3). После обновления повторите минимальную приёмку: вход администратора, список моделей, контрольный ответ, загрузка документа и восстановление после перезапуска.

Откат — это не только замена тега образа. Он возможен, если сохранены резервная копия данных, прежний секрет, список переменных окружения и точные версии связанных runtime. Без этих артефактов работа старого контейнера не гарантирует восстановление прежнего поведения.

## Какие ограничения учитывать до внедрения

Open WebUI v0.11.4 распространяется по собственной лицензии проекта. Она разрешает использование, изменение и распространение, но добавляет условие о сохранении брендинга Open WebUI, если не выполнено одно из перечисленных исключений: не более 50 конечных пользователей за скользящие 30 дней, письменное разрешение либо enterprise-лицензия [s8](#src-s8). Это не юридическое заключение: перед ребрендингом или распространением читайте полный текст применимой версии лицензии.

Перед доступом из внешней сети также нужны reverse proxy, TLS, резервное копирование тома, управляемая регистрация и обновления. Документация прямо советует прочитать hardening guide до публикации инстанса за пределами локальной машины [s2](#src-s2). Плагины, tools, web search и выполнение кода расширяют возможности, но одновременно меняют границу доверия — включайте их после базовой проверки чата, а не все сразу.

Главный следующий шаг — сначала получить рабочий Ollama runtime с подходящей моделью, затем подключить его к закреплённой версии Open WebUI и подтвердить результат коротким воспроизводимым тестом.

## Источники

1. [Open WebUI — Release v0.11.4](https://github.com/open-webui/open-webui/releases/tag/v0.11.4) — получено 2026-09-22
2. [Open WebUI Docs — Quick Start](https://raw.githubusercontent.com/open-webui/docs/bb28bbfa07b442e0245e0c651a4bbdf164f02110/docs/getting-started/quick-start/index.mdx) — получено 2026-09-22
3. [Open WebUI Docs — Manual Docker](https://raw.githubusercontent.com/open-webui/docs/bb28bbfa07b442e0245e0c651a4bbdf164f02110/docs/getting-started/quick-start/tab-docker/ManualDocker.md) — получено 2026-09-22
4. [Open WebUI Docs — Starting with Ollama](https://raw.githubusercontent.com/open-webui/docs/bb28bbfa07b442e0245e0c651a4bbdf164f02110/docs/getting-started/quick-start/connect-a-provider/starting-with-ollama.mdx) — получено 2026-09-22
5. [Open WebUI Docs — OpenAI-Compatible Providers](https://raw.githubusercontent.com/open-webui/docs/bb28bbfa07b442e0245e0c651a4bbdf164f02110/docs/getting-started/quick-start/connect-a-provider/starting-with-openai-compatible.mdx) — получено 2026-09-22
6. [Open WebUI Docs — Direct Connections](https://raw.githubusercontent.com/open-webui/docs/bb28bbfa07b442e0245e0c651a4bbdf164f02110/docs/features/chat-conversations/direct-connections.mdx) — получено 2026-09-22
7. [Open WebUI Docs — Retrieval Augmented Generation](https://raw.githubusercontent.com/open-webui/docs/bb28bbfa07b442e0245e0c651a4bbdf164f02110/docs/features/chat-conversations/rag/index.md) — получено 2026-09-22
8. [Open WebUI v0.11.4 — LICENSE](https://raw.githubusercontent.com/open-webui/open-webui/v0.11.4/LICENSE) — получено 2026-09-22
