Migração 100% grátis + 1 mês grátis com cupom MIGRAR1MES · novos clientes em planos até R$ 200/mês Migrar agora

Instalar Ollama em VPS

Como instalar Ollama em uma VPS Ubuntu 22.04 com GPU NVIDIA, expor API REST com HTTPS via Caddy e servir Llama 3, Qwen e DeepSeek com OpenAI-compatibility.

O Ollama é a forma mais rápida de rodar LLMs no seu próprio servidor. Ele expõe uma API REST compatível com OpenAI — você troca a URL e seu código continua funcionando.

Quando usar Ollama

  • Dev / experimentação: trocar de modelo (Llama 3, Qwen, DeepSeek) com 1 comando
  • Inferência leve: até ~5 chamadas concorrentes
  • Embeddings com nomic-embed-text ou bge-m3
  • Times pequenos que não querem montar Triton/vLLM ainda

Para alta concorrência (10+ requests simultâneas), troque para vLLM.

Pré-requisitos

  • VPS com GPU NVIDIA (recomendamos GPU Estação ou GPU Estúdio)
  • Ubuntu 22.04 LTS
  • Driver NVIDIA + CUDA 12.x já instalado
  • Domínio próprio (ollama.sua-empresa.com.br)

Confirme que a GPU está visível:

nvidia-smi

Saída esperada (exemplo com RTX 4090):

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.154.05    Driver Version: 535.154.05    CUDA Version: 12.2  |
+-----------------------------------------------------------------------------+
| GPU  Name        | Memory-Usage      | GPU-Util  |
|  0  NVIDIA RTX 4090 | 0MiB / 24576MiB |     0%    |
+-----------------------------------------------------------------------------+

Passo 1 — instalar Ollama

curl -fsSL https://ollama.com/install.sh | sh

O script detecta a GPU e instala o suporte CUDA automaticamente. Confirme:

ollama --version
systemctl status ollama

O serviço já está rodando em localhost:11434.

Passo 2 — baixar e testar um modelo

ollama pull llama3.1:8b
ollama run llama3.1:8b "Em uma frase, por que o céu é azul?"

A primeira vez baixa ~5 GB. Depois roda direto.

Passo 3 — expor API com HTTPS

Por padrão, Ollama escuta em 127.0.0.1:11434 — só local. Para acessar de fora, vamos expor via Caddy com HTTPS.

Configure Ollama para escutar em todas as interfaces:

sudo systemctl edit ollama.service

Adicione:

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"

Reinicie:

sudo systemctl restart ollama

Instale Caddy:

sudo apt install -y caddy

Configure /etc/caddy/Caddyfile:

ollama.sua-empresa.com.br {
  reverse_proxy localhost:11434

  # Auth simples por API key (Caddy header_up matcher)
  @authorized header Authorization "Bearer rh_ollama_token_secreto_grande"
  handle @authorized {
    reverse_proxy localhost:11434
  }
  handle {
    respond "Unauthorized" 401
  }
}

Reinicie o Caddy:

sudo systemctl restart caddy

Aguarde DNS propagar e Caddy emitir SSL. Teste:

curl https://ollama.sua-empresa.com.br/api/tags \
  -H "Authorization: Bearer rh_ollama_token_secreto_grande"

Resposta: lista de modelos baixados.

Passo 4 — usar API compatível OpenAI

Ollama expõe /v1/chat/completions compatível com OpenAI:

curl https://ollama.sua-empresa.com.br/v1/chat/completions \
  -H "Authorization: Bearer rh_ollama_token_secreto_grande" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3.1:8b",
    "messages": [
      {"role": "system", "content": "Responda em português, breve."},
      {"role": "user", "content": "O que é Q4_K_M?"}
    ]
  }'

Passo 5 — usar no n8n

Adicione um nó OpenAI Chat Model com:

  • Credential custom: API Key = rh_ollama_token_secreto_grande
  • Base URL (em advanced): https://ollama.sua-empresa.com.br/v1
  • Model: llama3.1:8b

Pronto — seu n8n fala com a sua GPU local.

Embeddings

Para RAG, baixe um modelo de embeddings:

ollama pull nomic-embed-text

Use em código:

curl https://ollama.sua-empresa.com.br/api/embed \
  -H "Authorization: Bearer rh_ollama_token_secreto_grande" \
  -d '{
    "model": "nomic-embed-text",
    "input": "Texto para gerar embedding"
  }'

Retorna vetor de 768 dimensões.

Monitoramento

Veja uso de GPU em tempo real:

watch -n 1 nvidia-smi

E logs do Ollama:

journalctl -u ollama -f

Para Grafana, exponha métricas via nvidia-dcgm-exporter:

docker run -d --gpus all --rm \
  -p 9400:9400 \
  nvcr.io/nvidia/k8s/dcgm-exporter:3.3.0-3.2.0-ubuntu22.04

Solução de problemas

ProblemaCausa provávelSolução
cuda: out of memoryModelo grande demaisUse quantização menor (:Q4, :Q5_K_M)
Resposta lenta (~5 tok/s)Rodando em CPUVerifique nvidia-smi durante inferência — se 0%, GPU não está sendo usada
connection refused na porta 11434OLLAMA_HOST não foi aplicadosudo systemctl daemon-reload && sudo systemctl restart ollama
Caddy não emite SSLDNS não propagoudig ollama.sua-empresa.com.br deve retornar o IP da VPS

Próximos passos

Última atualização: