~/ / Artigos sobre IA / LLMs locais em uma VPS / Conectar o Dify ao Ollama no seu próprio VPS
Conectar o Dify ao Ollama no seu próprio VPS
O Dify é uma plataforma para criar apps de IA que você pode executar no seu próprio servidor. O Ollama executa o modelo. Este artigo conecta os dois em um único VPS: qual deve ser o tamanho do servidor, como iniciar o Dify, quais campos o plugin do Ollama pede e por que o endereço que funciona em um notebook pode falhar dentro do Docker. Ele também diz onde a documentação termina, para que você saiba quais partes precisa testar por conta própria.
Publicado: · 7 min de leitura · Fatos conferidos na documentação e nos repositórios oficiais em 2026-10-27. O Dify muda rápido, então leia as notas de versão da versão que você instalar.
O que você precisa antes de começar
O guia de auto-hospedagem do Dify lista o mínimo para o próprio Dify. O modelo precisa de memória própria além disso, então os dois valores têm de ser somados. O estimador abaixo dá um valor para o modelo. Somá-lo ao mínimo do Dify é uma regra prática nossa, não uma afirmação da documentação do Dify.
| Item | O que diz o guia do Dify |
|---|---|
| CPU | CPU >= 2 Core |
| Memória | RAM >= 4 GiB |
| Docker Compose | O Dify exige Docker Compose 2.24.0 ou posterior. |
| Git, curl, jq | O comando de clonagem abaixo usa git, curl e jq. |
Experimente: Local LLM Memory Estimator
Estimativa
- Pesos do modelo
- 4.84 GiB
- KV cache
- 0.56 GiB
- Reserva
- 1.00 GiB
- Total
- 6.41 GiB (6.88 GB)
- Menor tamanho de memória comum que o comporta
- 8 GiB
Esta é uma estimativa. Ela não inclui os buffers de computação do runtime e supõe que todas as camadas têm o mesmo formato de KV. Meça uma execução real antes de escolher um plano.
Dados do modelo verificados em 2026-10-26.
Fontes: Ollama library · Configuração do modelo (config.json) · Ollama FAQ
Tudo é executado no seu navegador. Nada é enviado.
Passo 1: iniciar o Dify com Docker Compose
Estes são os comandos do guia de auto-hospedagem do Dify. O primeiro baixa do GitHub a tag da versão mais recente, para que você comece de uma versão lançada e não de uma branch inacabada. Na época da nossa verificação, a versão mais recente era a 1.18.0 (publicada em 2026-10-23).
| Passo | Comando |
|---|---|
| Clonar a versão mais recente | git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git |
| Ir para a pasta do Docker | cd dify/docker |
| Copiar o arquivo de configurações | cp .env.example .env |
| Criar um token para o backend do agente | openssl rand -base64 32 |
| Iniciar o Dify | docker compose up -d |
Coloque o token que o openssl imprimir no .env como DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN antes de iniciar. O guia diz que o backend do agente e o seu sandbox não iniciam sem ele.
Passo 2: criar a conta de administrador
Depois que os contêineres estiverem em execução, o guia diz para abrir primeiro a página de inicialização do administrador: http://your_server_ip/install em um servidor, ou http://localhost/install no seu próprio computador. Crie a conta ali e depois faça login em http://your_server_ip.
A documentação não diz quem pode acessar essa página antes de a conta existir. Nossa recomendação, não uma afirmação dos documentos: crie a conta logo depois de iniciar e leia o artigo sobre como proteger um servidor antes de deixar o Dify aberto para a internet.
Passo 3: adicionar o plugin do Ollama e o modelo
Na documentação atual do Dify, os provedores de modelos são instalados em Integrations > Model Provider ou no Marketplace, e depois você clica em Setup no cartão do provedor. Os nomes dos menus mudam entre versões, então procure a lista de provedores na sua versão. A página do plugin do Ollama no Marketplace (versão 1.0.3 na época da nossa verificação) diz para instalar o Ollama, executar um modelo e confirmar que a API local dele funciona antes de adicioná-lo ao Dify.
Estes são os campos do plugin, retirados do README e da página dele no Marketplace.
| Campo | O que informar |
|---|---|
| Model Name | O modelo do Ollama, por exemplo gemma3, qwen3, deepseek-r1 ou gpt-oss. |
| Base URL | A raiz do host do Ollama, http://<your-ollama-host>:11434 para um Ollama local. Não inclua /api, porque o plugin acrescenta /api/chat, /api/generate e /api/embed por conta própria. |
| API Key | Opcional para um Ollama local. Obrigatória apenas para o Ollama na nuvem. |
| Model Type | Chat para conversa, chamada de ferramentas e visão. A página do Marketplace também lista embeddings de texto e rerank. |
| Model Context Length | Use o mesmo valor da janela de contexto do modelo. |
| Upper bound for max tokens | O maior valor de max tokens (num_predict) que o Dify permite. |
| Vision support / Function call support | Escolha Yes apenas para um modelo que ofereça esse suporte. |
| Attach Dify app_id as request headers | Desativado por padrão. Quando ativado, o Dify acrescenta os cabeçalhos X-Dify-App-Id e X-Dify-Source às suas chamadas ao Ollama. O Ollama não os usa. |
Para saber quais modelos aceitam visão e chamada de ferramentas, veja o artigo sobre o que os modelos da biblioteca do Ollama sabem fazer.
Passo 4: o endereço que funciona de dentro do Docker
O Dify roda em contêineres, e o Ollama roda no próprio servidor. Dentro de um contêiner, localhost é o contêiner, não o servidor. O README do plugin diz: use um endereço de host que o contêiner do Dify consiga alcançar, como http://host.docker.internal:11434 ou um endereço IP da LAN.
A documentação do Docker explica o nome. A opção --add-host aceita um valor especial, host-gateway, que resolve para o endereço IP interno do host, e é convencional usar host.docker.internal para esse nome. Ela também diz que o Docker Desktop resolve o nome automaticamente. O exemplo na documentação é --add-host host.docker.internal=host-gateway.
| O que verificamos | Resultado |
|---|---|
| O docker-compose.yaml do Dify define host.docker.internal? | Não. Não encontramos host.docker.internal nem nenhuma entrada extra_hosts no arquivo da branch main. |
| A referência do Docker Compose descreve extra_hosts? | Sim, como mapeamentos de nome de host no formato HOSTNAME=IP que vão para o /etc/hosts. A página que lemos não menciona host-gateway para extra_hosts. |
| O Ollama escuta em endereços além de 127.0.0.1? | Não por padrão. O FAQ do Ollama diz que ele se vincula a 127.0.0.1 na porta 11434 e que a variável de ambiente OLLAMA_HOST muda o endereço de vinculação. |
Nossa leitura, não uma afirmação dos documentos: em um servidor Linux você mesmo acrescenta o nome do host, ou usa o endereço do servidor, e talvez também precise mudar o endereço em que o Ollama escuta. Não testamos essa combinação. Se você mudar OLLAMA_HOST, a porta 11434 pode ser acessada a partir de outras máquinas, e o Ollama não tem senha própria, então feche essa porta para o exterior no firewall. Os artigos sobre como instalar o Ollama e sobre como colocar o nginx na frente dele descrevem as configurações.
Passo 5: embeddings e o que o plugin não faz
A página do plugin no Marketplace diz que ele oferece suporte a streaming, thinking, visão, chamada de ferramentas e embeddings de texto, e que os vetores de embedding são L2-normalized. Para embeddings, você adiciona um segundo modelo do tipo embeddings de texto, com um modelo de embedding da biblioteca do Ollama.
Ela também lista o que não está incluído. O Ollama não tem um endpoint nativo de rerank, então um modelo de rerank precisa de um serviço de rerank compatível com a OpenAI. A busca na web também não vem incluída. Ela exige um plugin de ferramenta separado do Dify ou um fluxo de trabalho externo.
Se a conexão falhar
- Execute ollama ps e verifique se o modelo está carregado, e abra http://127.0.0.1:11434 no servidor para ver se o Ollama responde.
- Confira a Base URL. Ela é a raiz do host, com a porta e sem /api.
- Verifique se os contêineres do Dify conseguem alcançar o endereço. A documentação do Dify diz que as requisições de saída dele passam por um proxy que bloqueia faixas de IP internas e privadas. A página cita os nós HTTP e o download de imagens, e não diz se as requisições dos provedores de modelos seguem o mesmo caminho. Se você usa um endereço privado e ele é recusado, este é um lugar para investigar.
- Leia os logs dos contêineres com docker compose logs. Não encontramos na documentação uma lista de mensagens de erro.
Manter o Dify atualizado
O guia diz que os passos de atualização variam entre versões, então siga o guia de atualização da versão para a qual você vai migrar, que fica na página Releases do Dify. Depois de uma atualização, compare o .env.example com o seu .env para ver variáveis novas ou alteradas. Se você alterou o docker-compose.yaml, aplique suas alterações de novo no arquivo da nova versão, porque uma versão pode acrescentar serviços que são obrigatórios.
Fontes
- Dify documentation: Deploy with Docker Compose
- Dify documentation: Model providers
- Dify documentation: Environment variables
- Dify official plugins: Ollama plugin README
- Dify Marketplace: Ollama plugin
- Dify repository: docker-compose.yaml
- Docker documentation: docker container run (--add-host)
- Docker documentation: Compose services (extra_hosts)
- Ollama documentation: FAQ
Leia a seguir
- Rodar um LLM local sem um PC caro: guia para iniciantes sobre como usar uma VPSSem um PC potente? Alugue uma VPS e rode um pequeno LLM local pelo navegador: seis passos, da estimativa de memória até uma tela de chat protegida, com os limites ditos com honestidade.
- nginx na frente do Ollama: autenticação básica, HTTPS e configurações para streamingAcesse o Ollama de fora com segurança: nginx como proxy, autenticação básica, HTTPS, configurações de streaming e de timeout e uma regra de firewall, a partir da documentação oficial.
- Open WebUI em uma VPS: rode-o no Docker e conecte-o ao OllamaRode o Open WebUI com Docker e conecte-o ao Ollama no seu próprio servidor: os comandos, a primeira conta, os dois tipos de conexão e como atualizar.
- Chamando um modelo local pelo seu código: saídas estruturadas e a API compatível com OpenAI no OllamaRestrinja a saída de um modelo local com um JSON Schema e chame o Ollama a partir de clientes no estilo OpenAI: o que a documentação oficial diz e o que não é compatível.