Open WebUI logoAI

Open WebUI

A self-hosted AI chat interface for Ollama and multiple LLM providers.

Review notes

Local models depend on model size and GPU. For external APIs, a small VPS is usually enough.

Deployment guide

Run it as a single container, or pair it with Ollama/LiteLLM for a fuller AI stack.

  1. Choose a backend: local Ollama, LiteLLM gateway, or external API provider.
  2. Run Open WebUI with a persistent `/app/backend/data` volume.
  3. Configure environment variables for the provider or Ollama/LiteLLM endpoint.
  4. Create the first admin user and review signup permissions.
  5. Put HTTPS in front if a team will access it from the internet.
Backup:Back up the backend data volume and database if you move to PostgreSQL.

Copy and run on your server

Use each block separately: save the compose file, or copy the bash script to create it and start the container.

docker-compose.ymlyaml
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    volumes:
      - ./data:/app/backend/data
    ports:
      - "3000:8080"
    environment:
      WEBUI_AUTH: "true"
    restart: unless-stopped
setup.shbash
#!/usr/bin/env bash
set -euo pipefail

sudo mkdir -p /opt/open-webui
sudo chown "$USER":"$USER" /opt/open-webui
cd /opt/open-webui

cat > docker-compose.yml <<'COMPOSE'
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    volumes:
      - ./data:/app/backend/data
    ports:
      - "3000:8080"
    environment:
      WEBUI_AUTH: "true"
    restart: unless-stopped
COMPOSE

docker compose up -d
echo "Open WebUI is running on http://SERVER_IP:3000"

Stack

PythonSvelteSQLite/PostgreSQLDocker