Skip to content
Search RunEntLinux

Searches general documentation on RunEntLinux. Each distribution has its own documentation search.

    Browse this documentation

    Open WebUI (formerly Ollama WebUI) is a feature-rich web frontend for large language models. It provides a ChatGPT-like conversational experience with support for connecting to Ollama and OpenAI-compatible APIs. Features include multi-user management, conversation history, model switching, RAG document Q&A, and more, making it ideal for deploying a private AI chat platform for teams or enterprises.

    • Modern ChatGPT-like interface
    • Multi-model switching (Ollama, OpenAI, vLLM, etc.)
    • Multi-user management and access control
    • Conversation history saving and search
    • RAG (Retrieval-Augmented Generation) document Q&A
    • Model customization and Modelfile management
    • Markdown rendering and code highlighting
    • Voice input and TTS support
    • CentOS Stream 9 & 10 / AlmaLinux 9 & 10 / Rocky Linux 9 & 10
    • Docker or Podman
    • A deployed Ollama service or other OpenAI-compatible API (see Ollama Local LLM)

    If Docker is not yet installed:

    Install Docker (EL 9 / EL 10)
    sudo dnf install -y dnf-plugins-core
    sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
    sudo systemctl enable --now docker
    sudo usermod -aG docker $(whoami)

    Log out and back in for the group change to take effect.

    Deploy Open WebUI (Connecting to Local Ollama)

    Section titled “Deploy Open WebUI (Connecting to Local Ollama)”

    If Ollama is running on the same machine:

    Terminal window
    docker run -d \
    --name open-webui \
    --restart always \
    -p 3000:8080 \
    -v open-webui-data:/app/backend/data \
    --add-host=host.docker.internal:host-gateway \
    -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
    ghcr.io/open-webui/open-webui:main

    Visit http://your-server-ip:3000 to open the interface.

    Deploy Open WebUI (Connecting to Remote Ollama)

    Section titled “Deploy Open WebUI (Connecting to Remote Ollama)”

    If Ollama is running on another server:

    Terminal window
    docker run -d \
    --name open-webui \
    --restart always \
    -p 3000:8080 \
    -v open-webui-data:/app/backend/data \
    -e OLLAMA_BASE_URL=http://192.168.1.100:11434 \
    ghcr.io/open-webui/open-webui:main

    Connect to an OpenAI-Compatible API (e.g., vLLM)

    Section titled “Connect to an OpenAI-Compatible API (e.g., vLLM)”

    If using vLLM or another OpenAI API-compatible backend:

    Terminal window
    docker run -d \
    --name open-webui \
    --restart always \
    -p 3000:8080 \
    -v open-webui-data:/app/backend/data \
    -e OPENAI_API_BASE_URL=http://192.168.1.100:8000/v1 \
    -e OPENAI_API_KEY=not-needed \
    ghcr.io/open-webui/open-webui:main

    Create a docker-compose.yml file to deploy both Ollama and Open WebUI together:

    Terminal window
    mkdir -p /opt/open-webui && cd /opt/open-webui
    cat > docker-compose.yml <<'EOF'
    services:
    ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: always
    volumes:
    - ollama-data:/root/.ollama
    ports:
    - "11434:11434"
    # If you have a GPU, uncomment the following configuration
    # deploy:
    # resources:
    # reservations:
    # devices:
    # - driver: nvidia
    # count: all
    # capabilities: [gpu]
    open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: always
    depends_on:
    - ollama
    ports:
    - "3000:8080"
    volumes:
    - open-webui-data:/app/backend/data
    environment:
    - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
    ollama-data:
    open-webui-data:
    EOF

    Start the services:

    Terminal window
    docker compose up -d

    Pull models in the Ollama container:

    Terminal window
    docker exec -it ollama ollama pull qwen2.5
    docker exec -it ollama ollama pull llama3.1

    EL9 systems come with Podman pre-installed, so Docker is not required.

    Terminal window
    # Note: with --network=host the container uses host port 8080 directly, so `-p 3000:8080` is ignored
    podman run -d \
    --name open-webui \
    --restart always \
    -v open-webui-data:/app/backend/data \
    --network=host \
    -e OLLAMA_BASE_URL=http://localhost:11434 \
    ghcr.io/open-webui/open-webui:main
    # Open http://<host>:8080 (not 3000)
    Terminal window
    # Generate a systemd service file
    mkdir -p ~/.config/systemd/user
    # generate systemd is deprecated since Podman 4.4; new deployments should use Quadlet (see /en/containers/quadlet/)
    podman generate systemd --name open-webui --new > ~/.config/systemd/user/open-webui.service
    # Enable auto-start (user-level service)
    systemctl --user daemon-reload
    systemctl --user enable open-webui.service
    # Enable lingering so the service runs even when the user is not logged in
    sudo loginctl enable-linger $(whoami)

    When accessing Open WebUI for the first time, you need to register the first account. The first registered account will automatically become the administrator.

    1. Open your browser and go to http://your-server-ip:3000
    2. Click “Sign up” to register
    3. Fill in your username, email, and password
    4. You will be automatically logged in after registration

    After logging in, click the avatar in the bottom-left corner to access settings.

    User Management: Administrators can do the following in the Admin Panel:

    • View and manage all users
    • Set user registration policy (open registration / requires approval / registration closed)
    • Change user roles (admin / regular user)
    Admin Panel > Settings > General > Enable New Sign Ups

    Model Management:

    • Select which models are visible to users
    • Set the default model
    • Create custom models (based on Modelfile)

    Configure backend connections in the admin settings:

    Ollama Connection:

    Admin Panel > Settings > Connections > Ollama API
    URL: http://host.docker.internal:11434

    OpenAI API Connection:

    Admin Panel > Settings > Connections > OpenAI API
    URL: http://your-vllm-server:8000/v1
    API Key: your-api-key

    Open WebUI supports configuration through environment variables. Here are commonly used ones:

    Environment VariableDescriptionDefault
    OLLAMA_BASE_URLOllama API URLhttp://localhost:11434
    OPENAI_API_BASE_URLOpenAI-compatible API URL-
    OPENAI_API_KEYOpenAI API key-
    WEBUI_AUTHEnable authenticationtrue
    WEBUI_SECRET_KEYJWT secret keyAuto-generated
    DEFAULT_MODELSDefault selected model-
    ENABLE_SIGNUPAllow registrationtrue
    ENABLE_WEB_SEARCHEnable web search (the old ENABLE_RAG_WEB_SEARCH no longer takes effect)false

    Open WebUI stores data in the /app/backend/data directory inside the container. Persist this data using Docker Volumes:

    Terminal window
    # View volume information
    docker volume inspect open-webui-data
    # Backup data
    docker run --rm \
    -v open-webui-data:/data \
    -v $(pwd):/backup \
    alpine tar czf /backup/open-webui-backup.tar.gz -C /data .
    # Restore data
    docker run --rm \
    -v open-webui-data:/data \
    -v $(pwd):/backup \
    alpine tar xzf /backup/open-webui-backup.tar.gz -C /data
    Terminal window
    # Docker method
    docker pull ghcr.io/open-webui/open-webui:main
    docker stop open-webui
    docker rm open-webui
    # Re-run the docker run command (data is persisted via the volume)
    # Docker Compose method
    cd /opt/open-webui
    docker compose pull
    docker compose up -d
    Terminal window
    sudo firewall-cmd --permanent --add-port=3000/tcp
    sudo firewall-cmd --reload

    Verify that the Ollama listening address is correct:

    Terminal window
    # Check if Ollama is listening
    curl http://localhost:11434/api/tags
    # If the Docker container cannot access the host's Ollama,
    # make sure Ollama is listening on 0.0.0.0
    sudo systemctl edit ollama
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0"
    Terminal window
    sudo systemctl daemon-reload
    sudo systemctl restart ollama
    Terminal window
    # View container logs
    docker logs open-webui
    # Common cause: port conflict
    # Change the port
    docker run -d --name open-webui -p 8080:8080 ...
    Terminal window
    # Enter the container to reset
    docker exec -it open-webui bash
    # Run the reset command inside the container (specific command depends on the version)
    # Or delete the volume and reinitialize (this will lose all data)
    docker stop open-webui
    docker rm open-webui
    docker volume rm open-webui-data
    # Recreate the container