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 получает права администратора.
- Модели, чаты и секрет сеансов сохраняются отдельно.
Запуск на 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 с хоста или по туннелю |
| Сеть Compose | ollama:11434 | Вызовы API с сервера WebUI |
Том webui-data | /app/backend/data | Чаты, пользователи, настройки |
Том ollama-data | /root/.ollama | Загруженные модели и состояние Ollama |
Проверка и сохранение данных
- Выполните
docker compose ps. У WebUI ожидается проброс127.0.0.1:3000->8080/tcp. Строка11434/tcpбез адреса хоста и стрелки означает порт контейнера без публикации на хосте. При ошибке проверьтеdocker compose logs --tail=80 webui ollama. - Если список моделей пуст, проверьте 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. - Сохраняйте
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 остаётся неопубликованным.
Источники
- Open WebUI. Quick Start и конфигурация — Контейнер, том данных, постоянный секрет и первый администратор
- Open WebUI. Environment Variable Configuration — Подключение Ollama, аутентификация и настройки регистрации
- Open WebUI v0.13.0
- Ollama. Docker и локальная аутентификация — CPU-контейнер и каталог /root/.ollama
- Ollama. Authentication — Локальный API доступен без аутентификации
- Docker. Networking in Compose
- Docker. Port publishing and mapping
Нашли ошибку? ·