Tutoriais/Open WebUI

    Como instalar o Open WebUI em uma VPS Ubuntu

    O Open WebUI é uma interface web auto-hospedada para interagir com modelos de linguagem via Ollama ou qualquer API compatível com OpenAI. Este guia instala o Open WebUI com Docker, configura Nginx como reverse proxy e emite SSL gratuito com Certbot.

    ~30 minjunho/2026 · Ubuntu 24.04 LTS

    Pré-requisitos

    • VPS mínima: 2 vCPU · 4 GB RAM · 20 GB SSD (Runstack Basic ou superior)
    • Sistema: Ubuntu 24.04 LTS
    • Docker instalado (veja /tutorial/como-instalar-docker)
    • Ollama instalado e rodando (opcional — veja /tutorial/como-instalar-ollama)
    • Subdomínio DNS apontado para o IP da VPS
    • Portas 80 e 443 abertas no firewall

    Instalação passo a passo

    1. 1

      Atualizar o sistema e instalar Docker

      Garanta que o sistema está atualizado e o Docker instalado.

      bash
      apt update && apt upgrade -y
      curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
      docker --version
    2. 2

      Escolher o modo de instalação

      O Open WebUI oferece dois modos: (A) conectado ao Ollama local (recomendado para VPS com GPU ou Ollama instalado) e (B) modo standalone com chave de API OpenAI-compatível.

      Dica
      Se você já tem o Ollama rodando na VPS, use o Modo A. Se quiser usar apenas APIs externas (OpenAI, Groq etc.), use o Modo B.
    3. 3

      Modo A: instalar com Ollama como backend local

      Este comando conecta o Open WebUI ao Ollama rodando no host da VPS via `host.docker.internal`.

      bash
      docker run -d \
        -p 127.0.0.1:3000:8080 \
        --add-host=host.docker.internal:host-gateway \
        -v open-webui:/app/backend/data \
        --name open-webui \
        --restart always \
        ghcr.io/open-webui/open-webui:main
      Dica
      O Ollama deve estar rodando na porta padrão 11434 do host. O Open WebUI detecta-o automaticamente via host.docker.internal.
    4. 4

      Modo B: instalar com chave de API externa (OpenAI, Groq etc.)

      Use este modo se não tiver Ollama instalado. Passe a variável OPENAI_API_KEY para acessar modelos externos.

      bash
      docker run -d \
        -p 127.0.0.1:3000:8080 \
        -e OPENAI_API_KEY=sk-sua-chave-aqui \
        -v open-webui:/app/backend/data \
        --name open-webui \
        --restart always \
        ghcr.io/open-webui/open-webui:main
    5. 5

      Verificar se o container subiu

      Confirme que o Open WebUI está respondendo localmente antes de configurar o Nginx.

      bash
      docker ps | grep open-webui
      docker logs open-webui --tail=30
      
      # Testar resposta local
      curl -s http://127.0.0.1:3000/ | head -c 100
    6. 6

      Configurar Nginx como reverse proxy

      Crie um virtual host que encaminha o tráfego HTTPS para o Open WebUI na porta 3000.

      bash
      apt install -y nginx
      
      cat > /etc/nginx/sites-available/open-webui << 'NGINXEOF'
      server {
          listen 80;
          server_name chat.seudominio.com.br;
          return 301 https://$host$request_uri;
      }
      
      server {
          listen 443 ssl;
          server_name chat.seudominio.com.br;
      
          ssl_certificate /etc/letsencrypt/live/chat.seudominio.com.br/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/chat.seudominio.com.br/privkey.pem;
      
          client_max_body_size 50M;
      
          location / {
              proxy_pass http://127.0.0.1:3000;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_http_version 1.1;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection "upgrade";
              proxy_read_timeout 3600s;
          }
      }
      NGINXEOF
      
      ln -s /etc/nginx/sites-available/open-webui /etc/nginx/sites-enabled/open-webui
      nginx -t && systemctl reload nginx
      Atenção
      Substitua chat.seudominio.com.br pelo seu subdomínio real.
    7. 7

      Obter certificado SSL com Certbot

      Emita um certificado gratuito e configure renovação automática.

      bash
      apt install -y certbot python3-certbot-nginx
      
      certbot --nginx \
        -d chat.seudominio.com.br \
        --non-interactive \
        --agree-tos \
        --email seu@email.com
      
      systemctl reload nginx
    8. 8

      Configurar firewall UFW

      Restrinja o acesso às portas necessárias.

      bash
      ufw allow 22/tcp comment 'SSH'
      ufw allow 80/tcp comment 'HTTP'
      ufw allow 443/tcp comment 'HTTPS'
      ufw --force enable
      ufw status verbose
    9. 9

      Criar conta de administrador

      Acesse https://chat.seudominio.com.br no navegador. O primeiro usuário a se registrar automaticamente recebe privilégios de administrador.

      Dica
      Após criar o primeiro admin, você pode desativar cadastros públicos nas configurações (Admin Panel → Settings → General → Default User Role).

    $ runstack deploy --plan starter

    Não quer configurar manualmente?

    Não quer configurar manualmente? Implante o Open WebUI em menos de 3 minutos com a Runstack. Infraestrutura da OPEN DATACENTER, com servidores no Brasil.

    Troubleshooting

    Perguntas frequentes

    [VERIFICAR antes de publicar]

    • 1. Confirme a tag de imagem mais recente em ghcr.io/open-webui/open-webui — a tag `main` é o latest, mas fixar uma versão é recomendado para produção.
    • 2. Verifique se o mapeamento de porta interno ainda é 8080 (container) na versão atual.