Open WebUI
Self-hosted
ChatGPT
Ollama
Tutorial

Open WebUI: Свой ChatGPT за 10 минут — установка и настройка

Подробное руководство по развёртыванию Open WebUI — self-hosted альтернативы ChatGPT. Установка через Docker, подключение Ollama, OpenAI и Claude API, настройка RAG и управление пользователями.

18 января 2026 г.
Команда QZX Studio
10 min read

Open WebUI — это open-source веб-интерфейс для работы с языковыми моделями, который выглядит и работает как ChatGPT, но размещается на вашем сервере. Вы полностью контролируете данные, можете подключить любые модели — от локальных через Ollama до облачных OpenAI и Claude — и настроить систему под нужды своей команды. В этом руководстве мы развернём Open WebUI с нуля и настроим его для production-использования.

Что такое Open WebUI

Open WebUI (ранее известный как Ollama WebUI) — это self-hosted платформа для взаимодействия с LLM, которая предоставляет:

  • Чат-интерфейс — знакомый UX в стиле ChatGPT
  • Поддержка множества моделей — Ollama, OpenAI, Anthropic Claude, любые OpenAI-совместимые API
  • RAG — загрузка документов и использование их как контекста для модели
  • Управление пользователями — мультитенантная система с ролями и правами
  • Промпт-библиотека — сохранение и шаринг системных промптов
  • Генерация изображений — интеграция с DALL-E и Stable Diffusion
  • Голосовой ввод/вывод — Speech-to-Text и Text-to-Speech
  • API — полноценный API для интеграции с другими системами

Зачем нужен self-hosted ChatGPT

Есть несколько весомых причин развернуть собственный интерфейс вместо использования chat.openai.com:

  1. Приватность данных — ваши данные не покидают вашу инфраструктуру (при использовании локальных моделей)
  2. Контроль затрат — единая точка управления API-ключами и лимитами
  3. Кастомизация — системные промпты, RAG, кастомные модели
  4. Командная работа — общий доступ для команды с разделением ролей
  5. Экономия — одна подписка на API вместо ChatGPT Plus для каждого сотрудника
  6. Локальные модели — возможность работать полностью офлайн

Установка через Docker

Предварительные требования

  • Docker и Docker Compose установлены на сервере
  • Минимум 4 ГБ RAM (8+ ГБ рекомендуется при использовании локальных моделей)
  • 10 ГБ свободного места на диске

Вариант 1: Только Open WebUI (с облачными API)

Если вы планируете использовать только облачные модели (OpenAI, Claude), установка максимально проста:

docker run -d \
  --name open-webui \
  -p 3000:8080 \
  -v open-webui:/app/backend/data \
  --restart always \
  ghcr.io/open-webui/open-webui:main

Откройте http://localhost:3000 — готово. Первый зарегистрированный пользователь автоматически становится администратором.

Вариант 2: Open WebUI + Ollama (рекомендуемый)

Для полного стека с локальными моделями создайте docker-compose.yml:

version: "3.8"

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    volumes:
      - ollama_data:/root/.ollama
    ports:
      - "11434:11434"
    # Для GPU (NVIDIA):
    # deploy:
    #   resources:
    #     reservations:
    #       devices:
    #         - driver: nvidia
    #           count: all
    #           capabilities: [gpu]
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - open-webui_data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    depends_on:
      - ollama
    restart: unless-stopped

volumes:
  ollama_data:
  open-webui_data:

Запуск:

docker compose up -d

Вариант 3: С поддержкой GPU (NVIDIA)

Для ускорения inference на GPU раскомментируйте секцию deploy в конфигурации Ollama выше и убедитесь, что установлен NVIDIA Container Toolkit:

# Установка NVIDIA Container Toolkit (Ubuntu)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo systemctl restart docker

Подключение локальных моделей через Ollama

Загрузка моделей

После запуска стека загрузите модели через CLI Ollama:

# Компактная и быстрая модель для повседневных задач
docker exec ollama ollama pull llama3.2:3b

# Мощная модель для сложных задач
docker exec ollama ollama pull llama3.1:70b

# Модель для программирования
docker exec ollama ollama pull qwen2.5-coder:14b

# DeepSeek R1 для reasoning-задач
docker exec ollama ollama pull deepseek-r1:14b

# Компактная модель для русского языка
docker exec ollama ollama pull mistral:7b

Рекомендации по выбору моделей

ЗадачаРекомендуемая модельРазмерRAM
Повседневный чатLlama 3.2 3B2 ГБ4 ГБ
Рабочие задачиLlama 3.1 8B4.7 ГБ8 ГБ
ПрограммированиеQwen 2.5 Coder 14B9 ГБ16 ГБ
Сложный анализLlama 3.1 70B40 ГБ48 ГБ
Математика/логикаDeepSeek R1 32B20 ГБ32 ГБ

Создание кастомной модели

Ollama позволяет создавать модели с предустановленными системными промптами:

# Создаём Modelfile
cat > Modelfile << 'EOF'
FROM llama3.1:8b

SYSTEM """
Ты — AI-ассистент компании QZX Studio. Ты помогаешь команде с разработкой,
код-ревью и техническими вопросами. Отвечай на русском языке.
Будь конкретен и давай практические советы с примерами кода.
"""

PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 8192
EOF

# Создаём модель
docker exec -i ollama ollama create qzx-assistant -f - < Modelfile

После этого модель qzx-assistant появится в Open WebUI.

Подключение облачных API

OpenAI (GPT-4o, o1)

  1. Откройте Open WebUI и войдите как администратор
  2. Перейдите в Admin Panel (иконка шестерёнки) -> Settings -> Connections
  3. В секции OpenAI API введите:
    • API URL: https://api.openai.com/v1
    • API Key: ваш ключ OpenAI

Или через переменные окружения в docker-compose.yml:

environment:
  - OPENAI_API_BASE_URL=https://api.openai.com/v1
  - OPENAI_API_KEY=sk-your-key-here

Anthropic Claude

Claude подключается через OpenAI-совместимый прокси или напрямую. Самый простой способ — через LiteLLM прокси:

# Добавляем в docker-compose.yml
services:
  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    container_name: litellm
    ports:
      - "4000:4000"
    environment:
      - ANTHROPIC_API_KEY=sk-ant-your-key-here
    command: >
      --model anthropic/claude-3-5-sonnet-latest
      --model anthropic/claude-3-haiku-20240307
    restart: unless-stopped

Затем в настройках Open WebUI добавьте:

  • API URL: http://litellm:4000/v1
  • API Key: любой непустой текст (LiteLLM не требует ключ при локальном доступе)

Альтернативно, Open WebUI поддерживает прямое подключение к Anthropic через раздел Connections -> Add Connection, где можно выбрать тип подключения Anthropic.

DeepSeek API

DeepSeek использует OpenAI-совместимый формат:

  • API URL: https://api.deepseek.com/v1
  • API Key: ваш ключ DeepSeek

Настройка RAG (Retrieval-Augmented Generation)

RAG — одна из самых мощных функций Open WebUI. Она позволяет загружать документы и использовать их как контекст для ответов модели.

Загрузка документов

  1. В боковой панели нажмите Workspace -> Knowledge
  2. Создайте новую коллекцию (например, «Документация проекта»)
  3. Загрузите файлы — поддерживаются PDF, DOCX, TXT, MD, CSV и другие форматы
  4. Open WebUI автоматически разобьёт документы на чанки и создаст эмбеддинги

Настройка параметров RAG

В Admin Panel -> Settings -> Documents можно настроить:

Chunk Size: 1000          # Размер чанков (символы)
Chunk Overlap: 200        # Перекрытие между чанками
Top K: 5                  # Количество релевантных чанков
Relevance Threshold: 0.3  # Минимальная релевантность

Рекомендации по настройке:

  • Для технической документации: chunk size 500-800, overlap 100-150
  • Для длинных текстов: chunk size 1000-1500, overlap 200-300
  • Для FAQ/короткие документы: chunk size 300-500, overlap 50-100

Использование RAG в чате

После загрузки документов вы можете:

  1. Через символ # — введите # в поле ввода и выберите коллекцию документов
  2. Через настройки чата — нажмите «+» рядом с полем ввода и прикрепите файл напрямую
  3. Автоматически — настройте модель на использование конкретной коллекции по умолчанию

Выбор Embedding-модели

Для RAG нужна модель для создания эмбеддингов. Варианты:

Локальная (через Ollama):

docker exec ollama ollama pull nomic-embed-text

В настройках Open WebUI выберите nomic-embed-text как Embedding Model.

Облачная (OpenAI):

В настройках выберите text-embedding-3-small или text-embedding-3-large.

Управление пользователями

Роли и права

Open WebUI поддерживает три роли:

РольЧатЗагрузка документовНастройкиУправление пользователями
UserДаНетНетНет
AdminДаДаДаДа
PendingНетНетНетНет

Настройка регистрации

В Admin Panel -> Settings -> General:

  • Default User Role — роль по умолчанию для новых пользователей (рекомендуем pending для контроля доступа)
  • Enable Signup — разрешить/запретить самостоятельную регистрацию

Ограничение моделей для пользователей

Администратор может ограничить, какие модели доступны обычным пользователям. Это полезно для контроля расходов:

  1. Admin Panel -> Settings -> Models
  2. Для каждой модели укажите, кому она доступна
  3. Дорогие модели (GPT-4o, Claude 3.5 Sonnet) можно ограничить только для определённых пользователей

Кастомизация интерфейса

Брендирование

Open WebUI позволяет настроить интерфейс под ваш бренд:

В Admin Panel -> Settings -> General:

  • Name — название вашего инстанса (например, «QZX AI Assistant»)
  • Description — описание для страницы входа

Системные промпты для моделей

Создайте набор промптов для разных задач:

  1. Перейдите в Workspace -> Prompts
  2. Создайте промпт, например:
Название: Code Review
Команда: /review

Промпт:
Проведи code review предоставленного кода. Обрати внимание на:
1. Потенциальные баги и edge cases
2. Производительность
3. Читаемость и соответствие best practices
4. Безопасность
Дай конкретные предложения по улучшению с примерами кода.

Теперь любой пользователь может ввести /review в чате и получить предзаполненный промпт.

Пайплайны и функции

Open WebUI поддерживает кастомные Python-функции, которые расширяют возможности моделей:

# Пример функции для автоматического перевода
class Pipeline:
    def __init__(self):
        self.name = "Auto Translate"

    async def pipe(self, body: dict) -> dict:
        # Добавляем инструкцию перевода к каждому запросу
        messages = body.get("messages", [])
        if messages:
            last_message = messages[-1]
            if last_message["role"] == "user":
                last_message["content"] += (
                    "\n\n[Ответь на русском языке]"
                )
        return body

Бэкапы и обслуживание

Бэкап данных

Все данные Open WebUI хранятся в Docker volume. Для бэкапа:

# Бэкап Open WebUI
docker run --rm \
  -v open-webui_data:/data \
  -v $(pwd)/backups:/backup \
  alpine tar czf /backup/open-webui-backup-$(date +%Y%m%d).tar.gz /data

# Бэкап моделей Ollama
docker run --rm \
  -v ollama_data:/data \
  -v $(pwd)/backups:/backup \
  alpine tar czf /backup/ollama-backup-$(date +%Y%m%d).tar.gz /data

Обновление

# Обновление Open WebUI
docker compose pull
docker compose up -d

# Обновление конкретной модели Ollama
docker exec ollama ollama pull llama3.1:8b

Мониторинг

Полезные команды для мониторинга:

# Логи Open WebUI
docker logs -f open-webui

# Статус Ollama
docker exec ollama ollama list

# Использование ресурсов
docker stats open-webui ollama

Сравнение с ChatGPT Plus

КритерийOpen WebUI + OllamaChatGPT Plus
СтоимостьБесплатно + хостинг$20/мес за пользователя
Приватность данныхПолная (локально)Данные у OpenAI
Выбор моделейЛюбые (Ollama, OpenAI, Claude)Только GPT
RAGВстроенныйОграниченный (GPTs)
КастомизацияПолнаяМинимальная
МультипользовательностьДа, с ролямиИндивидуальные аккаунты
Офлайн-работаДа (с локальными моделями)Нет
Качество GPT-4oЧерез API — идентичноеНативное
НастройкаТребует технических знанийНе требует
ПоддержкаСообществоКоммерческая

Когда Open WebUI лучше

  • Команда из 5+ человек — экономия на подписках окупает затраты на настройку
  • Работа с конфиденциальными данными — полный контроль над данными
  • Нужны разные модели — возможность переключаться между провайдерами
  • Специфичные требования — RAG, кастомные промпты, интеграции

Когда ChatGPT Plus лучше

  • Индивидуальное использование — проще и быстрее начать
  • Нет технических ресурсов для настройки серверов
  • Нужны последние фичи OpenAI сразу после релиза
  • Достаточно возможностей стандартного ChatGPT

Советы по production-развёртыванию

1. Используйте reverse proxy

Разместите Open WebUI за Nginx или Caddy для HTTPS:

server {
    listen 443 ssl http2;
    server_name ai.yourdomain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

2. Настройте автоматические бэкапы

Добавьте cron-задачу для ежедневного бэкапа:

# crontab -e
0 3 * * * /path/to/backup-script.sh

3. Ограничьте сетевой доступ

Ollama не должен быть доступен из интернета:

# docker-compose.yml
services:
  ollama:
    ports: []  # Убираем внешний порт
    # Ollama доступен только внутри Docker network

4. Мониторинг расходов на API

Если вы используете облачные модели, настройте лимиты расходов в панели провайдера (OpenAI, Anthropic) и отслеживайте usage через логи Open WebUI.

Заключение

Open WebUI — это зрелый и функциональный инструмент, который превращает любой сервер в полноценную AI-платформу. Установка занимает считанные минуты, а возможности кастомизации позволяют адаптировать систему под любые бизнес-потребности.

Для команды из 5-10 человек это однозначно выгоднее, чем индивидуальные подписки на ChatGPT Plus. А возможность подключить локальные модели через Ollama делает решение идеальным для компаний с жёсткими требованиями к безопасности данных.

Если вам нужна помощь с развёртыванием Open WebUI, настройкой RAG-пайплайнов или интеграцией AI в корпоративную инфраструктуру — команда QZX Studio имеет опыт внедрения self-hosted AI-решений и готова помочь.

Поделиться статьёй:

Нужна помощь с проектом?

Наша команда экспертов готова помочь вашему бизнесу. Оставьте заявку, и мы предложим оптимальное решение.