MaruOpsInfrastructure and AI notes

About (Korean)Contact (Korean)

[Local LLM 12] Set Up Web Chat with Open WebUI and Ollama

Workspace with laptop and writing utensils

Reference photo · Workspace with laptop and writing utensils · Photo: AnonymousUnknown author / Source / CC0 · Resized for listings; illustrative photo, not the tested environment

Building a Local LLM · 12/30 · Practice

Full series and learning sequence · Practice code ZIP

Open WebUI adds browser-based model selection and conversation history. This exercise runs WebUI and Ollama on the same Docker network. It is a separate setup from the Ollama application installed earlier on Windows, so keep the server endpoint and model storage of each environment distinct.

Make sure Docker Desktop is running and prepare disk space to store additional models. Create a configuration in the browser to send a question to the container’s model.

Path from browser to model

The browser connects to 127.0.0.1:3000 on Windows, and WebUI sends a request to the Docker internal address ollama:11434. Ollama API ports are not exposed directly to hosts. The default is CPU inference, which requires additional storage space because the model is pulled back to a Docker volume.

The Python code from Part 13 uses the 11434 port of Windows Ollama prepared in Part 2. The Docker configuration here is a separate environment for learning the web screen. Even if the model names are the same, storage or loaded memory is not shared.

Compose file and first run

Save the contents below as compose.yaml in a new folder. You can also use the same files from the lab ZIP. After creating your first administrator account on the initial registration screen, additional membership registration is restricted in administrator settings.

name: local-llm-web
services:
  ollama:
    image: ollama/ollama:latest
    volumes:
      - ollama_models:/root/.ollama
    environment:
      OLLAMA_NO_CLOUD: "1"
    restart: unless-stopped
  webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "127.0.0.1:3000:8080"
    environment:
      OLLAMA_BASE_URL: http://ollama:11434
    volumes:
      - webui_data:/app/backend/data
    depends_on:
      - ollama
    restart: unless-stopped
volumes:
  ollama_models:
  webui_data:
docker compose up -d
docker compose exec ollama ollama pull qwen3:4b-instruct
docker compose ps

Open http://127.0.0.1:3000 and create an administrator account. Select the model you just received and ask it a hypothetical note. After disabling new user registration, also verify that the settings were applied.

Check model list/connection address

docker compose exec ollama ollama list
docker compose logs --tail 80 ollama
docker compose logs --tail 80 webui

If your model isn’t listed in the first command, check where you downloaded it. The Windows ollama list and the container list are separate. If the model is ready, check that the Ollama address in WebUI is http://ollama:11434. Do not add /v1 to this address.

You must receive a chat response to confirm that you have connected to Ollama in WebUI. The inspection does not end with only the screen open. Administrator accounts and chat volumes are also data to be protected, so we do not reuse passwords from other services.

Add GPU and store data

In an officially supported NVIDIA Docker environment, add gpus: all to the ollama service and recreate it. Then check GPU usage with ollama ps inside the container. Do not apply this NVIDIA-specific configuration unchanged to AMD or Intel hardware.

docker compose stop
docker compose start
# 실행 중인 구성과 실제 이미지 ID 기록
docker compose images

Conversations and accounts remain in the webui_data, and models remain in the ollama_models volume. When backing up, we stop the service to clean up writes and also check restoration. If you plan to continue using the configuration, record the successful digest instead of main·latest. This will serve as a standard for comparison when updating.

reference material

Documentation and model tags checked: October 18, 2026. Primary lab environment: Windows 11 x64.