Перейти к содержанию

Open WebUI и Ollama в домашней сети через Docker

Запустите Open WebUI и Ollama в одной сети Compose. Откройте интерфейс на самом сервере или через SSH-туннель с другого компьютера, оставив API Ollama внутри сети контейнеров.

Обновлено Редакция GAW

Open WebUI принимает вход пользователя и отправляет запросы в Ollama от своего сервера. Ollama хранит модели и выполняет инференс. В этом примере оба сервиса работают на одном Linux-хосте с Docker Engine 28 или новее и Compose v2. Доступ из локальной сети предполагает уже настроенный SSH на хосте.

Коротко

  • Open WebUI слушает порт 3000 на loopback хоста.
  • Из WebUI контейнер Ollama доступен как http://ollama:11434.
  • Первый аккаунт Open WebUI получает права администратора.
  • Модели, чаты и секрет сеансов сохраняются отдельно.
Доступ к Open WebUI и OllamaБраузер → Open WebUI → OllamaБраузерSSH → loopback хостаOpen WebUIВход по паролюOllamaСеть Compose · :11434
Через SSH открывается интерфейс. Между контейнерами запрос идёт по сети Compose.

Запуск на CPU

В пустом каталоге сохраните compose.yaml. Пример фиксирует Open WebUI v0.13.0 и Ollama 0.40.15.

services:
  ollama:
    image: ollama/ollama:0.40.15
    environment:
      OLLAMA_HOST: "0.0.0.0:11434"
      OLLAMA_NO_CLOUD: "1"
    volumes:
      - ollama-data:/root/.ollama
    restart: unless-stopped
  webui:
    image: ghcr.io/open-webui/open-webui:v0.13.0
    ports:
      - "127.0.0.1:3000:8080"
    environment:
      OLLAMA_BASE_URL: "http://ollama:11434"
      WEBUI_SECRET_KEY: "${WEBUI_SECRET_KEY:?Set WEBUI_SECRET_KEY in .env}"
      ENABLE_OPENAI_API: "false"
    volumes:
      - webui-data:/app/backend/data
    restart: unless-stopped
volumes:
  ollama-data:
  webui-data:

Один раз выполните команды ниже в каталоге проекта. .env храните вне Git. При обновлении оставьте прежний секрет, чтобы сохранить действующие сеансы. Для скачивания образов и модели нужен интернет.

(umask 077; set -o noclobber; printf 'WEBUI_SECRET_KEY=%s\n' "$(openssl rand -hex 32)" > .env)
docker compose config --quiet
docker compose up -d
docker compose exec ollama ollama pull qwen3:0.6b
docker compose exec ollama ollama list

После запуска откройте http://127.0.0.1:3000, создайте администратора с уникальным паролем и проверьте, что самостоятельная регистрация отключена в настройках аутентификации. Выберите qwen3:0.6b и отправьте короткий запрос. Для другого пользователя создайте отдельную учётную запись.

Подключение из домашней сети

На клиентском компьютере запустите туннель. Подставьте имя пользователя SSH и адрес сервера вместо user и 192.168.1.20. Сверьте ключ сервера при первом подключении.

ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:3000:127.0.0.1:3000 user@192.168.1.20

Пока SSH работает, откройте на клиенте http://127.0.0.1:3000 и войдите в Open WebUI. Если локальный порт занят, поменяйте первый номер порта в аргументе -L и в адресе браузера. SSH шифрует участок между компьютерами. Для этой схемы достаточно доступности SSH в доверенной сети.

ГдеАдрес или путьНазначение
Браузер127.0.0.1:3000Вход в WebUI с хоста или по туннелю
Сеть Composeollama:11434Вызовы API с сервера WebUI
Том webui-data/app/backend/dataЧаты, пользователи, настройки
Том ollama-data/root/.ollamaЗагруженные модели и состояние Ollama

Проверка и сохранение данных

  1. Выполните docker compose ps. У WebUI ожидается проброс 127.0.0.1:3000->8080/tcp. Строка 11434/tcp без адреса хоста и стрелки означает порт контейнера без публикации на хосте. При ошибке проверьте docker compose logs --tail=80 webui ollama.
  2. Если список моделей пуст, проверьте Ollama через docker compose exec ollama ollama list. Затем проверьте доступ из WebUI командой docker compose exec webui python -c "from urllib.request import urlopen; print(urlopen('http://ollama:11434/api/tags', timeout=5).read().decode())". Если API вернул модель, проверьте сохранённый URL Ollama и права пользователя в панели WebUI.
  3. Сохраняйте compose.yaml, защищённую копию .env и оба тома. Для согласованной копии SQLite остановите сервис WebUI перед копированием тома. Перед обновлением проверьте возможность восстановления. Удаление проекта с флагом down -v удаляет и его именованные тома.

Это конфигурация для CPU. Для GPU нужны драйверы и параметры контейнера под конкретную платформу. Инструкция сверена с документацией проектов и проверяется на уровне конфигурации Compose.

Частые вопросы

Почему в Open WebUI не подходит localhost:11434?

В контейнере localhost указывает на этот же контейнер. В примере Ollama доступен из WebUI по имени сервиса ollama.

Где хранятся чаты и модели?

Чаты, учётные записи и настройки находятся в томе webui-data, скачанные модели в ollama-data. Резервируйте их отдельно.

Можно ли открыть 11434 для других устройств?

Локальный API Ollama не требует входа. В этой схеме браузер обращается к Open WebUI через SSH-туннель, а порт Ollama остаётся неопубликованным.

Источники

  1. Open WebUI. Quick Start и конфигурация — Контейнер, том данных, постоянный секрет и первый администратор
  2. Open WebUI. Environment Variable Configuration — Подключение Ollama, аутентификация и настройки регистрации
  3. Open WebUI v0.13.0
  4. Ollama. Docker и локальная аутентификация — CPU-контейнер и каталог /root/.ollama
  5. Ollama. Authentication — Локальный API доступен без аутентификации
  6. Docker. Networking in Compose
  7. Docker. Port publishing and mapping
Страница помогла?

Нашли ошибку? ·