Índice do diárioDockup / nota de campo
Note / self-host-open-webui

Como fazer self-hosting do Open WebUI em 2026: endpoints de modelos, armazenamento e segurança

Um guia prático para fazer self-hosting do Open WebUI, abordando Docker, portas, dados persistentes, TLS, segurança, backups e as falhas que impedem o uso em produção. Em 2026.

Trate o Open WebUI como um sistema pequeno, não como uma imagem Docker. O objetivo do Open WebUI para o usuário é claro: uma interface de chat para endpoints de modelos compatíveis com OpenAI e modelos locais; a implantação só é aceitável quando você consegue conectar um endpoint de modelo remoto, transmitir uma resposta de chat, fazer upload de um documento, executar uma busca e reabrir a conversa depois de reiniciar.

Essa distinção identifica a falha que os operadores encontram após os testes locais: OLLAMA_BASE_URL aponta para localhost dentro do container do WebUI. Ela também torna o plano de backup e upgrade específico o suficiente para ser testado.

Escolha a topologia mínima viável para o Open WebUI

Comece pelo namespace de rede do Open WebUI: o listener web usa a porta 8080, não uma porta do host copiada de um tutorial para laptop. O contrato de rede do Open WebUI é uma API compatível com OpenAI ou um serviço Ollama acessível. Mantenha os endpoints privados no DNS interno, permita apenas as chamadas de saída necessárias e forneça ao Open WebUI uma credencial de serviço com escopo limitado.

Depois que o requisito for atendido, execute o cenário completo — conecte um endpoint de modelo remoto, transmita uma resposta de chat, faça upload de um documento, execute uma busca e reabra a conversa depois de reiniciar. Registre logs e métricas de latência do modelo, streams concorrentes, jobs de embeddings, tamanho dos arquivos enviados e crescimento do índice vetorial. Essas evidências se tornam a primeira arquitetura comprovadamente funcional e permitem testar migrações posteriores entre o compute da Dockup e um servidor anexado.

TLS é fácil; URLs geradas, não

A emissão de TLS é apenas metade da rota do Open WebUI. Torne o endpoint do modelo acessível pela rede do container. Envie o tráfego internamente para a porta 8080 e encaminhe o scheme externo para que as URLs geradas e os cookies seguros permaneçam consistentes.

Use o cenário completo do Open WebUI a partir de uma rede limpa, não apenas a página inicial. Um erro 502 ou uma falha de certificado pode ser isolado com a configuração automática de domínio e TLS. Se o tráfego chegar ao processo e OLLAMA_BASE_URL apontar para localhost dentro do container do WebUI, diagnostique essa condição no ponto em que ela ocorre, em vez de empilhar redirects.

Inicie o Open WebUI sem ocultar as partes móveis

Mantenha a invocação inicial do Open WebUI reproduzível o suficiente para ser revisada em um pull request.

docker run -d \
  --name open-webui \
  --restart unless-stopped \
  -p 127.0.0.1:8080:8080 \
  -v open-webui-data:/app/backend/data \
  -e WEBUI_SECRET_KEY=replace-with-a-long-random-value \
  ghcr.io/open-webui/open-webui:main

Não dependa de latest depois que houver dados reais. Registre o digest usado, o usuário do container e as permissões do mount. Acompanhe o log da aplicação durante um teste completo — conecte um endpoint de modelo remoto, transmita uma resposta de chat, faça upload de um documento, execute uma busca e reabra a conversa depois de reiniciar — e registre eventuais migrations antes de colocar a rota atrás de tráfego de produção.

Faça upgrade do Open WebUI sem adivinhações

Um health check ocioso diz pouco sobre o Open WebUI. Monitore a latência do modelo, streams concorrentes, jobs de embeddings, tamanho dos arquivos enviados e crescimento do índice vetorial; depois, alerte com base no sintoma percebido pelos usuários: a falha da ação “conectar um endpoint de modelo remoto, transmitir uma resposta de chat, fazer upload de um documento, executar uma busca e reabrir a conversa depois de reiniciar”. Mantenha o liveness local e barato; permita que o readiness informe migrations ou inicialização sem causar uma tempestade de restarts.

A área de maior risco no upgrade é o fato de que migrations de banco de dados, backends de busca e configurações de endpoints de modelos podem mudar de forma independente do frontend de chat. Leia as release notes, faça um snapshot do estado, implante a versão-alvo sobre uma cópia restaurada e repita o teste de aceitação. Se OLLAMA_BASE_URL apontar para localhost dentro do container do WebUI, correlacione a requisição do cliente com o primeiro log relevante da aplicação, em vez de apagar o estado ou adicionar redirects às cegas.

Cinco verificações mais fortes que a saúde do container

Não transforme o tráfego do primeiro usuário no teste de aceitação do Open WebUI. Prepare dados de exemplo inofensivos e execute a ação completa “conectar um endpoint de modelo remoto, transmitir uma resposta de chat, fazer upload de um documento, executar uma busca e reabrir a conversa depois de reiniciar”. Registre a URL pública exata, o resultado, a referência da imagem e o intervalo de logs associado à execução.

Substitua o container e repita o teste sem recriar os dados. Em seguida, faça a recuperação em um host vazio; a condição de recuperação é que contas, chats, arquivos e coleções de busca retornem e que a instância restaurada consiga acessar o mesmo endpoint de modelo. Observe a latência do modelo, streams concorrentes, jobs de embeddings, tamanho dos arquivos enviados e crescimento do índice vetorial em todas as execuções e defina um alerta com base na degradação da transação, não nas métricas do container ocioso.

Uma verificação final deve falhar de propósito: negue temporariamente à identidade de teste o acesso a uma API compatível com OpenAI ou a um serviço Ollama acessível. Confirme que a mensagem resultante do Open WebUI identifica o limite relevante, em vez de iniciar a exclusão de dados ou um restart infinito. Restaure a condição válida e confirme que a mesma transação de exemplo é concluída com sucesso. Mantenha esse exercício curto no checklist de release.

Encontre todos os bytes persistentes do Open WebUI

Para o Open WebUI, a segurança em redeploy começa com usuários, chats, arquivos, dados vetoriais e configuração da aplicação. Faça o mount de /app/backend/data antes do bootstrap, grave dados de exemplo inofensivos e substitua o container para provar que esse caminho é realmente persistente. Teste o caminho substituindo o container enquanto os dados de exemplo inofensivos ainda existirem; isso revela mounts apontados uma pasta acima ou abaixo do local correto.

Em seguida, teste o disaster recovery em um host vazio. Quando necessário, use uma exportação do banco de dados consistente com a aplicação e confirme que contas, chats, arquivos e coleções de busca retornam e que a instância restaurada consegue acessar o mesmo endpoint de modelo. O guia de backup de banco de dados com restore testado oferece um objetivo mais rigoroso do que simplesmente verificar se um arquivo de archive foi criado.

Não dê ao Open WebUI acesso ao host inteiro

Uma implantação segura do Open WebUI começa pela remoção de autoridade. Evite deixar o cadastro aberto ou usar uma WEBUI_SECRET_KEY efêmera; em vez disso, desative o cadastro público, a menos que ele seja intencional, mantenha um secret estável do WebUI e limite a administração dos modelos a usuários confiáveis.

Trate WEBUI_SECRET_KEY de acordo com sua função no Open WebUI: mantenha valores sensíveis fora do Git, documente os efeitos da rotação e nunca substitua um exemplo público em produção. Restrinja as rotas administrativas, use DNS privado para as dependências e revise cada bind mount. Quando os logs forem enviados para um serviço central, filtre secrets e conteúdo privado antes que deixem o servidor.

Use a Dockup para a camada de plataforma

A Dockup elimina o trabalho manual de reverse proxy e gerenciamento do ciclo de vida em torno do Open WebUI. O serviço recebe uma rota HTTPS estável para a porta 8080, configuração injetada e armazenamento persistente durante as substituições. Um servidor do cliente anexado segue o mesmo modelo do compute hospedado na Dockup.

Depois do lançamento, atenda ao contrato da aplicação: torne o endpoint do modelo acessível pela rede do container, conecte e teste uma API compatível com OpenAI ou um serviço Ollama acessível e execute esta validação: conecte um endpoint de modelo remoto, transmita uma resposta de chat, faça upload de um documento, execute uma busca e reabra a conversa depois de reiniciar. Isso mantém a experiência de um clique útil sem ocultar os detalhes que tornam o Open WebUI recuperável e seguro.

Perguntas frequentes

O que o Open WebUI precisa para uma implantação em produção?

Direcione o container do Open WebUI, na porta 8080, por meio de uma única origem HTTPS. O requisito de rede de suporte é uma API compatível com OpenAI ou um serviço Ollama acessível. Não considere o Open WebUI pronto até conseguir conectar um endpoint de modelo remoto, transmitir uma resposta de chat, fazer upload de um documento, executar uma busca e reabrir a conversa depois de reiniciar.

Quais dados do Open WebUI devem fazer parte de um backup?

Mantenha /app/backend/data persistente e inclua usuários, chats, arquivos, dados vetoriais e configuração da aplicação no mesmo manifesto de recuperação. Um restore limpo do Open WebUI só é bem-sucedido quando contas, chats, arquivos e coleções de busca retornam e a instância restaurada consegue acessar o mesmo endpoint de modelo.

O Open WebUI precisa de HTTPS atrás de um reverse proxy?

Use HTTPS para a origem pública do Open WebUI e mantenha a porta 8080 na rota interna. Aplique corretamente a configuração do Open WebUI: torne o endpoint do modelo acessível pela rede do container. No Open WebUI, o HTTPS protege credenciais ou conteúdo dos usuários durante o trânsito e mantém consistente o comportamento do cliente sensível à origem.

Como testar um upgrade do Open WebUI?

Restaure o estado atual do Open WebUI em uma implantação isolada, aplique a versão candidata e repita sua transação de aceitação. Preste atenção especial porque migrations de banco de dados, backends de busca e configurações de endpoints de modelos podem mudar de forma independente do frontend de chat. Mantenha a imagem anterior do Open WebUI até entender os limites de migração de dados e rollback.