⏱️ Início Rápido
- Criação de Admin: A primeira conta criada no Open WebUI obtém privilegios de Administrador, controlando gerenciamento de usuários e configurações do sistema.
- Cadastros de Usuários: Inscrições subsequentes começam com status Pendente, exigindo aprovação do Administrador para acesso.
- Privacidade e Segurança de Dados: Todos os seus dados, incluindo detalhes de login, são armazenados localmente em seu dispositivo. O Open WebUI garante confidencialidade estrita e nenhuma solicitação externa para maior privacidade e segurança.
- Todos os modelos são privados por padrão. Modelos devem ser compartilhados explicitamente através de grupos ou tornados públicos. Se um modelo for atribuído a um grupo, apenas os membros do grupo poderão vê-lo. Se um modelo for tornado público, qualquer pessoa na instância poderá visualizá-lo.
Escolha abaixo seu método de instalação preferido:
- Docker: Oficialmente suportado e recomendado para a maioria dos usuários
- Python: Adequado para ambientes com poucos recursos ou para quem deseja uma configuração manual
- Kubernetes: Ideal para implementa ções empresariais que requerem escalabilidade e orquestração
- Docker
- Python
- Kubernetes
- Terceiros
- Docker
- Docker Compose
- Podman
- Docker Swarm
Início Rápido com Docker 🐳
Siga estes passos para instalar Open WebUI com Docker.
Etapa 1: Obter a Imagem Open WebUI
Comece obtendo a imagem Docker mais recente do Open WebUI do GitHub Container Registry.
docker pull ghcr.io/open-webui/open-webui:main
Etapa 2: Executar o Contêiner
Execute o contêiner com as configurações padrão. Este comando inclui um mapeamento de volume para garantir armazenamento persistente de dados.
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
Flags Importantes
- Mapeamento de Volume (
-v open-webui:/app/backend/data
): Garante o armazenamento persistente dos seus dados. Isso evita perda de dados entre reinicializações do contêiner. - Mapeamento de Porta (
-p 3000:8080
): Disponibiliza o WebUI na porta 3000 da sua máquina local.
Usando Suporte a GPU
Para suporte a GPU Nvidia, adicione --gpus all
ao comando docker run
:
docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:cuda
Modo de Usuário Único (Desativando Login)
Para ignorar a página de login em uma configuração de usuário único, defina a variável de ambiente WEBUI_AUTH
como False
:
docker run -d -p 3000:8080 -e WEBUI_AUTH=False -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
Você não pode alternar entre o modo de usuário único e o modo de várias contas após esta alteração.
Configuração Avançada: Conectando ao Ollama em Outro Servidor
Para conectar o Open WebUI a um servidor Ollama localizado em outro host, adicione a variável de ambiente OLLAMA_BASE_URL
:
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Acesse o WebUI
Após o contêiner estar em execução, acesse o Open WebUI em:
Para ajuda detalhada sobre cada flag do Docker, veja a documentação do Docker.
Atualizando
Para atualizar sua instalação local do Docker para a versão mais recente, você pode usar o Watchtower ou atualizar manualmente o contêiner.
Opção 1: Usando Watchtower
Com o Watchtower, você pode automatizar o processo de atualização:
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
(Substitua open-webui
pelo nome do seu contêiner se ele for diferente.)
Opção 2: Atualização Manual
-
Pare e remova o contêiner atual:
docker rm -f open-webui
-
Baixe a versão mais recente:
docker pull ghcr.io/open-webui/open-webui:main
-
Inicie o contêiner novamente:
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
Ambos os métodos irão atualizar sua instância do Docker e colocá-la em funcionamento com a última versão.
Configuração do Docker Compose
Usar o Docker Compose simplifica a gestão de aplicações Docker com múltiplos contêineres.
Se você não tiver o Docker instalado, confira nosso tutorial de instalação do Docker.
O Docker Compose requer um pacote adicional, docker-compose-v2
.
Aviso: Tutoriais antigos do Docker Compose podem fazer referência à sintaxe da versão 1, que utiliza comandos como docker-compose build
. Certifique-se de usar a sintaxe da versão 2, que utiliza comandos como docker compose build
(note o espaço em vez de um hífen).
Exemplo de docker-compose.yml
Aqui está um arquivo de configuração exemplo para configurar o Open WebUI com Docker Compose:
version: 3
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:
Iniciando os Serviços
Para iniciar os serviços, execute o seguinte comando:
docker compose up -d
Script Auxiliar
Um script auxiliar útil chamado run-compose.sh
está incluído na base de código. Este script ajuda a escolher quais arquivos Docker Compose incluir na sua implantação, facilitando o processo de configuração.
Nota: Para suporte à GPU Nvidia, altere a imagem de ghcr.io/open-webui/open-webui:main
para ghcr.io/open-webui/open-webui:cuda
e adicione o seguinte à definição do serviço no arquivo docker-compose.yml
:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
Essa configuração garante que sua aplicação possa utilizar recursos de GPU quando disponíveis.
Usando Podman
Podman é um motor de contêiner sem daemon para desenvolver, gerenciar e executar contêineres OCI.
Comandos Básicos
-
Executar um Contêiner:
podman run -d --name openwebui -p 3000:8080 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
-
Listar Contêineres em Execução:
podman ps
Rede com Podman
Se surgirem problemas de rede, utilize o slirp4netns para ajustar as configurações de rede do pod e permitir que o contêiner acesse as portas do seu computador.
Certifique-se de ter slirp4netns instalado, remova o contêiner anterior caso ele exista utilizando podman rm
, e inicie um novo contêiner com
podman run -d --network=slirp4netns:allow_host_loopback=true --name openwebui -p 3000:8080 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
Se você estiver usando Ollama diretamente do seu computador (não executando dentro de um contêiner),
Uma vez dentro do open-webui, navegue até Configurações > Configurações de Admin > Conexões e crie uma nova conexão de API do Ollama para http://10.0.2.2:[OLLAMA PORT]
. Por padrão, a porta do Ollama é 11434.
Consulte a documentação do Podman para configurações avançadas.
Docker Swarm
Este método de instalação requer conhecimento sobre Docker Swarm, pois utiliza um arquivo de stack para implantar 3 contêineres separados como serviços em um Docker Swarm.
Inclui contêineres isolados de ChromaDB, Ollama e OpenWebUI. Além disso, existem Variáveis de Ambiente pré-configuradas para ilustrar melhor a configuração.
Escolha o comando apropriado com base na sua configuração de hardware:
-
Antes de começar:
Diretórios para seus volumes precisam ser criados no host, ou você pode especificar um local ou volume personalizado.
O exemplo atual utiliza um diretório isolado
data
, que está dentro do mesmo diretório que odocker-stack.yaml
.-
Por exemplo:
mkdir -p data/open-webui data/chromadb data/ollama
-
-
Com suporte para GPU:
Docker-stack.yaml
version: 3.9
services:
openWebUI:
image: ghcr.io/open-webui/open-webui:main
depends_on:
- chromadb
- ollama
volumes:
- ./data/open-webui:/app/backend/data
environment:
DATA_DIR: /app/backend/data
OLLAMA_BASE_URLS: http://ollama:11434
CHROMA_HTTP_PORT: 8000
CHROMA_HTTP_HOST: chromadb
CHROMA_TENANT: default_tenant
VECTOR_DB: chroma
WEBUI_NAME: Awesome ChatBot
CORS_ALLOW_ORIGIN: "*" # Este é o padrão atual, precisará mudar antes de ir ao vivo
RAG_EMBEDDING_ENGINE: ollama
RAG_EMBEDDING_MODEL: nomic-embed-text-v1.5
RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE: "True"
ports:
- target: 8080
published: 8080
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
chromadb:
hostname: chromadb
image: chromadb/chroma:0.5.15
volumes:
- ./data/chromadb:/chroma/chroma
environment:
- IS_PERSISTENT=TRUE
- ALLOW_RESET=TRUE
- PERSIST_DIRECTORY=/chroma/chroma
ports:
- target: 8000
published: 8000
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
healthcheck:
test: ["CMD-SHELL", "curl localhost:8000/api/v1/heartbeat || exit 1"]
interval: 10s
retries: 2
start_period: 5s
timeout: 10s
ollama:
image: ollama/ollama:latest
hostname: ollama
ports:
- target: 11434
published: 11434
mode: overlay
deploy:
resources:
reservations:
generic_resources:
- discrete_resource_spec:
kind: "NVIDIA-GPU"
value: 0
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
volumes:
- ./data/ollama:/root/.ollama-
Requisitos adicionais:
- Certifique-se de que o CUDA está habilitado, siga as instruções para seu sistema operacional e GPU.
- Habilite o suporte a GPU no Docker, veja Nvidia Container Toolkit
- Siga o Guia aqui sobre como configurar o Docker Swarm para trabalhar com sua GPU
- Certifique-se de que o Recurso GPU está habilitado em
/etc/nvidia-container-runtime/config.toml
e habilite a publicidade do recurso GPU descomentandoswarm-resource = "DOCKER_RESOURCE_GPU"
. O daemon do docker deve ser reiniciado após atualizar esses arquivos em cada nó.
-
-
Com suporte para CPU:
Modifique o serviço Ollama dentro de
docker-stack.yaml
e remova as linhas parageneric_resources:
ollama:
image: ollama/ollama:latest
hostname: ollama
ports:
- target: 11434
published: 11434
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
volumes:
- ./data/ollama:/root/.ollama -
Implantar o Docker Stack:
docker stack deploy -c docker-stack.yaml -d super-awesome-ai
- uv
- Conda
- Venv
- Desenvolvimento
Instalação com uv
O gerenciador de runtime uv
garante uma gestão perfeita do ambiente Python para aplicativos como Open WebUI. Siga estes passos para começar:
1. Instalar uv
Escolha o comando de instalação apropriado para o seu sistema operacional:
-
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
-
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. Executar Open WebUI
Uma vez que o uv
está instalado, executar o Open WebUI é muito simples. Use o comando abaixo, certificando-se de configurar a variável de ambiente DATA_DIR
para evitar perda de dados. Exemplos de caminhos são fornecidos para cada plataforma:
-
macOS/Linux:
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve
-
Windows (PowerShell):
$env:DATA_DIR="C:\open-webui\data"; uvx --python 3.11 open-webui@latest serve
Atualizando com Python
Para atualizar seu pacote Open-WebUI instalado localmente para a versão mais recente usando pip
, siga estes passos simples:
pip install -U open-webui
A opção -U
(ou --upgrade
) garante que o pip
atualize o pacote para a versão mais recente disponível.
É isso! Seu pacote Open-WebUI está agora atualizado e pronto para usar.
Instale com Conda
-
Crie um Ambiente Conda:
conda create -n open-webui python=3.11
-
Ative o Ambiente:
conda activate open-webui
-
Instale o Open WebUI:
pip install open-webui
-
Inicie o Servidor:
open-webui serve
Atualizando com Python
Para atualizar seu pacote Open-WebUI instalado localmente para a versão mais recente usando pip
, siga estes passos simples:
pip install -U open-webui
A opção -U
(ou --upgrade
) garante que o pip
atualize o pacote para a versão mais recente disponível.
É isso! Seu pacote Open-WebUI está agora atualizado e pronto para usar.
Usando Ambientes Virtuais
Crie ambientes Python isolados usando venv
.
Etapas
-
Crie um Ambiente Virtual:
python3 -m venv venv
-
Ative o Ambiente Virtual:
-
Em Linux/macOS:
source venv/bin/activate
-
Em Windows:
venv\Scripts\activate
-
-
Instale o Open WebUI:
pip install open-webui
-
Inicie o Servidor:
open-webui serve
Atualizando com Python
Para atualizar seu pacote Open-WebUI instalado localmente para a versão mais recente usando pip
, siga estes passos simples:
pip install -U open-webui
A opção -U
(ou --upgrade
) garante que o pip
atualize o pacote para a versão mais recente disponível.
É isso! Seu pacote Open-WebUI está agora atualizado e pronto para usar.
Configuração de Desenvolvimento
Para desenvolvedores que desejam contribuir, confira o Guia de Desenvolvimento em Tópicos Avançados.
- Helm
- Kustomize
Configuração do Helm para Kubernetes
Helm ajuda você a gerenciar aplicativos Kubernetes.
Pré-requisitos
- O cluster Kubernetes está configurado.
- O Helm está instalado.
Passos
-
Adicionar o repositório Helm do Open WebUI:
helm repo add open-webui https://open-webui.github.io/helm-charts
helm repo update -
Instalar o chart do Open WebUI:
helm install openwebui open-webui/open-webui
-
Verificar a instalação:
kubectl get pods
Se você pretende escalar o Open WebUI utilizando múltiplos nós/pods/trabalhadores em um ambiente de cluster, é necessário configurar um banco de dados NoSQL de chave-valor. Existem algumas variáveis de ambiente que precisam ser configuradas com o mesmo valor para todas as instâncias de serviço, caso contrário, problemas de consistência, sessões defeituosas e outros problemas ocorrerão!
Acessar o WebUI
Configure o encaminhamento de porta ou balanceamento de carga para acessar o Open WebUI de fora do cluster.
Configuração do Kustomize para Kubernetes
O Kustomize permite personalizar as configurações YAML do Kubernetes.
Pré-requisitos
- O cluster do Kubernetes está configurado.
- O Kustomize está instalado.
Etapas
-
Clonar os Manifestos do Open WebUI:
git clone https://github.com/open-webui/k8s-manifests.git
cd k8s-manifests -
Aplicar os Manifestos:
kubectl apply -k .
-
Verificar a Instalação:
kubectl get pods
Se você pretende escalar o Open WebUI usando múltiplos nós/pods/workers em um ambiente clusterizado, é necessário configurar um banco de dados NoSQL chave-valor. Existem algumas variáveis de ambiente que precisam ser definidas com os mesmos valores para todas as instâncias de serviço. Caso contrário, ocorrerão problemas de consistência, sessões com falhas e outros problemas!
Acessar o WebUI
Configure o encaminhamento de porta ou balanceamento de carga para acessar o Open WebUI de fora do cluster.
Próximos Passos
Após a instalação, visite:
- http://localhost:3000 para acessar o Open WebUI.
- ou http://localhost:8080/ ao usar uma implantação Python.
Agora você está pronto para começar a usar o Open WebUI!
Usando Open WebUI com Ollama
Se estiver utilizando o Open WebUI com Ollama, certifique-se de verificar o nosso Guia de Início com Ollama para aprender a gerenciar suas instâncias Ollama com Open WebUI.
Junte-se à Comunidade
Precisa de ajuda? Tem dúvidas? Junte-se à nossa comunidade: