
Um escritor da XDA-Developers passou um fim de semana conectando seu servidor Docker a uma pilha de LLMs locais e saiu com uma estação de trabalho que agora se gerencia. A lição que o artigo faz silenciosamente é a que importa: Docker é a unidade certa de trabalho para IA local. Puxe uma imagem de servidor de modelos, puxe uma UI, cole-as com um arquivo compose, e tudo é reproduzível em máquinas e reinicializações. Não há mais arqueologia de virtualenv Python após a próxima atualização CUDA.
Testamos os melhores aplicativos para fluxos de trabalho de LLM auto-hospedados que se encaixam nesse padrão. Cada escolha nesta lista vem com uma imagem oficial, mantém o estado através de um volume nomeado e se encaixa em um arquivo compose ao lado de Postgres, Redis e um proxy reverso sem surpresas. Avaliamos as coisas chatas: quão rápido um docker compose up fresco chega a um chat funcional, quão bem o passthrough de GPU funciona, se a imagem funciona bem com Docker sem root e Podman, e quanto cada contêiner vaza quando um modelo falha.
O que procurar em uma pilha LLM auto-hospedada
Alguns traços separam os contêineres que obtêm um lugar permanente em seu arquivo compose daqueles que são arrancados após uma semana:
- Compatibilidade com OpenAI-API. O formato de fio de facto. Se um contêiner falar isso, todo cliente existente (extensão de editor, framework de agente, notebook) funciona sem mudanças de código.
- Imagem Docker oficial. Imagens construídas pelo mantenedor são reconstruídas em divulgações de CVE e etiquetadas contra versões upstream. Forks comunitários ficam para trás e derivam.
- Passthrough de GPU. NVIDIA Container Toolkit no Linux, ROCm onde suportado, Apple Silicon via inferência de host. As imagens mais fortes documentam a invocação exata de
--gpus alle vêm com padrões sensatos. - Convenções de volume persistente. Modelos são grandes. Um ponto de montagem previsível (
/root/.ollama,/app/backend/data) mantém seudocker-compose.ymlcurto e seus backups simples. - OpenTelemetry e logging estruturado. Qualquer coisa que rodar em produção precisa de rastreamento e logs JSON prontos, não apenas conversa em stdout.
- Autenticação multiusuário. Um home lab supera o modo de um único usuário no momento em que uma segunda pessoa quer entrar. SSO, OIDC ou pelo menos hash real de senha importa.
Comparação rápida
| Aplicativo | Camada | Plano grátis | Tier pago | Imagem Docker |
|---|---|---|---|---|
| Ollama | Servidor de modelos | Sim (open source) | Nenhum | ollama/ollama |
| Open WebUI | Chat UI | Sim (open source) | Nenhum | ghcr.io/open-webui/open-webui |
| LocalAI | Servidor de modelos (multimodal) | Sim (open source) | Nenhum | localai/localai |
| LiteLLM | Gateway / proxy | Sim (open source) | Enterprise | ghcr.io/berriai/litellm |
| vLLM | Inferência de produção | Sim (open source) | Nenhum | vllm/vllm-openai |
| Text Generation WebUI | Interface do Tinkerer | Sim (open source) | Nenhum | atinoda/text-generation-webui |
| AnythingLLM | Espaço de trabalho full-stack | Sim (open source) | Plano hospedado | mintplexlabs/anythingllm |
Os 7 melhores aplicativos para LLM auto-hospedado com Docker em 2026
1. Ollama — melhor servidor de modelos para home lab
Ollama é o mais próximo que a categoria tem de “Docker para LLMs”. A imagem oficial é pequena, o daemon expõe uma API compatível com OpenAI em localhost:11434, e um único docker exec ollama ollama pull llama3.2 é tudo o que é necessário para adicionar um modelo. A biblioteca cobre 4500+ compilações marcadas nas famílias populares com quantos padrão sensatos, e a história do GPU está bem documentada para hosts NVIDIA e AMD.
Onde fica aquém: Ollama é um runtime, não um aplicativo de chat. A imagem não vem com UI, então você a emparelha com Open WebUI ou outro frontend. O formato Modelfile é poderoso, mas introduz uma etapa de construção quando você quer um prompt do sistema personalizado.
Preços:
- Grátis: open-source, sem taxa de licença
- Pago: nenhum
Plataformas: Contêiner Linux; funciona em hosts Windows, macOS e Linux via Docker.
Baixar: ollama.com
Conclusão: Escolha Ollama como a camada de servidor de modelos de qualquer pilha auto-hospedada. Nada mais é tão fácil de encaixar em um arquivo compose.
2. Open WebUI — melhor interface de chat para colocar em frente a Ollama
Open WebUI é o frontend que a comunidade Ollama padronizou. O contêiner vem com uma interface estilo ChatGPT polida com contas multiusuário, troca de modelo por conversa, RAG sobre documentos carregados, suporte a ferramentas MCP e um sistema de extensões que adiciona geração de imagens, pesquisa na web e interpretação de código. A imagem oficial funciona pronta para uso atrás de um proxy reverso com HTTPS e OIDC.
Onde fica aquém: Presume um backend separado, então nunca funciona sozinho. A superfície de configurações é ampla, o que pode sobrecarregar administradores iniciantes que só querem uma caixa de chat.
Preços:
- Grátis: open-source, sem taxa de licença
- Pago: nenhum
Plataformas: Contêiner Linux; funciona em hosts Windows, macOS e Linux via Docker.
Baixar: openwebui.com
Conclusão: Escolha Open WebUI como a camada de chat-UX para configuração doméstica ou de pequena equipe. É a interface baseada em navegador mais limpa da categoria.
3. LocalAI — melhor drop-in multimodal para OpenAI
LocalAI é um drop-in replacement para a API OpenAI que lida com texto, imagem, áudio e embeddings através de um único endpoint. Um único contêiner pode servir uma conclusão de chat Llama, uma transcrição Whisper, uma imagem Stable Diffusion e uma chamada de sentence-embedding sem malabarismo com serviços separados. Os pacotes de modelos são instalados com uma linha, e o projeto vem com imagens GPU para CUDA e ROCm.
Onde fica aquém: A amplitude custa throughput. Uma carga de trabalho que marreta uma modalidade geralmente funciona mais rápido em um servidor dedicado (vLLM para texto, um contêiner de difusão separado para imagem). A configuração é pesada em YAML, o que faz os iniciantes tropeçarem.
Preços:
- Grátis: open-source, sem taxa de licença
- Pago: nenhum
Plataformas: Contêiner Linux; funciona em hosts Windows, macOS e Linux via Docker.
Baixar: localai.io
Conclusão: Escolha LocalAI quando um contêiner precisa servir múltiplas modalidades atrás de uma única URL compatível com OpenAI.
4. LiteLLM — melhor gateway para pilha mista
LiteLLM é um proxy leve que mapeia 100+ provedores (OpenAI, Anthropic, Vertex, Bedrock, Ollama, vLLM, LocalAI) para uma única API compatível com OpenAI. Coloque-o na frente de seus backends locais e chaves API remotas, aponte cada cliente para o proxy, e você obtém logging unificado, orçamentos, chaves por usuário, limites de taxa e regras de roteamento em um único lugar. O contêiner é pequeno e a UI de administração é competente.
Onde fica aquém: A imagem grátis tem tudo que a maioria dos home labs precisa, mas SSO, logs de auditoria e roteamento avançado estão atrás do tier Enterprise. A configuração via config.yaml cresce rapidamente uma vez que você adiciona mais de um par de modelos.
Preços:
- Grátis: self-host open-source
- Pago: Plano Enterprise com SSO, logging de auditoria e suporte
Plataformas: Contêiner Linux; funciona em hosts Windows, macOS e Linux via Docker.
Baixar: litellm.ai
Conclusão: Escolha LiteLLM no momento em que sua pilha tem mais de dois backends. O padrão de gateway é o que mantém o resto do sistema são.
5. vLLM — melhor mecanismo de inferência para carga de produção
vLLM é o servidor de inferência de alto rendimento que a maioria das equipes busca quando o tráfego fica real. PagedAttention e batching contínuo empurram tokens por segundo muito além de servidores ingênuos no mesmo hardware, e a API compatível com OpenAI significa que os clientes existentes funcionam sem alterações. A imagem oficial vllm/vllm-openai é a que você deve puxar, e o projeto documenta as combinações exatas de driver NVIDIA e CUDA que funcionam.
Onde fica aquém: A imagem é grande. O servidor espera uma GPU NVIDIA com VRAM razoável, então não é adequado para laptops ou hosts apenas CPU. A configuração se inclina para “engenheiro de produção” em vez de “entusiasta de fim de semana”.
Preços:
- Grátis: open-source, sem taxa de licença
- Pago: nenhum
Plataformas: Contêiner Linux; funciona em hosts Windows, macOS e Linux via Docker com NVIDIA Container Toolkit.
Baixar: vllm.ai
Conclusão: Escolha vLLM como o servidor de modelos quando concorrência e throughput importam mais que tempo de configuração de cinco minutos.
6. Text Generation WebUI — melhor playground para entusiastas
Text Generation WebUI (o projeto que a maioria das pessoas ainda chama de oobabooga) é a opção de tudo incluído. O contêiner agrupa múltiplos backends (Transformers, llama.cpp, ExLlamaV2), todos os samplers sob o sol, cartões de personagem, ganchos de treinamento LoRA e um sistema de extensões que adiciona RAG e voz. Pesquisadores que se preocupam com ajuste de sampler, decodificação contrastiva ou formatos de quant obscuros pousam aqui.
Onde fica aquém: A imagem oficial é maior que o resto, a dança de dependência de primeira inicialização demora mais e a superfície da UI é densa. Nada disso importa se você veio pelos botões, mas importa se você só quer uma caixa de chat.
Preços:
- Grátis: open-source, sem taxa de licença
- Pago: nenhum
Plataformas: Contêiner Linux; funciona em hosts Windows, macOS e Linux via Docker.
Baixar: github.com/oobabooga/text-generation-webui
Conclusão: Escolha Text Generation WebUI quando você quer cada dial exposto e uma noite para brincar com eles.
7. AnythingLLM — melhor ferramenta de espaço de trabalho de um contêiner
AnythingLLM é a rara escolha full-stack: uma imagem, um volume, e o resultado é um espaço de trabalho multiusuário com RAG, agentes, permissões de escopo de espaço de trabalho e um seletor de modelo traga-seu-próprio-LLM que tem como alvo Ollama, LocalAI, vLLM, OpenAI e Anthropic. O contêiner lida com banco de dados vetorial, pipeline de ingestão de documentos, UI de chat e tempo de execução de agente em um único processo. Para uma equipe que quer um “ChatGPT interno com documentos” sem montar quatro serviços, este é o caminho mais curto.
Onde fica aquém: A abordagem tudo-em-um troca flexibilidade por simplicidade. Cargas de trabalho RAG pesadas se beneficiam de um banco de dados vetorial dedicado, e números muito grandes de usuários crescerão além da pilha agrupada. Um plano hospedado existe para equipes que preferem não operar o contêiner.
Preços:
- Grátis: self-host open-source
- Pago: plano hospedado com atualizações gerenciadas e armazenamento
Plataformas: Contêiner Linux; funciona em hosts Windows, macOS e Linux via Docker.
Baixar: anythingllm.com
Conclusão: Escolha AnythingLLM quando uma equipe precisa de um ChatGPT privado com documentos e “um contêiner” é o orçamento operacional.
Como escolher o correto
Se você executa um home lab solo e quer a pilha mais simples, execute Ollama mais Open WebUI atrás de um proxy reverso. Dois contêineres, uma rede, chat completo com documentos.
Se sua equipe tem mais de dois backends ou um orçamento que você realmente quer aplicar, coloque LiteLLM na frente de tudo e aponte os clientes para o proxy.
Se a carga de trabalho é de nível de produção (concorrência real, alvos de latência real), sirva texto com vLLM atrás de LiteLLM, e deixe Ollama ou LocalAI lidar com máquinas de desenvolvedor.
Se a pilha precisa de mais que texto (transcrição, geração de imagens, embeddings) em um endpoint, LocalAI mantém a área de superfície pequena.
Se o objetivo é “ChatGPT interno da equipe com nossos documentos” e o orçamento operacional é um contêiner, AnythingLLM é a linha mais curta entre A e B.
Se você veio pelos botões e uma noite de experimentação de sampler, Text Generation WebUI é construída para você.
FAQ
Preciso de uma GPU para auto-hospedar um LLM com Docker?
Para inferência confortável em modelos 7B e 14B, sim. Contêineres apenas CPU funcionam para quants menores e uso casual. Hosts NVIDIA são o caminho mais suave; suporte AMD ROCm é real mas mais estreito; Apple Silicon geralmente executa o modelo no host (via Ollama ou LM Studio) em vez de dentro do contêiner.
Qual é o arquivo compose mínimo para um LLM auto-hospedado funcional?
Dois serviços: um contêiner Ollama com um volume nomeado montado em /root/.ollama e uma porta publicada em 11434, e um contêiner Open WebUI com OLLAMA_BASE_URL definido para o serviço Ollama. Tudo se encaixa em cerca de 25 linhas de YAML.
Qual contêiner devo colocar na frente de todos os outros?
Um gateway como LiteLLM, atrás de um proxy reverso (Caddy, Traefik ou nginx) que lida com HTTPS. Os clientes atingem o proxy com uma URL base e uma chave. LiteLLM roteia para Ollama, vLLM ou qualquer provedor remoto baseado no nome do modelo.
Posso compartilhar um LLM auto-hospedado com várias pessoas?
Sim. Open WebUI e AnythingLLM ambos suportam contas multiusuário com controle de acesso baseado em papéis e permissões por espaço de trabalho. Emparelhe um deles com LiteLLM se você também quiser chaves API por usuário para acesso programático.
Como fazer os modelos e o histórico de chat persistirem entre reinicializações de contêiner?
Monte volumes nomeados nos caminhos documentados: /root/.ollama para modelos Ollama, /app/backend/data para estado Open WebUI, /app/server/storage para AnythingLLM. Faça backup desses volumes como qualquer outro diretório de dados; os arquivos de modelo são a peça maior por uma ordem de magnitude.
Auto-hospedar um LLM com Docker é realmente mais barato que usar uma API?
Depende do volume. Uma RTX 3090 usada mais eletricidade vence o preço da API hospedada uma vez que sua equipe faz mais de algumas centenas de milhares de tokens por dia. Abaixo disso, APIs hospedadas geralmente são mais baratas que o hardware amortizado. Auto-hospedagem ganha em privacidade e previsibilidade antes de ganhar em custo.