# Open WebUI офлайн: подготовка моделей и проверка сети

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

Для Open WebUI без интернета заранее загрузите локальную модель для чата, модель embeddings и зависимости обработки документов; затем включите `OFFLINE_MODE=true` и запретите нежелательные исходящие соединения отдельными сетевыми правилами. После перезапуска проверьте ответ локальной модели и новый документ при отключённом внешнем доступе. Переключатель offline mode сам по себе не является сетевой изоляцией.

**Документация просмотрена 29 сентября 2026 года**, закреплённая ревизия Open WebUI docs — `8e79b0024f03`. Это план самостоятельной проверки, а не испытание установки Modelium. Не используйте реальные клиентские документы до проверки маршрутов данных.

## Что означает Open WebUI «офлайн»?

`OFFLINE_MODE=true` отключает проверки обновлений, автоматические обновления embedding, reranking и Whisper-моделей, а также установку недостающих Python-зависимостей инструмента/функции из frontmatter. Он устанавливает режим Hugging Face Hub без загрузок, но **не закрывает исходящую сеть**: настроенные внешние LLM API, OAuth и веб-поиск останутся доступными, если сеть пропускает соединения [s1](#src-s1)[s2](#src-s2). Поэтому различайте два результата: «чат и поиск по документу работают без интернета» и «внешняя сеть закрыта для всех сервисов». Первый проверяется функциями, второй — сетевыми правилами и наблюдением за трафиком [s1](#src-s1).

Официальная инструкция Open WebUI по offline mode помечена как community contribution, не поддерживаемая командой: сверяйте её с документацией переменных и версией конкретного развёртывания [s1](#src-s1)[s2](#src-s2). Этот гайд готовит **конкретный стек Open WebUI + локальная Ollama + локальные embeddings**. Общий аудит всех сетевых путей и юридические вопросы вынесены в [отдельную проверку офлайн-контура](/zhurnal/proverka-offline-kontura-ii/).

## Что нужно до отключения сети?

Подготовьте уже работающий Open WebUI с доступом администратора, локальный сервер Ollama и выбранную модель, загруженную в Ollama. В Open WebUI проверьте именно локальное соединение Ollama и выберите локальный, а не облачный тег модели. Руководство подключения описывает управление моделями и возможную ошибку адреса при разнесении хоста и контейнера [s1](#src-s1)[s4](#src-s4). Для обычного чата этого достаточно как начального пути, но не как доказательства готовности документов, речи или отсутствия выхода в сеть.

Если нужен поиск по файлам, в **Admin Settings → Documents** выберите локальный embedding-движок и заранее скачайте **ту же** модель, которая будет использоваться при отключении сети. Настройте локальное извлечение текста, а при включённом reranking — и его модель/сервис. Наличие модели генерации ответа в Ollama не создаёт embedding-кеш Open WebUI [s1](#src-s1). Документация рекомендует сначала загрузить короткий текстовый PDF или `.txt` и проверить извлечение и ответ с исходником; отдельный локальный embedding-сервис тоже возможен, но его модель и связь с Open WebUI нужно подготовить заранее [s1](#src-s1)[s5](#src-s5).

Для полностью изолированного компьютера скачайте образ приложения, модели и зависимости на согласованном staging-хосте, перенесите их разрешённым способом и сохраните структуру кеша, включая символические ссылки и их цели. Пути в официальном примере `/app/backend/data/cache/embedding/models/` относятся к типичному Docker-развёртыванию и должны соответствовать вашей конфигурации `DATA_DIR` и volume [s1](#src-s1). **Не считайте размер файла весов минимальной памятью машины:** на старт влияют runtime, модель, обработка документа и контекст. Зафиксируйте собственную конфигурацию, не обещая универсальный объём RAM/VRAM.

## Как включить настройки, не сломав документный поиск?

Когда модели и кеши уже подготовлены, задайте переменную окружения Open WebUI в конфигурации *вашей* службы и перезапустите её [s1](#src-s1):

OFFLINE_MODE=true

По документации `OFFLINE_MODE=true` уже включает `HF_HUB_OFFLINE=1`, отключает проверку версий и принудительно отключает автообновления embedding, reranking и Whisper. Дополнительные строки `HF_HUB_OFFLINE=1` и `*_AUTO_UPDATE=false` можно явно зафиксировать в конфигурации для читаемости, но они не заменяют загрузку кеша и не создают firewall [s1](#src-s1)[s2](#src-s2). Если функция или инструмент ставили зависимости из собственного frontmatter при загрузке, подготовьте эти пакеты в образе заранее: offline mode блокирует такой автоматический `pip install`, даже если его обычная настройка включена [s2](#src-s2). Не отключайте интернет у живого сервиса, не записав сохранённые параметры возврата.

**Контроль после перезапуска:** проверьте доступ к интерфейсу и вход выбранным локально достижимым способом. Внешний OAuth/SSO-провайдер может не работать в изолированном сегменте, и его надо испытать до переключения [s1](#src-s1)[s2](#src-s2). На тестовой модели отправьте безвредный запрос и убедитесь, что ответ пришёл от нужного локального endpoint. Пустой список моделей или ошибка связи требует проверить адрес Ollama из сети контейнера, а не автоматически отключать ограничение исходящей сети [s4](#src-s4).

## Как убедиться, что документы не зависят от интернета?

Создайте **новый** синтетический текстовый файл после перезапуска — например, «В тестовом офисе дверь открывается в 09:15». Загрузите его в тестовую базу Knowledge, дождитесь окончания обработки и прикрепите базу к чату через `#` или к модели через Workspace → Models. Спросите о часе открытия и сопоставьте ответ и ссылку на фрагмент с оригинальным файлом. По документации подключение Knowledge к модели с native tool calling требует доступного инструмента поиска и модели, которая умеет его вызвать; если не хотите зависеть от этого, прикрепите базу непосредственно к беседе и проверьте выбранный режим извлечения [s1](#src-s1)[s5](#src-s5). **Старый уже проиндексированный документ** не подтверждает, что свежая загрузка сейчас работает без сетевых загрузок.

Если появляется `No embedding model is loaded`, проверьте кеш выбранной embedding-модели, volume, права чтения и `RAG_EMBEDDING_MODEL`: на свежей установке Open WebUI может стартовать без ошибки, а документный запрос упасть позднее из-за отсутствия модели. Документация предлагает заранее загрузить модель на подключённом стенде или использовать уже подготовленный локальный Ollama embedder; внешний облачный embedder несовместим с заявленной целью изоляции [s3](#src-s3). Если embedding работает, но ответ не находит текст, проверьте извлечённый текст, статус обработки, доступность коллекции в чате и параметры retrieval; ответы модели проверяйте по исходнику, а не по уверенной формулировке [s5](#src-s5)[s7](#src-s7).

## Как проверить отсутствие внешнего сетевого выхода?

Создайте сетевое правило, которое **запрещает только внешний выход** Open WebUI и связанных контейнеров/сервисов, сохраняя путь браузер → интерфейс и интерфейс → локальная Ollama/embedding/extraction. В документации приведён пример Docker-сети `internal: true`, но это лишь фрагмент: если Ollama находится вне неё, контейнер Open WebUI может потерять и легитимную локальную связь. Согласуйте сетевую топологию до переключения и проверьте её с рабочего клиентского устройства [s1](#src-s1).

На синтетическом запросе и загрузке нового документа сопоставьте результат с firewall/сетевым журналом **каждого** компонента: Open WebUI, Ollama, отдельного embedding/извлечения, прокси, контейнерного хоста и браузера. Если правила действительно запрещают внешние подключения, интерфейс и обе локальные функции продолжают работать, а сетевые логи показывают отказ попыткам выхода — это подтверждает лишь **проверенный сценарий и период**, не абсолютную безопасность будущих интеграций. Внешний провайдер модели может получать промпты и контекст, если он сконфигурирован и сеть разрешает передачу; локальный интерфейс сам по себе не делает обработку локальной [s1](#src-s1)[s6](#src-s6). Запишите время, конфигурацию, тестовые запросы, результаты и события для повторения после обновления.

## Что делать при сбое и как откатить?

- **Чат не отвечает:** убедитесь, что Ollama и её локальный тег были подготовлены до отсечения сети; проверьте адрес сервиса *из контейнера* Open WebUI и локальный маршрут [s1](#src-s1)[s4](#src-s4).

- **Чат работает, новый документ — нет:** проверьте embedding-модель, extraction, reranking и доступность кеша. Ошибка `No embedding model is loaded` особенно характерна для свежей offline-установки [s1](#src-s1)[s3](#src-s3).

- **Поиск не находит тестовую строку:** проверьте завершение обработки файла, режим прикрепления Knowledge и извлечённый текст; после изменения embedding-модели существующие документы требуют переиндексации [s5](#src-s5)[s7](#src-s7).

- **Вход недоступен:** проверьте, не зависит ли авторизация от внешнего IdP; заранее предусмотрите согласованный локальный аварийный доступ, не выключая контроль прав [s1](#src-s1).

- **Нужны новые пакеты или модели:** сначала верните исходные сетевые правила только в контролируемом тестовом окне либо подготовьте обновлённый образ и кеш на staging-хосте. Восстановите предыдущие значения переменных, перезапустите службу и повторите тест чата, документа и сетевого выхода [s1](#src-s1)[s2](#src-s2).

**Критерий готовности:** после холодного перезапуска при запрещённом внешнем доступе локальная модель отвечает, *новый* тестовый документ индексируется и возвращает проверяемый фрагмент, а сетевое правило и журнал подтверждают заданную границу. Эти действия пользователь выполняет на своей инфраструктуре; Modelium не заявляет собственного прогона. **Следующий шаг:** [примените протокол проверки сетевого выхода всего локального ИИ-стека](/zhurnal/proverka-offline-kontura-ii/) и сохраните результаты для сравнения после обновлений.

## Источники

1. [Open WebUI — Run Open WebUI Offline, pinned documentation](https://github.com/open-webui/docs/blob/8e79b0024f0312f610d622126d7c67088ac1c4a7/docs/tutorials/maintenance/offline-mode.mdx) — получено 2026-09-29
2. [Open WebUI — Environment Variable Configuration, pinned documentation](https://github.com/open-webui/docs/blob/8e79b0024f0312f610d622126d7c67088ac1c4a7/docs/reference/env-configuration.mdx) — получено 2026-09-29
3. [Open WebUI — Startup & Docker Failures, pinned documentation](https://github.com/open-webui/docs/blob/8e79b0024f0312f610d622126d7c67088ac1c4a7/docs/troubleshooting/startup.mdx) — получено 2026-09-29
4. [Open WebUI — Connect Ollama, pinned documentation](https://github.com/open-webui/docs/blob/8e79b0024f0312f610d622126d7c67088ac1c4a7/docs/getting-started/quick-start/connect-a-provider/starting-with-ollama.mdx) — получено 2026-09-29
5. [Open WebUI — Knowledge Bases and Document Chat, pinned documentation](https://github.com/open-webui/docs/blob/8e79b0024f0312f610d622126d7c67088ac1c4a7/docs/features/workspace/knowledge.mdx) — получено 2026-09-29
6. [Open WebUI — Chat Data Privacy and Encryption, pinned documentation](https://github.com/open-webui/docs/blob/8e79b0024f0312f610d622126d7c67088ac1c4a7/docs/security/chat-data-privacy-and-encryption.mdx) — получено 2026-09-29
7. [Open WebUI — Troubleshoot Document Retrieval, pinned documentation](https://github.com/open-webui/docs/blob/8e79b0024f0312f610d622126d7c67088ac1c4a7/docs/troubleshooting/rag.mdx) — получено 2026-09-29
