Open WebUI и Ollama: свой чат на GPU
Open WebUI отвечает за браузерный интерфейс, Ollama — за модель. Если интерфейс открылся, но список моделей пуст, сначала проверьте соединение с Ollama, а не настройки видеокарты.
Ниже два пути. Для GPU-контейнера без Docker запустите Ollama на GPU, а Open WebUI — на своём компьютере. Для полноценного хоста с Docker и доступом к видеокарте есть совместный Compose-вариант.
Вариант A: модель на GPU, интерфейс на компьютере
Пройдите инструкцию Ollama, включая SSH-туннель с локального порта 11435 на серверный 11434. На своём компьютере проверьте:
curl --fail-with-body http://127.0.0.1:11435/api/tags
При необходимости установите uv. В macOS/Linux запускайте интерфейс из постоянного каталога:
mkdir -p "$HOME/llm-webui"
cd "$HOME/llm-webui"
OLLAMA_BASE_URL=http://127.0.0.1:11435 \
DATA_DIR="$HOME/llm-webui/data" \
uvx --python 3.11 open-webui@0.11.4 serve --host 127.0.0.1 --port 8080
В Windows PowerShell при уже работающем SSH-туннеле:
New-Item -ItemType Directory -Force "$env:USERPROFILE\llm-webui" | Out-Null
Set-Location "$env:USERPROFILE\llm-webui"
$env:OLLAMA_BASE_URL = 'http://127.0.0.1:11435'
$env:DATA_DIR = "$env:USERPROFILE\llm-webui\data"
uvx --python 3.11 open-webui@0.11.4 serve --host 127.0.0.1 --port 8080
Откройте http://127.0.0.1:8080, создайте первый аккаунт и выберите скачанную модель. В этой схеме история и настройки интерфейса находятся на вашем компьютере, веса — на GPU-инстансе. Во время чата должны работать туннель и оба процесса.
Вариант B: оба сервиса на хосте с Docker
Проверьте docker info и docker compose version. Нужны NVIDIA Container Toolkit и рабочий доступ контейнеров к GPU. Внутри арендованного GPU-контейнера их может не быть.
Сохраните compose.yaml в новом каталоге хоста. В нём зафиксированы Ollama 0.34.4 и Open WebUI 0.11.4, данные сохраняются в ./data, а порты публикуются только на loopback.
docker compose config
docker compose up -d
docker compose exec ollama ollama pull qwen2.5:7b-instruct-q4_K_M
docker compose exec ollama ollama run qwen2.5:7b-instruct-q4_K_M "Say hello in one sentence."
docker compose exec ollama ollama ps
На своём компьютере пробросьте порт интерфейса, подставив SSH-реквизиты инстанса:
ssh -N -o ExitOnForwardFailure=yes -p SSH_PORT \
-L 127.0.0.1:3000:127.0.0.1:3000 root@GPU_HOST
Откройте http://127.0.0.1:3000. Интерфейс подключается к Ollama по адресу http://ollama:11434 внутри сети Compose. localhost внутри контейнера указывает на него самого, поэтому замена этого адреса на localhost:11434 нарушит соединение.
Если нет моделей в списке
Сначала проверьте ollama list на сервере модели. В Compose используйте docker compose exec ollama ollama list и журнал docker compose logs --tail=100 open-webui ollama.
Посмотрите сохранённый адрес Ollama в административных настройках интерфейса. Старая установка может хранить его в базе, и смена переменной окружения не обязательно заменит сохранённое значение. Для варианта A нужен локальный порт 11435, для B — имя сервиса Compose.
История и обновления
Оставьте аутентификацию включённой. Инструкция рассчитана на личный SSH-туннель, а не на общедоступный сайт. Перед обновлением остановите интерфейс и скопируйте его каталог данных. После миграции базы откат программы без соответствующей резервной копии может не сработать.
docker compose stop останавливает процессы, сохраняя файлы. Стоимость инстанса продолжает зависеть от его состояния. До удаления диска выполните инструкцию по резервной копии.
Источники: установка Open WebUI, настройки и их сохранение, Ollama в Docker.
Готовы запустить?
Запустить приватный чат с Qwen2.5 7BПриложение установит Open WebUI и Ollama и скачает Qwen2.5 7B Q4_K_M. Инструкция выше описывает отдельный вариант с ручной настройкой.