Если ты хочешь развернуть современный веб-интерфейс для локальных языковых моделей на своей Ubuntu-машине, то Open WebUI — идеальный выбор. Это open-source проект с огромным сообществом, который превращает твою локальную инфраструктуру в полноценную платформу для работы с AI. Давай разберем, как выполнить установку Open WebUI на Ubuntu правильно и без головной боли.
Подготовка системы: что нужно сделать до установки
Перед тем как начать пошаговую установку Open WebUI на Ubuntu, убедись, что твоя система готова. Ниже — новое развёртывание в двух контейнерах: Open WebUI и Ollama. UI сначала доступен только через loopback/SSH-туннель, а API Ollama не публикуется на хосте. Для production отдельно нужны HTTPS, управление доступом, бэкап и проверенный план обновления. Если нужен отдельный сервер, можно сравнить ресурсы Timeweb Cloud (партнёрская ссылка) с требованиями модели: память и GPU подбирают по реальной нагрузке, а не только по интерфейсу.
1. Обновление системы и установка зависимостей
Первым делом обновим пакеты и установим необходимые утилиты:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git gnupg lsb-release ca-certificates
2. Установка Docker и Docker Compose
В этом руководстве используется Docker; у проекта есть и другие способы установки. Установи Docker Engine и Compose plugin из официального apt-репозитория для Ubuntu, предварительно сверив инструкции по конфликтующим пакетам. Проверка:
sudo docker version
sudo docker compose version
Пошаговая установка Open WebUI на Ubuntu
Теперь перейдем к основной части — непосредственно установке Open WebUI. Я покажу два основных способа: через Docker Compose (рекомендуемый) и через Docker run.
Способ 1: Установка через Docker Compose (Рекомендуется)
Compose хранит конфигурацию в одном файле. Пример рассчитан на новый каталог и новые volumes; существующий проект сначала сохрани. Выбери конкретные совместимые версии образов на страницах релизов Open WebUI и Ollama и зафиксируй их тегами или digest. Значения ниже намеренно не подставляют плавающий main автоматически.
mkdir -p ~/open-webui
cd ~/open-webui
# Только для нового проекта; не перезаписывай существующие файлы.
# Создай .env с правами 600 через редактор и задай:
# OPEN_WEBUI_IMAGE=ghcr.io/open-webui/open-webui:выбранная-версия
# OLLAMA_IMAGE=ollama/ollama:выбранная-версия
# WEBUI_SECRET_KEY=уникальный-секрет-из-openssl
# Значения после = замени действительными; не коммить .env.
openssl rand -hex 32
# Сохрани результат как WEBUI_SECRET_KEY, не меняй его при каждом запуске.
cat > docker-compose.yml << 'EOF'
services:
ollama:
image: ${OLLAMA_IMAGE:?Set OLLAMA_IMAGE in .env}
volumes:
- ollama-data:/root/.ollama
restart: unless-stopped
open-webui:
image: ${OPEN_WEBUI_IMAGE:?Set OPEN_WEBUI_IMAGE in .env}
ports:
- "127.0.0.1:3000:8080"
volumes:
- open-webui-data:/app/backend/data
environment:
OLLAMA_BASE_URL: http://ollama:11434
WEBUI_AUTH: "true"
WEBUI_SECRET_KEY: ${WEBUI_SECRET_KEY:?Set WEBUI_SECRET_KEY in .env}
depends_on:
- ollama
restart: unless-stopped
volumes:
open-webui-data:
ollama-data:
EOF
Теперь запустим наш контейнер:
sudo docker compose config --quiet
# Продолжай только если config завершился успешно
sudo docker compose up -d
sudo docker compose ps
sudo docker compose logs --tail=100 open-webui ollama
Способ 2: Быстрая установка через Docker run
Альтернатива Compose для отдельного теста — bundled-образ с Ollama. Не запускай оба варианта одновременно. Используй отдельные volumes; выбери конкретный тег варианта с суффиксом -ollama и свой секрет. Эта команда не читает .env автоматически.
# Подставь конкретный release-tag варианта с Ollama и собственный секрет.
# Секрет безопаснее передать из защищённого env-файла.
sudo docker run -d --name open-webui-test \
-p 127.0.0.1:3001:8080 \
-v open-webui-test-data:/app/backend/data \
-v ollama-test-data:/root/.ollama \
--env-file ./webui-test.env \
--restart unless-stopped \
ghcr.io/open-webui/open-webui:REPLACE_WITH_VERSION-ollama
Настройка и интеграция с Ollama
В основном Compose-примере Ollama уже запущен отдельным сервисом. Устанавливать второй экземпляр через systemd не нужно. Для альтернативного docker run заранее создай webui-test.env с правами 600 и строками WEBUI_AUTH=true и WEBUI_SECRET_KEY=твой_уникальный_секрет; доступ будет на localhost:3001. Далее команды относятся к основному Compose-проекту.
Установка Ollama на Ubuntu
sudo docker compose exec ollama ollama pull llama3.1:8b
sudo docker compose exec ollama ollama list
Конфигурация для работы вместе
Open WebUI обращается к Ollama по имени сервиса внутри сети Compose. Проверь соответствующий фрагмент уже созданного файла, не заменяй им весь файл:
environment:
OLLAMA_BASE_URL: http://ollama:11434
WEBUI_AUTH: "true"
WEBUI_SECRET_KEY: ${WEBUI_SECRET_KEY:?Set WEBUI_SECRET_KEY in .env}
Проверка работы и доступ к интерфейсу
После успешной установки Open WebUI на Ubuntu, открой браузер и перейди по адресу:
http://localhost:3000
Для VPS сначала на своём компьютере выполни ssh -N -L 3000:127.0.0.1:3000 user@server, затем открой localhost:3000. Замени user/server и при необходимости укажи свой SSH-порт.
На новом volume создай первый административный аккаунт через локальный доступ или SSH-туннель. После входа проверь соединение Ollama в настройках администратора и отключи свободную регистрацию, если она не нужна. Не публикуй экземпляр до создания администратора и проверки входа.
Расширенная конфигурация и оптимизация
Настройка аутентификации
Аутентификация уже включена. Пароль администратора задай через интерфейс, а WEBUI_SECRET_KEY сохрани вместе с бэкапом данных. Часть настроек сохраняется в базе: изменение env не всегда переопределяет их; проверь фактические значения в Admin UI. Не удаляй volume для сброса настроек.
environment:
WEBUI_AUTH: "true"
WEBUI_SECRET_KEY: ${WEBUI_SECRET_KEY:?Set WEBUI_SECRET_KEY in .env}
Использование GPU
В этой архитектуре генерация выполняется в Ollama, поэтому GPU выдаётся сервису ollama. Сначала установи совместимый NVIDIA-драйвер и NVIDIA Container Toolkit, проверь nvidia-smi и доступ GPU из тестового контейнера. Настройка runtime и перезапуск Docker могут затронуть другие контейнеры: планируй окно обслуживания.
Добавь в сервис ollama следующий блок, сохраняя существующие image и volumes; это YAML, не команды shell:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
Выполни sudo docker compose config --quiet, затем sudo docker compose up -d. Во время запроса проверь sudo docker compose exec ollama ollama ps и использование GPU. Наличие GPU не гарантирует, что выбранная модель помещается в VRAM.
Часто задаваемые вопросы (FAQ)
Open WebUI не видит Ollama. Что делать?
Проверь sudo docker compose ps и логи обоих сервисов, затем sudo docker compose exec ollama ollama list. В настройках соединения Open WebUI должен быть адрес http://ollama:11434. Контейнеры должны находиться в одной сети; публиковать 11434 на хосте не требуется.
Как обновить Open WebUI до последней версии?
Сначала прочитай release notes, сохрани согласованный бэкап /app/backend/data, секрет и выбранные версии, проверь восстановление. Измени зафиксированный тег в .env, выполни sudo docker compose pull и sudo docker compose up -d, затем проверь вход, чаты и модели. Для docker run образ нужно явно скачать через docker pull; повторный run сам по себе не гарантирует обновление. Откат может требовать восстановления базы, а не только старого образа.
Где хранятся данные и модели?
В этом Compose модели хранятся в ollama-data по пути /root/.ollama внутри контейнера, а чаты, пользователи и настройки — в open-webui-data по /app/backend/data. Compose может добавлять к именам volumes префикс проекта. Не используй docker compose down -v, если данные нужно сохранить.
Как настроить HTTPS/SSL?
Лучше использовать reverse proxy (Nginx или Traefik) перед Open WebUI. Настрой SSL на proxy, а Open WebUI оставь на HTTP внутри сети Docker.
Таблица сравнения методов установки
| Метод | Сложность | Управление | Для кого |
|---|---|---|---|
| Docker Compose | Средняя | Легкое (конфиг-файл) | Production, долгосрочное использование |
| Docker run | Низкая | Сложное (команды) | Тестирование, быстрая проверка |
| Kubernetes | Высокая | Профессиональное | Кластеры, масштабирование |
Решение распространенных проблем
Решение: Проверь состояние сервиса ollama, общую сеть Compose и адрес http://ollama:11434 в Open WebUI. Не открывай 11434 наружу: локальный API Ollama не должен становиться общедоступным.
Решение: Проверь логи:
sudo docker compose logs --tail=100 open-webui. Частая причина — проблемы с правами на volume или конфликт портов.
Решение: Используй более легкие модели (например, llama3.1:8b вместо :70b). Включи GPU ускорение если есть видеокарта. Увеличь оперативную память сервера.
Итоги и следующие шаги
После проверки входа, ответа модели, перезапуска контейнеров и сохранности данных базовое развёртывание можно считать проверенным. Следующие шаги:
- Настроить несколько моделей в Ollama для разных задач
- Интегрировать с внешними API (OpenAI, Anthropic)
- Настроить автоматическое резервное копирование данных
- Развернуть за reverse proxy с SSL сертификатом
- Создать пользователей с разными правами доступа
Помни: локальный AI — это не только про приватность, но и про полный контроль над инфраструктурой. Экспериментируй, настраивай под свои нужды и наслаждайся возможностями, которые открывает Open WebUI.