Установка Open WebUI на Ubuntu: пошаговая инструкция и настройка | AdminWiki

Установка Open WebUI на Ubuntu: Полное руководство для разработчиков

28 декабря 2025 9 мин. чтения #ai #devops #docker #ollama #open webui #ubuntu #локальный ai #установка

Если ты хочешь развернуть современный веб-интерфейс для локальных языковых моделей на своей Ubuntu-машине, то Open WebUI — идеальный выбор. Это open-source проект с огромным сообществом, который превращает твою локальную инфраструктуру в полноценную платформу для работы с AI. Давай разберем, как выполнить установку Open WebUI на Ubuntu правильно и без головной боли.

Что тебе понадобится: Ubuntu 24.04 LTS, Docker Engine и плагин Docker Compose, базовые знания терминала, и конечно, желание экспериментировать с локальным AI.

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

Перед тем как начать пошаговую установку Open WebUI на Ubuntu, убедись, что твоя система готова. Ниже — новое развёртывание в двух контейнерах: Open WebUI и Ollama. UI сначала доступен только через loopback/SSH-туннель, а API Ollama не публикуется на хосте. Для production отдельно нужны HTTPS, управление доступом, бэкап и проверенный план обновления. Если нужен отдельный сервер, можно сравнить ресурсы Timeweb Cloud (партнёрская ссылка) с требованиями модели: память и GPU подбирают по реальной нагрузке, а не только по интерфейсу.

1. Обновление системы и установка зависимостей

Первым делом обновим пакеты и установим необходимые утилиты:

bash
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, предварительно сверив инструкции по конфликтующим пакетам. Проверка:

bash
sudo docker version
sudo docker compose version
Важно: Команды ниже используют sudo. Членство в группе docker фактически даёт root-права, поэтому не добавляй пользователя автоматически. Не отключай firewall ради Docker; привязку портов проверяй отдельно.

Пошаговая установка Open WebUI на Ubuntu

Теперь перейдем к основной части — непосредственно установке Open WebUI. Я покажу два основных способа: через Docker Compose (рекомендуемый) и через Docker run.

Способ 1: Установка через Docker Compose (Рекомендуется)

Compose хранит конфигурацию в одном файле. Пример рассчитан на новый каталог и новые volumes; существующий проект сначала сохрани. Выбери конкретные совместимые версии образов на страницах релизов Open WebUI и Ollama и зафиксируй их тегами или digest. Значения ниже намеренно не подставляют плавающий main автоматически.

bash
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

Теперь запустим наш контейнер:

bash
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 автоматически.

bash
# Подставь конкретный 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

bash
sudo docker compose exec ollama ollama pull llama3.1:8b
sudo docker compose exec ollama ollama list

Конфигурация для работы вместе

Open WebUI обращается к Ollama по имени сервиса внутри сети Compose. Проверь соответствующий фрагмент уже созданного файла, не заменяй им весь файл:

yaml
environment:
  OLLAMA_BASE_URL: http://ollama:11434
  WEBUI_AUTH: "true"
  WEBUI_SECRET_KEY: ${WEBUI_SECRET_KEY:?Set WEBUI_SECRET_KEY in .env}
Важный момент: В этой схеме extra_hosts и host-gateway не нужны. Не добавляй ports для Ollama и не открывай 11434 в firewall. Контейнеры одного Compose-проекта связываются через свою сеть.

Проверка работы и доступ к интерфейсу

После успешной установки 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 для сброса настроек.

yaml
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 Высокая Профессиональное Кластеры, масштабирование

Решение распространенных проблем

Проблема: «Connection refused» при подключении к Ollama
Решение: Проверь состояние сервиса 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.

Поделиться: