Содержание
- Что такое Open WebUI и зачем он нужен
- Архитектура: как всё устроено под капотом
- Установка Docker и подготовка VPS
- Деплой Open WebUI: compose-файл и запуск
- Подключение Ollama и загрузка моделей
- Настройка RAG и базы знаний
- Продвинутые возможности: ассистенты, Mermaid, сравнение моделей
- Open WebUI vs альтернативы: что выбрать
Что такое Open WebUI и зачем он нужен
Open WebUI — это веб-интерфейс с открытым исходным кодом для работы с языковыми моделями. Он даёт единую точку доступа к Ollama, OpenAI-совместимым API и любым другим LLM-провайдерам, при этом запускается на вашем сервере в Docker-контейнере. Проще говоря: вы получаете интерфейс уровня ChatGPT, но на своём железе, с полным контролем над данными — никакие промпты и документы не уходят к сторонним сервисам. Проект собрал 50 000+ звёзд на GitHub и используется тысячами компаний для внутренних AI-ассистентов, RAG-систем и кастомных агентов. В этой инструкции мы разберём полный цикл: от покупки VPS и установки Docker до готового интерфейса с Ollama, RAG-базой знаний и кастомными ассистентами.
Архитектура Open WebUI — ключевые компоненты и связи
Архитектура: как всё устроено под капотом
Прежде чем переходить к установке, стоит понять, из каких частей состоит Open WebUI и как они взаимодействуют. Это избавит от ошибок на этапе настройки и поможет диагностировать проблемы.
На верхнем уровне находятся пользователи — они заходят в веб-интерфейс через браузер или с мобильного устройства. Open WebUI — это Python-приложение на FastAPI, которое работает внутри Docker-контейнера. Оно отвечает и за рендеринг фронтенда, и за маршрутизацию запросов к LLM, и за хранение истории диалогов.
Сразу три слоя движков LLM подключаются через единый API-слой. Ollama — для локальных моделей (Llama, Qwen, Mistral, DeepSeek и другие). Любой OpenAI-совместимый эндпоинт — для облачных моделей через API-ключи. И агрегаторы вроде BotHub, которые открывают доступ к 300+ моделям без своей инфраструктуры.
Отдельный слой — хранение данных. Open WebUI использует файловую систему Docker volume для чатов и конфигурации, а для RAG — векторные базы данных Chroma или Qdrant. Все документы (PDF, DOCX, TXT), которые вы загружаете, индексируются в векторное представление и хранятся локально. Никакие файлы не покидают ваш сервер.
uv или pip. Но Docker — рекомендованный способ для production, потому что изоляция, простой апдейт версий и предсказуемое окружение.
Установка Docker и подготовка VPS
В статье предполагается, что у вас есть VPS с Ubuntu 22.04 LTS и root-доступом. Минимальные требования для связки Ollama + Open WebUI — 2 vCPU и 4 ГБ RAM. Если планируете запускать модели 7B+ параметров локально через Ollama, нужно от 8 ГБ RAM и GPU с 6+ ГБ видеопамяти.
Проверьте версию Ubuntu и обновите пакеты:
lsb_release -a
sudo apt update && sudo apt upgrade -y
Установка Docker — стандартная процедура через официальный скрипт:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
После этого — выйти из сессии и зайти снова, чтобы группа docker применилась. Проверьте:
docker --version
docker compose version
Если docker compose не установлен — установите отдельно:
sudo apt install docker-compose-plugin -y
Теперь создайте директорию для проекта:
mkdir -p ~/open-webui && cd ~/open-webui
Дополнительно проверьте, что порты 3000 и 11434 не заняты другими службами:
sudo ss -tulpn | grep -E ':3000|:11434'
ports: в docker-compose.yml.
Деплой Open WebUI: compose-файл и запуск
Open WebUI официально поддерживает три варианта установки: Docker (рекомендованный), через uv (аналог pip, но в 10-100x быстрее), и через классический pip. Мы рассмотрим Docker — он даёт изоляцию, простой апдейт и одинаковое поведение на любом сервере.
Создайте docker-compose.yml в директории проекта. Нам понадобятся два сервиса: сам Open WebUI и Ollama. Вот минимальный рабочий compose-файл:
version: '3.8'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
volumes:
- open-webui-data:/app/backend/data
restart: unless-stopped
depends_on:
- ollama
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama-data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
volumes:
open-webui-data:
ollama-data:
Обратите внимание на секцию deploy.resources в сервисе Ollama — она пробрасывает GPU NVIDIA в контейнер. Если GPU нет, эту секцию можно удалить.
Запускаем:
cd ~/open-webui
docker compose up -d
Проверьте логи:
docker compose logs -f open-webui
Если всё прошло успешно — через 15-30 секунд в логах появится сообщение о старте сервера. Откройте в браузере http://<IP-вашего-VPS>:3000. Первым делом система предложит зарегистрировать аккаунт администратора.
Официальная документация Open WebUI рекомендует для production включать HTTPS через reverse proxy — nginx или Caddy с Let's Encrypt. Это обязательно, если вы открываете доступ в интернет: без HTTPS пароли и API-ключи передаются в открытом виде.
Подключение Ollama и загрузка моделей
После запуска обоих контейнеров Open WebUI должен автоматически обнаружить Ollama — по умолчанию он ищет его на http://host.docker.internal:11434. Если автоопределение не сработало, в админ-панели перейдите в раздел «Подключения» и вручную добавьте: http://ollama:11434 (имя сервиса из docker-compose работает как DNS-имя в общей Docker-сети).
Теперь нужно загрузить хотя бы одну модель. Самый лёгкий способ — прямо из интерфейса Open WebUI. В админ-панели есть поле «Загрузить модель» — достаточно ввести название модели из каталога Ollama (например, llama3.1:8b, qwen2.5:7b или mistral:7b).
Альтернатива — командная строка:
docker exec -it ollama ollama pull llama3.1:8b
После загрузки модели она появится в списке доступных в интерфейсе Open WebUI. Можно начинать чат. Размер загружаемых моделей зависит от доступной памяти:
| Модель | Параметры | RAM (min) | GPU VRAM | Использование |
|---|---|---|---|---|
| Llama 3.1 8B | 8 млрд | 8 ГБ | 6 ГБ | Общий чат, код |
| Qwen 2.5 7B | 7 млрд | 6 ГБ | 6 ГБ | Русский язык, RAG |
| Mistral 7B | 7 млрд | 6 ГБ | 6 ГБ | Инструкции, точность |
| DeepSeek Coder 6.7B | 6.7 млрд | 6 ГБ | 5 ГБ | Генерация кода |
| Llama 3.1 70B | 70 млрд | 48 ГБ | 24 ГБ | Тяжёлые задачи |
Для типовых задач на русском языке хорошо зарекомендовала себя Qwen 2.5 7B — она адекватно понимает русские запросы «из коробки» и требует разумных ресурсов.
Если нужно подключать внешние API (OpenAI, Anthropic, BotHub, Groq, OpenRouter) — в разделе «Подключения» админ-панели добавьте новый эндпоинт. Укажите URL API, ключ доступа и префикс модели (если нужно фильтровать список). После этого в выпадающем списке моделей появятся все доступные через этот эндпоинт.
Настройка RAG и базы знаний
RAG (Retrieval-Augmented Generation) — ключевая функция Open WebUI для бизнеса. Она позволяет модели отвечать на вопросы на основе загруженных документов, а не только на своих обучающих данных. Отличие от обычного чата: вы не передаёте модельке весь документ целиком — система сама находит релевантные фрагменты и подставляет их в контекст.
В Open WebUI RAG работает «из коробки» после установки — для векторизации используется встроенный эмбеддер (sentence-transformers). Разберём настройку по шагам.
Шаг 1: создание базы знаний
Перейдите в «Рабочее пространство» → «Знания» (или «Workspace» → «Knowledge» в английской версии). Нажмите «+» чтобы создать новую базу. Название — что-то вроде «Документация продукта» или «База знаний техподдержки».
Шаг 2: загрузка документов
Поддерживаются форматы PDF, DOCX, TXT, а также веб-страницы. Можно загрузить до 100 файлов в одну базу знаний. Open WebUI автоматически разобьёт их на чанки, создаст эмбеддинги и сохранит во встроенную векторную БД.
Шаг 3: использование
При создании нового чата включите нужную базу знаний переключателем. Модель будет отвечать исключительно на основе загруженных документов. Если ответа в базе нет — скажет об этом честно, а не начнёт «галлюцинировать».
Как показывает практика, встроенный RAG Open WebUI справляется с большинством бизнес-задач. Но если у вас миллионы документов — стоит подумать об интеграции с внешней векторной БД (Qdrant, Weaviate). Open WebUI позволяет переключить бэкенд через переменные окружения.
Продвинутые возможности: ассистенты, Mermaid, сравнение моделей
Open WebUI — это не просто чат с моделькой. За время развития проекта (с 2023 года) он превратился в платформу, которая перекрывает 90% потребностей современного AI-воркспейса. Вот что часто упускают из виду.
Кастомные ассистенты — это аналог custom GPT из ChatGPT. Вы создаёте ассистента с уникальным системным промптом, подключаете базу знаний, набор инструментов (включая MCP-серверы) и даже кастомные модели. Например: ассистент «Аналитик поддержки» — ему задаёте промпт «ты анализируешь тикеты поддержки и выдаёшь рекомендации», прикрепляете базу знаний с документацией продукта и подключаете MCP-инструмент для создания тикетов в Jira. В каталоге community-ассистентов уже сотни готовых конфигураций.
Сплит-чат для сравнения моделей — кликаете «+» рядом с первой моделью, выбираете ещё пару — и отравляете один промпт сразу в 2-3-5 моделей. Результаты отображаются рядом на одном экране. Удобно, когда подбираете лучшую модель для конкретной задачи.
Запуск кода прямо в чате — Open WebUI использует Pyodide (WebAssembly-версия Python) для выполнения кода на стороне браузера. Модель может сгенерировать Python-скрипт, вы нажимаете «Запустить» — и видите результат без копирования в IDE. Поддерживаются также HTML+CSS+JS и SVG. Полезно для прототипирования визуализаций данных.
Mermaid, Vega и LaTeX — Open WebUI автоматически рендерит Mermaid-диаграммы, если модель возвращает код в формате ```mermaid. То же самое с научными формулами LaTeX и интерактивными графиками Vega. Это превращает интерфейс в инструмент для аналитиков и исследователей.
Временные чаты и контекст из прошлых диалогов — можно включить «вечный временный чат» (история не сохраняется) или, наоборот, прикрепить к новому диалогу один-два старых чата в качестве контекста. Например, вы обсуждали архитектуру RAG в прошлом диалоге, а теперь пишете код — Open WebUI помнит контекст. Очень удобно для длинных проектов.
FastAPI
токен + права
ChromaDB
HTML/MD
LLM
контекст + RAG
MCP-интеграция — начиная с версии 0.4.0, Open WebUI поддерживает Model Context Protocol. Это значит, что ассистенты могут получать реальные данные из внешних систем: CRM, 1С, Jira, Slack. Мы уже писали о MCP-серверах — в Open WebUI они подключаются через админ-панель за пару кликов. Ассистент может прочитать письмо из почты, создать задачу в трекере или запросить отчёт из базы данных.
Open WebUI vs альтернативы: что выбрать
Рынок self-hosted UI для LLM довольно плотный. Помимо Open WebUI есть AnythingLLM, LibreChat, Cherry Studio, LM Studio и ещё с десяток проектов. Выбор между ними — не вопрос «что лучше», а вопрос задачи.
AnythingLLM ориентирован на RAG. Если ваша главная потребность — загрузить 500 документов и задавать по ним вопросы, AnythingLLM сделает это проще: у него сразу продуманное рабочее пространство с коллекциями документов, встроенный парсер и бесшовная интеграция с Ollama. Open WebUI в этом сценарии потребует ручной настройки векторной БД и немного больше телодвижений. Но AnythingLLM слабее как чат-интерфейс: нет управления моделями, нет ассистентов, нет MCP.
LibreChat — это Full-Featured чат с акцентом на многопользовательский режим, историю и плагины. У него красивый интерфейс и поддержка множества провайдеров. Но RAG в LibreChat реализован слабо — это скорее надстройка, чем ядро продукта.
Open WebUI занимает золотую середину: сильный RAG (достаточный для 95% бизнес-задач), удобный чат, кастомные ассистенты, MCP, мультимодальность (загрузка и анализ изображений). Он выигрывает в сценариях, где нужно совместить чат с документацией, API внешних моделей и управление доступом для команды из 5-50 человек.
| Критерий | Open WebUI | AnythingLLM | LibreChat |
|---|---|---|---|
| Установка | 1 docker-compose | 1 docker-compose | docker-compose + MongoDB |
| RAG «из коробки» | Встроенная ChromaDB | Встроенный парсер + векторная БД | Только через плагины |
| Кастомные ассистенты | Есть, с промптами и инструментами | Нет | Есть (упрощённые) |
| MCP-интеграция | Нативная, версия 0.4.0+ | Нет | Через плагины |
| Параллельное сравнение моделей | Есть (сплит-чат) | Нет | Есть |
| Многопользовательский режим | Есть, с разделением ролей | Ограниченный | Полноценный |
По свежим обзорам десяти локальных UI для LLM, Open WebUI стабильно входит в топ-3 по совокупности функций. Для команды, которая хочет один интерфейс на все AI-задачи — чат, RAG, ассистенты, интеграции — это оптимальный выбор.
Коротко
Open WebUI — самый быстрый способ получить self-hosted ChatGPT на своём сервере. Он ставится за 10 минут через docker-compose, поддерживает все популярные LLM-движки, включает полноценный RAG и (что редкость) умеет создавать кастомных ассистентов с инструментами. Для небольших команд и среднего бизнеса это «золотой стандарт»: не нужно выбирать между простотой чата и мощью RAG.
Начать можно прямо сейчас — хватит VPS за $10-20/мес и одного docker-compose файла. Модель Qwen 2.5 7B отлично справляется с русским языком, а для сложных запросов можно докинуть API Claude или ChatGPT. Всё управление — через веб-интерфейс, без доступа к командной строке для пользователей.
Если нужно не просто «поставить Open WebUI», а построить на нём инфраструктуру для бизнеса — с разграничением доступа, интеграцией с 1С и CRM, кастомными ассистентами под ваши процессы — напишите нам в Telegram. Покажем демо и настроим под ключ за неделю.