Что такое Open WebUI?
Open WebUI — самостоятельно размещаемый веб-интерфейс для взаимодействия с языковыми моделями. Поддерживает Ollama, OpenAI API и другие бэкенды.
Установка через Docker
curl -fsSL https://get.docker.com | sh
docker run -d \
--name open-webui \
--network=host \
-v open-webui:/app/backend/data \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
--restart always \
ghcr.io/open-webui/open-webui:mainНастройка Nginx reverse proxy
server {
listen 80;
server_name ai.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 300s;
}
}
certbot --nginx -d ai.yourdomain.comОсновные возможности
- Чат с любыми моделями Ollama в красивом интерфейсе
- Загрузка документов (PDF, DOCX) для RAG
- Создание системных промптов
- Многопользовательский режим с ролями
- История диалогов и поиск по ней
- Поддержка изображений (мультимодальные модели)
Первый вход
Откройте http://YOUR_SERVER_IP:8080. Первая зарегистрированная учётная запись автоматически становится администратором.
Частые ошибки при настройке
Интерфейс открывается, но список моделей пуст
Failed to fetch models: Network ErrorЧаще всего причина в неверном OLLAMA_BASE_URL или в том, что Ollama и Open WebUI не видят друг друга по сети. При запуске без --network=host внутри контейнера адрес 127.0.0.1 указывает на сам контейнер, а не на хост с Ollama — нужен host.docker.internal или общая Docker-сеть.
После certbot сайт не открывается по HTTPS
502 Bad Gateway502 означает, что Nginx принял запрос, но не смог получить ответ от бэкенда. Проверьте, что контейнер Open WebUI действительно слушает порт, указанный в proxy_pass, и что он не упал после старта — посмотрите docker logs open-webui.
Загрузка PDF для RAG зависает без ответа
Разбор больших документов на эмбеддинги — тяжёлая по CPU операция. На слабом VDS без GPU обработка объёмного PDF может занимать заметное время; это не зависание, а нехватка вычислительных ресурсов. Следите за использованием CPU через docker stats во время загрузки.
«Sign up is disabled» при попытке зарегистрировать второго пользователя
Sign up is disabledПосле создания первого администратора или при явной переменной окружения, запрещающей открытую регистрацию, форма регистрации отключается по умолчанию из соображений безопасности. Новых пользователей в этом режиме заводит администратор вручную через панель управления, либо нужно временно включить регистрацию в настройках.
Open WebUI и альтернативные интерфейсы
Все три варианта дают чат поверх LLM, но по-разному решают вопрос кастомизации и владения кодом интерфейса.
| Критерий | Open WebUI | LibreChat | Собственный фронтенд |
|---|---|---|---|
| Порог входа | Низкий | Низкий | Высокий |
| Поддержка нескольких бэкендов LLM | Да | Да | Зависит от реализации |
| Кастомизация UI под бренд | Ограниченная | Ограниченная | Полная |
| Мультипользовательский режим из коробки | Да | Да | Пишется вручную |
Когда Open WebUI не подходит
Готовый интерфейс экономит недели разработки, но не решает задачи, для которых нужен полный контроль над версткой и логикой.
- Нужен фирменный интерфейс под бренд компании — Open WebUI меняется через настройки темы, но не заменяет полноценную кастомную фронтенд-разработку
- Продукт встраивается как виджет на существующий сайт — для этого нужен собственный компонент, обращающийся к API напрямую
- Единственная задача — программный доступ к моделям без UI — тогда веб-интерфейс просто лишний слой, достаточно REST API Ollama
- Нужен построже контролируемый мультитенантный биллинг по токенам — для этого потребуется отдельный прокси-слой поверх Open WebUI
- Регистрация пользователей должна проходить через корпоративный SSO без ручных шагов администратора — из коробки такой сценарий требует дополнительной настройки
Проверка результата
Перед тем как открывать доступ команде, стоит пройти путь нового пользователя от входа до первого ответа модели.
- Откройте интерфейс в браузере и убедитесь, что в выпадающем списке появились загруженные в Ollama модели
- Отправьте тестовое сообщение и дождитесь полного ответа без обрыва соединения
- Проверьте, что HTTPS работает без предупреждений браузера о сертификате
- Загрузите тестовый документ и убедитесь, что RAG-поиск находит в нём релевантные фрагменты
- Проверьте вход под вторым аккаунтом, чтобы убедиться, что многопользовательский режим настроен верно
По теме: сама модель под этим интерфейсом — установка Ollama, ответы по документам без UI — RAG на VDS.
Частые вопросы
Что будет, если кто-то посторонний успеет зарегистрироваться на сервере раньше владельца?
Первая зарегистрированная учётная запись в системе автоматически получает права администратора — без проверки личности. Если открыть доступ к серверу до собственной регистрации, случайный посетитель теоретически может опередить владельца и забрать себе админку. Поэтому регистрацию стоит закрыть или ограничить доступ по сети сразу после установки, а не оставлять порт открытым до первого входа.
Можно ли подключить к Open WebUI модели не только от Ollama, но и из других источников?
Да, интерфейс изначально поддерживает несколько бэкендов одновременно: помимо Ollama это OpenAI-совместимый API и другие источники моделей. Это позволяет собрать в одном чате модели из разных мест без отдельных инструментов под каждую — переключение между ними происходит прямо в интерфейсе, а не требует смены адреса или перезапуска контейнера.
Нужна ли мощная видеокарта для самого интерфейса, или она требуется только работе модели?
Сам интерфейс — лёгкая веб-панель, и видеокарта ему как таковая не нужна. Нагрузка на GPU создаётся моделью внутри Ollama и разбором документов на эмбеддинги для поиска по ним: на слабом сервере без GPU именно загрузка объёмных файлов может заметно подвисать, а не сам чат. Это стоит иметь в виду при выборе конфигурации сервера под установку.
Что выбрать, если нужен полностью фирменный дизайн чата, а не готовая тема оформления?
Готовый интерфейс меняется только через настройки темы и не превращается в полноценную кастомную разработку под бренд компании. Если важен контроль над версткой, логикой и стилем вплоть до мелочей, разумнее писать собственный фронтенд, который обращается к API напрямую, а не подстраивать готовое решение под задачи, для которых оно изначально не предназначалось.