Resposta curta: suba o n8n e o Ollama no mesmo docker compose, baixe um modelo com ollama pull e, no n8n, crie a credencial Ollama com a Base URL http://ollama:11434 (o nome do serviço, não localhost). Depois é só ligar o nó Ollama Chat Model a um Basic LLM Chain ou a um AI Agent.
Rodar a IA no próprio servidor tem duas vantagens claras: nada sai da sua máquina e não existe cobrança por token. O custo vai para a VPS, que precisa de RAM e CPU para o modelo. Abaixo eu monto tudo do zero e mostro um workflow que recebe um texto por webhook e devolve um resumo.
Quanto de máquina o Ollama pede
Sem GPU, o Ollama roda na CPU, e o que manda é a RAM. Um modelo pequeno como o qwen2.5:0.5b (cerca de 400 MB em disco) deixa o container do Ollama em torno de 650 MB de memória com o modelo carregado; o n8n fica em torno de 400 MB. Some o sistema e o Docker, e uma VPS de 4 GB roda esse combo com folga.
Modelos maiores pedem bem mais: um modelo de 3B parâmetros quantizado ocupa uns 2 GB, e um de 7–8B, uns 5 GB só de modelo. Para esses, pense em 8 GB de RAM ou mais. Veja os requisitos de RAM e CPU do n8n e use a calculadora somando a memória do modelo em RAM extra.
ollama/ollama ocupa cerca de 5,6 GB, porque já traz as bibliotecas de GPU. Some o tamanho dos modelos que você baixar.
O docker-compose.yml
Numa pasta nova (por exemplo ~/n8n-ia), crie o docker-compose.yml:
services:
n8n:
image: docker.n8n.io/n8nio/n8n:stable
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- GENERIC_TIMEZONE=America/Sao_Paulo
- TZ=America/Sao_Paulo
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- ollama
ollama:
image: ollama/ollama:latest
restart: unless-stopped
volumes:
- ollama_data:/root/.ollama
environment:
- OLLAMA_KEEP_ALIVE=24h
volumes:
n8n_data:
ollama_data:
Repare em dois detalhes:
- O Ollama não publica porta. Ele não tem autenticação, então não exponha a
11434na internet. O n8n chega nele pela rede interna do Compose, pelo nome do serviçoollama. OLLAMA_KEEP_ALIVE=24hmantém o modelo carregado na memória. O padrão descarrega depois de 5 minutos sem uso, e a primeira chamada seguinte demora mais porque o modelo volta para a RAM.
O n8n está preso a 127.0.0.1 para você colocar HTTPS na frente. Se ainda não tem isso, siga o n8n com Docker Compose e HTTPS e acrescente só o serviço ollama e o volume ollama_data no seu arquivo.
Suba tudo:
docker compose up -d
Baixe um modelo
docker compose exec ollama ollama pull qwen2.5:0.5b
docker compose exec ollama ollama list
O qwen2.5:0.5b é bom para validar a instalação, mas é pequeno demais para tarefas sérias: ele erra fatos e às vezes foge da pergunta. Para uso real, troque por um modelo maior da biblioteca do Ollama, como qwen2.5:3b ou llama3.2:3b, se a RAM permitir. O comando é o mesmo, só muda o nome.
Para conferir se o Ollama responde, chame a API de dentro do container do n8n:
docker compose exec n8n wget -qO- \
--post-data='{"model":"qwen2.5:0.5b","prompt":"Diga oi","stream":false}' \
http://ollama:11434/api/generate
Crie a credencial do Ollama no n8n
- No n8n, abra Credentials → Create credential (ou Overview → Create → Credential) e escolha Ollama.
- Em Base URL, coloque
http://ollama:11434. - Deixe API Key vazia (ela só serve para Ollama atrás de proxy com autenticação, como o Open WebUI).
- Clique em Save. O n8n testa a conexão na hora e avisa se ela funcionou.
O erro mais comum é deixar o padrão http://localhost:11434. Dentro do container, localhost é o próprio n8n, e não o Ollama, então a conexão é recusada. A documentação do n8n resume os casos:
- n8n e Ollama no mesmo Compose:
http://ollama:11434 - Só o n8n no Docker, Ollama direto no host:
http://host.docker.internal:11434 - Nenhum dos dois no Docker:
http://127.0.0.1:11434
No segundo caso, no Linux, acrescente extra_hosts: ["host.docker.internal:host-gateway"] ao serviço do n8n e faça o Ollama escutar em 0.0.0.0.
Monte o workflow
Um exemplo simples: receber um texto por webhook e devolver um resumo.
- Adicione um nó Webhook: método
POST, pathresumoe, em Respond, a opção When Last Node Finishes. - Ligue nele um Basic LLM Chain. Em Source for Prompt, escolha Define below e escreva o prompt no modo Expression:
Resuma em uma frase, em português: {{ $json.body.texto }} - No conector Model do Basic LLM Chain, adicione Ollama Chat Model, escolha a credencial criada e o modelo
qwen2.5:0.5b(a lista vem do próprio Ollama). - Salve e publique o workflow.
Para testar, rode na VPS:
curl -X POST http://127.0.0.1:5678/webhook/resumo \
-H 'Content-Type: application/json' \
-d '{"texto":"O n8n automatiza tarefas e roda no seu próprio servidor."}'
A resposta vem em JSON, no campo text. Com o modelo de 0.5B numa CPU compartilhada, a resposta levou uns 15 a 20 segundos; modelos maiores são mais lentos. Se quem chama o webhook tem limite de tempo, troque Respond para Immediately e entregue o resultado depois, por exemplo com um nó HTTP Request ou mensagem.
O mesmo Ollama Chat Model encaixa no AI Agent, que usa ferramentas. Para agente, escolha um modelo com suporte a tools na biblioteca do Ollama: modelos minúsculos costumam falhar nisso. Para RAG, existe o nó Embeddings Ollama, que usa a mesma credencial.
Atualizar e fazer backup
- Atualize os dois com
docker compose pulledocker compose up -d. Antes, siga o backup do n8n; veja também como atualizar o n8n. - Os modelos ficam no volume
ollama_data. Não precisam de backup: dá para baixar de novo comollama pull.
Onde hospedar
Para IA local, priorize RAM. Um plano com 8 GB, como o Hostinger KVM 2 (2 vCPU, 8 GB), tem memória de sobra para o n8n mais um modelo de 3B parâmetros, que ocupa cerca de 2 GB ver plano ↗. Compare preços em reais em quanto custa hospedar n8n e veja a melhor VPS no Brasil para n8n.
Perguntas frequentes
Qual Base URL usar na credencial do Ollama no n8n?
Com n8n e Ollama no mesmo Docker Compose, use http://ollama:11434, o nome do serviço. O padrão http://localhost:11434 não funciona dentro do container do n8n, porque localhost aponta para o próprio n8n.
Quanta RAM preciso para rodar n8n com Ollama?
Com um modelo pequeno como o qwen2.5:0.5b, o Ollama fica em torno de 650 MB e o n8n em torno de 400 MB, então 4 GB atendem. Um modelo de 3B ocupa cerca de 2 GB, e aí 8 GB de RAM é o mais confortável.
Preciso de GPU para usar o Ollama com n8n?
Não. O Ollama roda na CPU, só que mais devagar. Para modelos pequenos e tarefas como resumo e classificação, uma VPS sem GPU resolve.
Devo expor a porta 11434 do Ollama?
Não. O Ollama não tem autenticação. Deixe a porta sem publicar e acesse pela rede interna do Docker Compose.