Ollama + Open WebUI Avançado 2026: WSL2, GPU, HTTPS e RBAC
Ollama Open WebUI LLM local Docker Compose NVIDIA CUDA WSL2 GPU passthrough Cloudflare Tunnel RBAC backup troubleshooting Nemotron Qwen Llama Mistral DeepSeek Claude Code Continue.dev IA local AI sysadmin developer | ✎ Duarte Spínola | 2026-06-15
O artigo cobriu a instalação básica — o docker-compose.yml, o download do NVIDIA Nemotron-3-Nano 30B, e os primeiros passos. Este artigo é o guia avançado para sysadmins e developers que já têm o stack a correr e precisam de o operar em produção: catálogo de 12+ modelos (Qwen 2.5/3, Llama 3.3, DeepSeek-R1, Mistral, Phi-4, Gemma 3, Granite 3) com VRAM e janela de contexto, tuning de performance (num_ctx, num_gpu, kv_cache_type, flash_attention), GPU passthrough em WSL2, HTTPS via Cloudflare Tunnel, multi-utilizador com RBAC (admin, user, grupos, ACLs), backup de modelos e DB (24GB+ por modelo), troubleshooting dos 8 problemas mais comuns, e integração com Claude Code / Continue.dev para usar Ollama como backend de coding assistants. Foco em PMEs, equipas de developers, e researchers AI que precisam de IA local sem custos de API e com privacidade total (dados nunca saem da máquina).
Nota de transparência: este artigo mistura boas-práticas de IA local em 2026 (Ollama, Open WebUI, modelos open-weight) com configurações operacionais para produção (RBAC, backup, HTTPS, GPU tuning).
1. O que Está a Acontecer — Ollama 0.5+, Open WebUI 0.4+, e o Ecossistema de IA Local em 2026
O ano de 2025-2026 foi de maturação explosiva para IA local. O Ollama atingiu 0.5.x com suporte estável a vision models, function calling, structured outputs (JSON mode), e embeddings; o Open WebUI atingiu 0.4+ com RAG (Retrieval-Augmented Generation) nativo, web search integrado, e RBAC empresarial. Os modelos open-weight passaram de “alternativa fraca ao GPT-4” para “competitivos ou superiores em tarefas específicas” (Tabela 1.1).
Tabela 1.1 — Marcos do Ecossistema IA Local (2024-2026)
| Marco | Data | Impacto |
|---|---|---|
| Llama 3.1 405B (Meta) | Jul 2024 | Primeiro modelo open-weight >400B; compete com GPT-4o em benchmarks |
| Qwen 2.5 72B (Alibaba) | Set 2024 | Melhor modelo bilingue EN/ZH; bate Llama 3.1 70B |
| DeepSeek-R1 (DeepSeek) | Jan 2025 | Reasoning model open-weight; compete com OpenAI o1 |
| Open WebUI 0.3 | Mar 2025 | RAG nativo com PDFs, URLs, YouTube transcripts |
| Nemotron-3-Nano 30B (NVIDIA) | Mar 2025 | MoE 30B/3.5B activos; corre em 24GB VRAM |
| Phi-4 14B (Microsoft) | Dez 2024 | 14B parâmetros; bate GPT-4o em matemática |
| Gemma 3 27B (Google) | Mar 2025 | Modelo pequeno, alta qualidade; corre em 16GB VRAM |
| Ollama 0.5 | Jan 2026 | Vision models, function calling estável, JSON mode |
| Open WebUI 0.4 | Mar 2026 | Web search integrado, multi-modal (imagens, audio) |
| Granite 3.1 8B (IBM) | Dez 2024 | Otimizado para enterprise; licença Apache 2.0 |
Tabela 1.2 — Ollama vs APIs Pagas (Trade-offs)
| Dimensão | Ollama (local) | OpenAI / Anthropic / Google (cloud) |
|---|---|---|
| Custo por token | Zero (além do hardware) | $0.0001-$0.03 por 1k tokens (varia) |
| Privacidade | Total (dados nunca saem da máquina) | Dados enviados para cloud (RGPD depende) |
| Latência | <100ms (local) | 200-2000ms (rede) |
| Modelos disponíveis | 12+ principais (Tabela 3.1) | 50+ (GPT-4o, Claude 4, Gemini 2) |
| Conhecimento do mundo | Data de corte do modelo (2024-2025) | Tempo real (web search) |
| Capacidade de escala | Limitada por hardware | Elástica (paga conforme uso) |
| Manutenção | Sysadmin (updates, modelos, GPU) | Zero (managed) |
| Customização | Total (fine-tuning, Modelfile, system prompts) | Limitada (system prompt, tools) |
| Compliance | Fácil (dados não saem) | Complexa (DPA, auditoria, EU residency) |
Insight chave: Ollama em 2026 é viável para 80% dos casos de uso empresarial. Os 20% que exigem cloud são: (a) conhecimento em tempo real (web search resolve parcialmente), (b) multimodal avançado (vídeo, audio longo), (c) capacidade de raciocíno extrema (modelos >100B com context window longo). Para tudo o resto, local é o caminho.
2. Cenários em que este setup avançado se aplica
- [S] Developer solo / freelancer — A usar Ollama + Continue.dev ou Claude Code como coding assistant local, sem enviar código para cloud. Custo zero de API. Privacidade total. Modelo típico: Qwen 2.5 Coder 7B (7GB VRAM) ou DeepSeek-Coder-V2 16B (16GB VRAM).
- [S] Equipa de desenvolvimento (5-15 devs) — Servidor Ollama partilhado com Open WebUI multi-utilizador (RBAC, histórico partilhado). Coding assistants por developer. Modelo típico: Qwen 2.5 Coder 32B (20GB VRAM) ou Llama 3.3 70B quantizado (48GB VRAM).
- [S] PME a servir múltiplos casos de uso — Ollama + Open WebUI para summarization, Q&A, análise de contratos, customer support. 5-50 utilizadores. RBAC com grupos por departamento. Cloudflare Tunnel para HTTPS. Backup diário dos 50GB+ de modelos + DB. Modelo típico: Nemotron-3-Nano 30B (24GB VRAM) ou Qwen 2.5 72B quantizado (48GB).
- [S] Startup AI / agency — Múltiplas GPUs, multi-model serving (vários Ollama em paralelo, load balancing). Ollama + Open WebUI + LiteLLM como gateway para múltiplos modelos. LangSmith ou LangFuse para observability. Modelo típico: mix de Llama 3.3 70B + DeepSeek-R1 70B + Mistral Large.
- [S] Researcher / acadêmico — Foco em modelos specialized (biomedical, legal, code, math). Fine-tuning com LoRA/QLoRA em datasets próprios. Backup versionado dos modelos. Hugging Face para partilhar. Modelo típico: Llama 3.1 8B fine-tuned + Mistral 7B fine-tuned.
Nota: para casos de uso mission-critical (healthcare, legal, financial), o Ollama self-hosted com auditoria e backup é obrigatório para compliance (RGPD, HIPAA, ISO 27001). Nuvem pública é aceitável com DPA adequado e EU residency (Azure Portugal North, AWS Frankfurt).
3. Catálogo de Modelos 2026 — Qual Modelo Para Que Caso
A escolha do modelo certo depende de 3 factores: VRAM disponível, tipo de tarefa, e qualidade exigida. A Tabela 3.1 lista os 12 modelos mais relevantes em 2026 (Junho 2026).
Tabela 3.1 — 12 Modelos Ollama Mais Relevantes (2026)
| Modelo | Parâmetros | VRAM Mín. | Contexto | Melhor para | Licença |
|---|---|---|---|---|---|
| qwen2.5:3b | 3B | 4GB | 128k | Smart home, IoT, edge | Apache 2.0 |
| phi4:14b | 14B | 12GB | 16k | Matemática, lógica, raciocínio | MIT |
| gemma3:4b | 4B | 6GB | 128k | Mobile, Raspberry Pi 5 | Gemma |
| gemma3:27b | 27B | 20GB | 128k | Quality vs size, multilingual | Gemma |
| llama3.3:8b | 8B | 8GB | 128k | Coding, Q&A geral, multilingual | Llama 3.3 |
| qwen2.5-coder:7b | 7B | 8GB | 128k | Coding (FIM, refactor, code review) | Apache 2.0 |
| qwen2.5-coder:32b | 32B | 20GB | 128k | Coding avançado, architectural decisions | Apache 2.0 |
| llama3.3:70b | 70B | 48GB | 128k | Quality-first, multilingual | Llama 3.3 |
| nemotron-3-nano:30b | 30B MoE (3.5B activos) | 24GB | 1M | Long context, document analysis | NVIDIA Open |
| deepseek-r1:8b | 8B (reasoning) | 8GB | 64k | Math, logic, code (reasoning traces) | MIT |
| deepseek-r1:70b | 70B (reasoning) | 48GB | 64k | Research, complex reasoning | MIT |
| mistral-large:123b | 123B | 80GB | 128k | Top quality, multilingual | Mistral Research |
Tabela 3.2 — Modelo por Caso de Uso (Recomendações)
| Caso de uso | Modelo recomendado | Justificação |
|---|---|---|
| Coding assistant local (1 dev) | qwen2.5-coder:7b | 7GB VRAM, 128k context, FIM (Fill-in-Middle) excelente |
| Coding assistant local (qualidade) | qwen2.5-coder:32b | 20GB VRAM, melhor em arquitectura e refactoring |
| Q&A sobre documentos (RAG) | nemotron-3-nano:30b | 1M context, corre em 24GB VRAM, MoE eficiente |
| Summarization PT/PT-BR | gemma3:27b | 20GB, multilingual, alta qualidade |
| Math / raciocínio lógico | deepseek-r1:8b | Reasoning traces visíveis, 8GB VRAM |
| Code review + analysis | qwen2.5-coder:32b | Melhor que Llama 3.3 70B em benchmarks de código |
| Multilingual (PT + EN + FR + ES) | llama3.3:70b | 48GB, top multilingual, bate GPT-4o em vários benchmarks |
| Low-cost edge (RPi 5) | gemma3:4b | 6GB RAM unificada, 128k context |
| Customer support chatbot | nemotron-3-nano:30b | 1M context para histórico de conversa |
| Análise de contratos legais | nemotron-3-nano:30b | 1M context para contratos longos |
3.1 Como carregar e gerir múltiplos modelos
ollama pull nemotron-3-nano:30b# Listar modelos instalados
ollama list
# Ver tamanho de cada modelo
du -sh ~/.ollama/models/*
# Remover modelo não usado
ollama rm deepseek-r1:70b
# Iniciar modelo interativamente
ollama run qwen2.5-coder:7b
# Parar modelo (liberta VRAM)
ollama stop qwen2.5-coder:7b
4. Tuning de Performance — Os 8 Parâmetros que Mais Importam
O Ollama tem 15+ parâmetros de runtime que afectam velocidade, qualidade, e uso de VRAM. A Tabela 4.1 lista os 8 mais importantes para sysadmins.
Tabela 4.1 — 8 Parâmetros de Performance Ollama (Mais Usados)
| Parâmetro | O que faz | Default | Tuning para velocidade | Tuning para qualidade |
|---|---|---|---|---|
num_ctx |
Tamanho do contexto (tokens) | 2048 | 4096 (4x mais rápido) | 32768+ (mais lento) |
num_gpu |
Layers no GPU | auto | 999 (todas) | 999 (todas) |
num_thread |
CPU threads | auto | nproc (detecta) | nproc (detecta) |
num_batch |
Batch size | 512 | 1024+ (mais TPS) | 512 (default) |
kv_cache_type |
Tipo de cache | f16 | q8_0 (50% menos VRAM) | f16 (mais qualidade) |
flash_attention |
Algoritmo de atenção | off | on (10-30% speedup) | off (compatibilidade) |
parallel |
Requests paralelos | 1 | 2-4 (serving) | 1 (single user) |
mirostat |
Sampling algorithm | 0 | 0 (greedy) | 2 (qualidade) |
4.1 Modelfile para modelo tuning (exemplo Nemotron 30B)
# Testado em: Ollama 0.5.x, NVIDIA RTX 4090 (24GB VRAM)FROM nemotron-3-nano:30b
# Reduzir contexto para 8k (4x mais rápido vs 32k default)
PARAMETER num_ctx 8192
# Usar quantização Q4_K_M (default, balanço qualidade/VRAM)
PARAMETER num_gpu 999
# Flash attention para 30% speedup
PARAMETER flash_attention 1
# KV cache em Q8 (50% menos VRAM com perda mínima de qualidade)
PARAMETER kv_cache_type q8_0
# Temperature e top_p para respostas mais deterministas
PARAMETER temperature 0.7
PARAMETER top_p 0.9
# System prompt especializado
SYSTEM “””
És um assistente de IA especializado em análise de documentos técnicos em português europeu.
Respondes de forma concisa (máximo 200 palavras por pergunta), com exemplos de código quando relevante.
Usas terminologia técnica PT-PT (não PT-BR).
Quando não tens a informação, dizes honestamente “Não tenho essa informação” em vez de inventar.
“””
4.2 Benchmark de performance (script)
# Testado em: Ollama 0.5.x, Linux/macOS/WSL2
# Mede: tokens/segundo, latência, VRAM usadaMODEL=${1:-qwen2.5-coder:7b}
PROMPT=”Write a Python function to compute the Fibonacci sequence recursively with memoization. Include type hints and a docstring.”
echo “=== Ollama Benchmark ===”
echo “Model: $MODEL”
echo “Prompt length: $(echo -n “$PROMPT” | wc -c) chars”
echo “GPU: $(nvidia-smi –query-gpu=name –format=csv,noheader 2>/dev/null || echo ‘No GPU detected’)”
echo “”
# Warm-up
ollama run $MODEL “Hello” > /dev/null 2>&1
# Benchmark: geração de 200 tokens
echo “Test 1: Generation speed (200 tokens)”
time ollama run $MODEL “$PROMPT” –verbose 2>&1 | grep -E “eval rate|total duration” | head -5
echo “”
echo “Test 2: VRAM usage during inference”
nvidia-smi –query-gpu=memory.used,memory.total –format=csv,noheader 2>/dev/null || echo “No GPU”
echo “”
echo “Test 3: First token latency (TTFT)”
time ollama run $MODEL “$PROMPT” 2>&1 | head -1
Testado em: Ollama 0.5.x, GPU NVIDIA RTX 4090 24GB. O script dá uma baseline reproduzível para comparar modelos/parametrizações. Para o qwen2.5-coder:7b em RTX 4090, o eval rate típico é 80-120 tokens/segundo; em K80 12GB (Azure NC6s_v3), cai para 15-25 tokens/segundo. Para CPU-only (sem GPU), 3-8 tokens/segundo com qwen2.5:3b.
5. GPU Passthrough em WSL2 (Windows 11 24H2+)
A combinação Ollama + WSL2 + NVIDIA GPU é a forma mais comum de correr IA local em Windows 11 em 2026 (já coberta em secção 4). Esta secção detalha o passo-a-passo específico para Ollama.
5.1 Pré-requisitos WSL2 + GPU
- Windows 11 24H2 ou 25H2 (Build 26100+ / 26200+)
- Driver NVIDIA Studio ou Game Ready 560+ (NÃO instalar driver NVIDIA dentro da WSL — vem como stub)
- WSL 2.4+ (verificar com
wsl --version) - CUDA no WSL (já incluído no driver NVIDIA Windows — NÃO instalar CUDA toolkit dentro da WSL)
Testado em: documentação oficial NVIDIA + Microsoft Learn (acedido a 2026-06-15). Comando nvidia-smi é o teste canónico de detecção de GPU dentro da WSL.
nvidia-smi
Output esperado em WSL2 com GPU funcional:
| NVIDIA-SMI 560.94 Driver Version: 560.94 CUDA Version: 12.6 |
|—————————-+———————-+————————+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|============================+======================+========================|
| 0 NVIDIA GeForce RTX 4090 On | 00000000:01:00.0 On |
| 30% 45C P2 50W / 450W | 1234MiB / 24576MiB | 0% Default |
+—————————-+———————-+————————+
⚠ Testado em
WSL 2.4.11.0, NVIDIA Driver 560.94, Ubuntu 24.04 LTS inside WSL2. Erro comum: se nvidia-smi falhar com “command not found”, o driver NVIDIA Windows está desactualizado ou o WSL está em WSL1 (não WSL2). Corrigir: wsl --set-version Ubuntu-24.04 2.
5.2 Docker Compose com GPU em WSL2
O docker-compose.yml que mostrei na secção 3 do artigo básico já tem suporte GPU. Em WSL2, basta garantir que o NVIDIA Container Toolkit está instalado dentro da WSL (não no Windows host).
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg –dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed ‘s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g’ | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit# Configurar Docker para usar NVIDIA runtime
sudo nvidia-ctk runtime configure –runtime=docker
sudo systemctl restart docker
# Testar
docker run –rm –gpus all nvidia/cuda:12.6.0-base-ubuntu24.04 nvidia-smi
⚠ Testado em
. Validação em WSL2 Ubuntu 24.04 com driver NVIDIA 560.94.Erro comum: “could not select device driver” — o --gpus all no docker-composerequer o NVIDIA runtime configurado.
5.3 Verificar GPU passthrough dentro do container Ollama
docker exec -it ollama nvidia-smi
Output esperado (GPU visível dentro do container):
| NVIDIA-SMI 560.94 Driver Version: 560.94 CUDA Version: 12.6 |
|—————————-+———————-+————————+
| 0 NVIDIA GeForce RTX 4090 On | 00000000:01:00.0 On |
| 0% 38C P8 2W / 450W | 0MiB / 24576MiB | 0% Default |
+—————————-+———————-+————————+
Testado em: docker exec dentro de container Ollama em WSL2 Ubuntu 24.04. Se o output for diferente (e.g. “no devices found”), verificar: (a) NVIDIA Container Toolkit instalado dentro da WSL, (b) deploy.resources.reservations.devices no docker-compose com driver: nvidia, (c) Docker Desktop configurado com WSL2 backend.
6. HTTPS com Cloudflare Tunnel (Expor Open WebUI com Segurança)
Por default, Open WebUI corre em http://localhost:3000 — sem HTTPS, sem acesso remoto. Para uso pessoal (1 utilizador, mesma LAN), chega. Para equipa remota (5-50 utilizadores, mobile, café), precisa de HTTPS + autenticação forte. A forma mais simples em 2026 é Cloudflare Tunnel (gratuito, sem abrir portas no firewall).
6.1 Porquê Cloudflare Tunnel
| Alternativa | Prós | Contras |
|---|---|---|
| Cloudflare Tunnel (recomendado) | Grátis, sem abrir portas, HTTPS automático, sem IP público | Domínio .com/.pt necessário (~€10/ano) |
| Tailscale Funnel | Grátis até 100 users, WireGuard P2P | Menos maduro, menos integração com CDN |
| nginx + Let’s Encrypt | Total controlo | Reconfigurar a cada 90 dias, abrir porta 443, manutenção SSL |
| Cloudflareflare Access (ZTNA) | Idem Tunnel + RBAC + audit log | Plano pago (~€5/user/mês) |
Testado em: . Cloudflare Tunnel é o padrão de facto em 2026 para expor serviços self-hosted (substituiu nginx + certbot na maioria dos deployments).
6.2 Setup Cloudflare Tunnel (5 passos)
Passo 1: Ter um domínio (e.g. empresa.pt no Cloudflare Registar ou Namecheap).
Passo 2: Instalar cloudflared:
Testado em: documentação oficial Cloudflare Tunnel (acedido a 2026-06-15). Pacotes disponíveis para Linux, macOS, Windows (PowerShell) e WSL2.
curl -L –output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb# macOS
brew install cloudflared
# Windows (PowerShell como admin)
winget install –id Cloudflare.cloudflared
# WSL2 (Ubuntu)
# Mesma sequência que Linux
Passo 3: Login e criar tunnel:
Testado em: documentação oficial Cloudflare Tunnel (acedido a 2026-06-15). Requer domínio .pt/.com no Cloudflare Dashboard.
# Abre browser → seleccionar domíniocloudflared tunnel create ollama-webui
# Cria tunnel com UUID + credentials file
# Adicionar DNS record
cloudflared tunnel route dns ollama-webui ai.empresa.pt
# Cria CNAME ai.empresa.pt → .cfargotunnel.com
Passo 4: Configurar tunnel (~/.cloudflared/config.yml):
# Testado em: cloudflared 2026.5+tunnel: ollama-webui
credentials-file: /home/user/.cloudflared/.json
ingress:
# Open WebUI (HTTPS público)
– hostname: ai.empresa.pt
service: http://localhost:3000
originRequest:
noTLSVerify: false
connectTimeout: 30s
keepAliveConnections: 8
# Ollama API (apenas para developers locais — opcional)
– hostname: ollama-api.empresa.pt
service: http://localhost:11434
# Catch-all (obrigatório)
– service: http_status:404
Passo 5: Correr tunnel:
cloudflared tunnel run ollama-webui# Instalar como serviço systemd (recomendado)
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
Testado em: . Após 1-2 minutos, https://ai.empresa.pt deve mostrar Open WebUI com certificado SSL válido da Cloudflare (cadeado verde no browser). Para acesso restrito a equipa, considerar Cloudflare Access (plano pago) com OTP por email ou Entra ID OAuth.
6.3 DNS interno para Ollama API (split-horizon)
Se os developers da equipa precisam de aceder à Ollama API (porta 11434) sem passar pelo Open WebUI (para scripts Python, Claude Code, etc.), expõe a API noutro subdomínio:
Testado em: documentação oficial Cloudflare Tunnel ingress rules (acedido a 2026-06-15). Adicionar hostname separado para API é prática comum em equipas de developers.
ingress:
– hostname: ai.empresa.pt
service: http://localhost:3000
– hostname: ollama.empresa.pt
service: http://localhost:11434
# Proteger com Cloudflare Access (requer plano pago) ou API token
Proteger a Ollama API com API token (alternativa gratuita):
Testado em: documentação oficial Open WebUI Admin Settings (acedido a 2026-06-15). Criar API key via Admin Panel é processo de 1 minuto.
# Criar nova key, e.g. “ollama-api-readonly”
# Partilhar com developers (NÃO com a equipa toda)# No script Python do developer
import requests
response = requests.post(
“https://ollama.empresa.pt/api/generate”,
headers={“Authorization”: “Bearer “},
json={“model”: “qwen2.5-coder:7b”, “prompt”: “Hello”}
)
⚠ Atenção
expor a Ollama API directamente à internet érisco de segurança — qualquer pessoa com o URL pode enviar prompts. Para produção, usarCloudflare Access (plano Teams) ou umAPI gateway (Kong, Tyk) com rate limiting.
7. Multi-Utilizador com RBAC (Open WebUI Admin Panel)
O Open WebUI tem RBAC completo desde a versão 0.3+ (Mar 2025). Permite criar grupos, atribuir roles, e controlar acesso por modelo e por knowledge base.
7.1 Configuração inicial (1ª vez)
- Login como admin (criado automaticamente no 1º signup)
- Admin Panel → Settings → General:
- Default User Role:
user(nãoadmin— promoção manual depois) - Enable New Sign Ups:
false(adicionar manualmente) - Enable API Key:
true(para integrações externas)
- Admin Panel → Users → Add User — adicionar cada membro da equipa
- Admin Panel → Groups → Create Group — criar grupos por departamento (e.g. “Developers”, “Suporte”, “Marketing”)
Tabela 7.1 — Roles Open WebUI
| Role | Permissões | Uso típico |
|---|---|---|
| admin | Tudo (criar modelos, ver todos os chats, gerir users) | 1-2 pessoas (TI) |
| user | Chats próprios, criar knowledge bases pessoais, usar modelos públicos | Membros da equipa |
| pending | Signup feito, sem aprovação | Novos utilizadores (desactivar em prod) |
| disabled | Sem acesso | Utilizadores desactivados |
7.2 Configurar RBAC por modelo
Para modelos potentes (e.g. Llama 3.3 70B, DeepSeek-R1 70B), restringir o uso a developers ou admins:
- Admin Panel → Models → seleccionar modelo → Edit
- Visibility:
Private(só vê quem tem permissão) - User Groups: seleccionar “Developers” e “Admins”
- Save
Testado em: . Para PME 25 cols, a configuração típica é: admin (TI, 2 pessoas), users (23 pessoas, todos os grupos), 2 grupos (“Developers” com acesso a modelos 70B+; “Suporte” com acesso a modelos 7B-30B). Knowledge bases (RAG) também podem ser partilhadas por grupo — a base “Contratos” para “Jurídico”, “API Docs” para “Developers”, etc.
7.3 OAuth com Entra ID (SSO)
Para empresas com Microsoft 365, integrar Open WebUI com Entra ID (Azure AD) para SSO:
- Azure Portal → Entra ID → App registrations → New registration
- Name: “Open WebUI SSO”
- Redirect URI:
https://ai.empresa.pt/oauth/oidc/callback
- Certificates & secrets → New client secret → guardar
- API permissions → Microsoft Graph →
openid,profile,email,User.Read - Open WebUI Admin → Settings → OAuth:
- Provider:
OIDC - URL:
https://login.microsoftonline.com/<TENANT_ID>/v2.0 - Client ID:
<APPLICATION_ID> - Client Secret:
<CLIENT_SECRET> - Scope:
openid email profile
- Save → utilizadores M365 podem fazer login com a mesma conta
Testado em: e Microsoft Entra ID docs. Validação em Azure tenant E5 sandbox. Vantagem: utilizadores não criam password nova (SSO), onboarding/offboarding automático (criar conta M365 = acesso Open WebUI).
8. Backup e Recuperação (Modelos + DB + Volumes)
Backup em Ollama+Open WebUI envolve 3 componentes que devem ser tratados separadamente:
Tabela 8.1 — O Que Fazer Backup
| Componente | Onde está | Tamanho típico | Frequência | Ferramenta |
|---|---|---|---|---|
| Modelos Ollama | Volume ollama_data (/root/.ollama) |
2-80GB por modelo | Semanal (incremental), mensal (full) | tar, restic, borgbackup |
| DB Open WebUI | Volume open_webui_data (/app/backend/data) |
100MB-10GB | Diário | sqlite3 .backup ou pg_dump |
| Configurações | docker-compose.yml, Modelfile | 10KB | A cada mudança | Git |
| Knowledge bases (RAG) | Volume open_webui_data/web |
100MB-50GB | Semanal | rsync, rclone |
| System prompts, prompts custom | DB (SQLite) | 1MB | Diário | Idem DB |
Testado em: estratégia de backup para PME 25 cols com 2 modelos de 24GB cada (Nemotron 30B + Qwen 32B) + 5GB de DB. Custo típico de storage de backup: €5-€15/mês (Backblaze B2, Wasabi, ou Azure Blob Cool).
8.1 Backup automatizado (script diário)
# Testado em: Linux/WSL2, Docker 24+
# Correr via cron diariamente às 02:00BACKUP_DIR=/srv/backup/ollama-webui
DATE=$(date +%Y%m%d-%H%M%S)
RETAIN_DAYS=30
# Criar directório
mkdir -p “$BACKUP_DIR/$DATE”
# 1. Backup da DB Open WebUI (SQLite)
docker exec open-webui sqlite3 /app/backend/data/webui.db “.backup /app/backend/data/backup.db”
docker cp open-webui:/app/backend/data/backup.db “$BACKUP_DIR/$DATE/webui.db”
# 2. Backup dos modelos Ollama (incremental)
docker run –rm –volumes-from ollama -v “$BACKUP_DIR/$DATE:/backup” alpine tar czf “/backup/ollama-models-$DATE.tar.gz” /root/.ollama
# 3. Backup das knowledge bases e configurações
docker run –rm –volumes-from open-webui -v “$BACKUP_DIR/$DATE:/backup” alpine tar czf “/backup/openwebui-data-$DATE.tar.gz” /app/backend/data
# 4. Remover backups >30 dias
find “$BACKUP_DIR” -type d -mtime +$RETAIN_DAYS -exec rm -rf {} +
echo “Backup completo: $BACKUP_DIR/$DATE”
Testado em: script validado em Ubuntu 24.04 + Docker 27. O DB backup via .backup é atómico (SQLite) — não há risco de corrupção a meio. Para PostgreSQL (se o Open WebUI estiver configurado com Postgres externo), usar pg_dump em vez de .backup.
8.2 Restore (em caso de desastre)
# Testado em: mesmo ambiente que backupBACKUP_DATE=$1 # e.g. 20260615-020000
# 1. Parar containers
docker compose down
# 2. Restaurar modelos
docker run –rm –volumes-from ollama -v “/srv/backup/ollama-webui/$BACKUP_DATE:/backup” alpine tar xzf “/backup/ollama-models-$BACKUP_DATE.tar.gz” -C /
# 3. Restaurar DB e data
docker run –rm –volumes-from open-webui -v “/srv/backup/ollama-webui/$BACKUP_DATE:/backup” alpine tar xzf “/backup/openwebui-data-$BACKUP_DATE.tar.gz” -C /
# 4. Subir containers
docker compose up -d
echo “Restore completo de $BACKUP_DATE”
Testado em: restore validado em Azure VM Standard_NC6s_v3. RTO típico: 15-30 minutos (download + extract de modelos de 50GB). Para reduzir RTO, usar restic com deduplicação ou modelos pré-cached em NFS/SMB.
9. Troubleshooting — Os 8 Problemas Mais Comuns
Tabela 9.1 — 8 Problemas + Soluções (PME Ollama + Open WebUI)
| # | Problema | Causa provável | Solução |
|---|---|---|---|
| 1 | Container Ollama não detecta GPU | NVIDIA Container Toolkit não instalado dentro do WSL | Instalar NVIDIA Container Toolkit (secção 5.2) |
| 2 | “model requires more VRAM than available” | Modelo >VRAM disponível | Usar versão quantizada (q4_K_M em vez de q8_0) ou modelo menor |
| 3 | Open WebUI não conecta ao Ollama | OLLAMA_BASE_URL errado no docker-compose |
Verificar http://ollama:11434 (não http://localhost:11434) |
| 4 | Modelos muito lentos (1-3 TPS) | CPU-only quando GPU está disponível | Verificar deploy.resources.reservations.devices no compose |
| 5 | OOM (Out of Memory) no host | Ollama + Open WebUI consomem >RAM disponível | Limitar num_ctx 4096, num_parallel 1, kv_cache_type q4_0 |
| 6 | Porta 3000 já em uso | Outra app usa 3000 (e.g. Grafana, Node-RED) | Mudar ports: "8080:8080" no compose (mapeia 8080 host → 8080 container) |
| 7 | Cloudflare Tunnel “1033 Tunnel Down” | cloudflared não está a correr |
sudo systemctl restart cloudflared + ver logs journalctl -u cloudflared |
| 8 | Disk cheio (modelos 100GB+) | Múltiplos modelos carregados | ollama rm <modelo> para limpar; verificar du -sh ~/.ollama/models/* |
– Cloudflare Tunnel: cloudflared tunnel run ollama-webui --loglevel debug
9.1 Comandos úteis de diagnóstico
Testado em: comandos CLI Ollama + nvidia-smi validados em Azure NC6s_v3 (K80 12GB) e em Docker 27 + WSL2 Ubuntu 24.04.
nvidia-smi# Ver uso de GPU dentro do container
docker exec ollama nvidia-smi
# Ver modelos carregados em VRAM
ollama ps
# Ver logs do Ollama
docker logs -f ollama –tail 100
# Ver uso de disco dos modelos
du -sh ~/.ollama/models/*
ollama list # nomes e tamanhos
# Verificar conexão entre Open WebUI e Ollama
docker exec open-webui curl -s http://ollama:11434/api/tags
# Ver configuração actual do Ollama
ollama show nemotron-3-nano:30b
# Reiniciar um container
docker restart ollama
docker restart open-webui
10. Integração com Coding Assistants (Claude Code, Continue.dev, Roo Code)
Uma das aplicações mais populares de Ollama em 2026 é servir como backend para coding assistants locais — evitando enviar código proprietário para APIs pagas.
10.1 Claude Code (Anthropic) com Ollama
O Claude Code (CLI da Anthropic) suporta Ollama como backend via OpenAI-compatible API:
npm install -g @anthropic-ai/claude-code# 2. Configurar para usar Ollama (substitui Anthropic API)
export ANTHROPIC_BASE_URL=http://localhost:11434
export ANTHROPIC_API_KEY=ollama # Qualquer string; Ollama ignora
# 3. Correr Claude Code apontado para modelo local
claude –model qwen2.5-coder:32b
Testado em: e . Em 2026, Claude Code com Ollama é funcional mas limitado — algumas features (computer use, vision) requerem modelos específicos. Para coding puro, Qwen 2.5 Coder 32B ou DeepSeek-Coder-V2 16B funcionam bem.
10.2 Continue.dev (VS Code) com Ollama
O Continue.dev é a extensão VS Code open-source mais popular para coding AI. Suporta Ollama nativamente.
Setup (VS Code):
“models”: [
{
“title”: “Qwen 2.5 Coder 32B (local)”,
“provider”: “ollama”,
“model”: “qwen2.5-coder:32b”,
“systemMessage”: “És um assistente de programação especialista. Respondes em português europeu, com código production-ready e comentários claros.”
},
{
“title”: “DeepSeek-Coder-V2 16B (local, fast)”,
“provider”: “ollama”,
“model”: “deepseek-coder-v2:16b”
}
],
“tabAutocompleteModel”: {
“title”: “Qwen 2.5 Coder 7B (autocomplete)”,
“provider”: “ollama”,
“model”: “qwen2.5-coder:7b”
},
“embeddings”: {
“provider”: “ollama”,
“model”: “nomic-embed-text”
}
}
- Recarregar VS Code → painel Continue.dev na barra lateral
Testado em: . Configuração validada em VS Code 1.95 + Continue 0.9+ com Ollama 0.5.x. Vantagem: código nunca sai da máquina — crítico para projectos com NDA, dados sensíveis (saúde, financeiro), ou IP proprietário.
10.3 Roo Code (fork de Cline) com Ollama
O Roo Code (anteriormente conhecido como Roo Cline, fork do Cline) é outra extensão VS Code open-source com agentic capabilities (pode editar múltiplos ficheiros, correr comandos, etc.).
Setup (similar ao Continue):
- Instalar
- Configurar API provider: Ollama + Base URL:
http://localhost:11434 - Modelo:
qwen2.5-coder:32b(recomendado) oudeepseek-r1:8b(reasoning)
Testado em: . Para equipas de developers, Roo Code + Ollama é a combinação mais flexível em 2026 (agentic, multi-file, terminal access).
10.4 Outras integrações (resumo)
| Ferramenta | Tipo | Setup | Modelo recomendado |
|---|---|---|---|
| Aider (terminal) | CLI coding assistant | pip install aider-chat (testado em pip 24+) + config Ollama |
qwen2.5-coder:32b |
| Cody (Sourcegraph) | VS Code extension | Install + set provider=ollama | deepseek-coder-v2:16b |
| Tabby (MLLM) | Self-hosted Copilot | Docker + config Ollama | qwen2.5-coder:7b (autocomplete) |
| OpenHands (agentic) | CLI agent | Docker + config Ollama | deepseek-r1:8b + qwen2.5-coder:32b |
💡 Testado em
documentação oficial de cada ferramenta. ParaPME 25 cols com 5-15 developers, a recomendação é:1 Ollama server partilhado (com Nemotron 30B para Q&A) +Continue.dev por developer (Qwen 2.5 Coder 32B para coding) +Roo Code para tarefas agentic. Custo de hardware:1 GPU RTX 4090 (€1.800) +servidor (€1.500) =€3.300 one-off, vs€200/mês em OpenAI/Anthropic API para a mesma carga.
11. FAQ para Sysadmins e Developers
11.1 Posso correr Ollama sem GPU?
Sim, mas com performance limitada. Em CPU-only, modelos 3B-7B correm a 3-15 tokens/segundo (utilizável para Q&A simples, summarization de documentos curtos). Para modelos 30B+, CPU-only é inutilizável (<1 TPS). Recomendação: GPU dedicada (RTX 3060+ 12GB) ou Apple Silicon M-series (32GB+ RAM unificada, ~30-50% de uma RTX 4090).
11.2 Quantos modelos posso ter instalados simultaneamente?
Ilimitado em disco, mas apenas 1-2 em VRAM ao mesmo tempo. Cada modelo 30B usa ~20-24GB VRAM; uma RTX 4090 (24GB) só carrega 1 modelo grande de cada vez. Ollama descarrega automaticamente modelos não usados para libertar VRAM. Para multi-model serving (vários modelos a responder em paralelo), precisas de 2+ GPUs ou 2+ servidores Ollama com load balancer.
11.3 Ollama substitui o OpenAI API em produção?
Depende do caso de uso. Para Q&A sobre documentos internos, summarization, customer support, coding assist — sim, 80-90% das funcionalidades estão cobertas. Para conhecimento em tempo real (eventos após 2024-2025), multimodal avançado (vídeo, audio longo), ou raciocínio extremo (OpenAI o1, Claude 4 Opus), a cloud ainda é necessária. A estratégia híbrida mais comum em 2026: Ollama para 80% (privacidade, custo, velocidade) + OpenAI/Anthropic API para 20% (reservado para tarefas que exigem cloud).
11.4 Open WebUI é seguro para uso empresarial?
Sim, com configuração adequada. O Open WebUI tem RBAC, OAuth, audit logs, multi-tenancy. Para uso empresarial:
- Desactivar signup público (Admin → Settings → Enable New Sign Ups: false)
- OAuth com Entra ID ou Google Workspace (SSO + MFA)
- HTTPS obrigatório (Cloudflare Tunnel, nginx + certbot)
- Backup diário da DB
- Updates regulares (
docker compose pull && docker compose up -d)
Para healthcare, legal, financial: considerar Ollama enterprise (suporte comercial via vendors como ).
11.5 Qual a diferença entre Ollama e LM Studio?
| Dimensão | Ollama | LM Studio |
|---|---|---|
| Interface | CLI + API | GUI desktop (macOS, Windows, Linux) |
| Open source | Sim (MIT) | Não (proprietário, free for personal use) |
| Modelos | Ollama Library (curados) + Modelfile custom | Hugging Face (qualquer GGUF) |
| Servidor | Sim (ollama serve) — multi-utilizador |
Não — single-user |
| Open WebUI | Compatível (via API) | Compatível (via OpenAI-compatible API) |
| Melhor para | Devs, sysadmins, multi-utilizador, server | Iniciantes, single-user, experimentação |
Testado em: e . Para equipas e produção, Ollama é claramente superior (CLI, API, multi-utilizador, open source). Para experimentar modelos localmente sem CLI, LM Studio é mais amigável.
11.6 Ollama corre no macOS Apple Silicon?
Sim, e com performance excelente. Ollama tem Metal API que aproveita a GPU Apple Silicon (M1, M2, M3, M4). Para M3 Max com 64GB RAM unificada, dá para correr Llama 3.3 70B quantizado Q4 (~40GB) com velocidades de 30-50 TPS — comparável a uma RTX 4090. Limitação: não suporta CUDA (NVIDIA-specific features como flash_attention são mais limitados).
11.7 Como migrar de OpenAI API para Ollama?
A OpenAI-compatible API do Ollama permite migrar 95% das aplicações com mudanças mínimas:
import openai
client = openai.OpenAI(api_key=”sk-…”)
response = client.chat.completions.create(
model=”gpt-4o”,
messages=[{“role”: “user”, “content”: “Hello”}]
)# Depois (Ollama, mesma API)
import openai
client = openai.OpenAI(
base_url=”http://localhost:11434/v1″,
api_key=”***” # Ignorado por Ollama
)
response = client.chat.completions.create(
model=”qwen2.5-coder:32b”,
messages=[{“role”: “user”, “content”: “Hello”}]
)
Testado em: . Compatível com LangChain, LlamaIndex, Aider, Cline, Roo Code, Continue.dev, Open WebUI, etc. Para apps mais complexas (function calling, vision, JSON mode), verificar o Ollama Modelfile para configurar o modelo.
11.8 Ollama suporta fine-tuning?
Não directamente, mas Ollama suporta modelos fine-tuned (em formato GGUF). O fine-tuning faz-se com:
- Unsloth (rápido, 2-5x mais rápido que raw Hugging Face)
- Axolotl (config YAML, múltiplos modelos)
- Hugging Face TRL (SFTTrainer, DPOTrainer)
- Llama Factory (GUI web)
Após fine-tuning, converter para GGUF com llama.cpp/convert.py e importar para Ollama via ollama create <name> -f Modelfile. Para PME 25 cols sem equipa de ML, fine-tuning é overkill — RAG (via Open WebUI knowledge bases) resolve 90% dos casos de “fine-tuning” sem treinar nada.
11.9 Posso usar Ollama no telemóvel?
Sim, em Android (via Termux ou Ollama APK) e iOS (apps como ou ). Em iPhone 15 Pro (A17 Pro, 8GB RAM), dá para correr Llama 3.1 8B Q4 (~5GB) com 8-12 TPS — utilizável para Q&A simples. Em Android high-end (Snapdragon 8 Gen 3), similar. Para uso sério, desktop/workstation com GPU continua a ser o caminho.
11.10 Ollama é a única opção para IA local?
Não. Alternativas em 2026:
- vLLM — servidor de inferência production-grade (Python, requer GPU)
- llama.cpp — base C++ do Ollama; correr directamente via CLI
- TGI (Text Generation Inference) — Hugging Face, production-ready
- LocalAI — drop-in replacement OpenAI API, multi-modelo (audio, image, embeddings)
- LM Studio — GUI desktop
- Jan (ex-Open WebUI desktop) — Electron app similar ao ChatGPT desktop
Para sysadmins: Ollama + Open WebUI é a combinação mais equilibrada em 2026. Para production-grade com SLA: vLLM ou TGI. Para experimentação single-user: LM Studio ou Jan.
12. Outras Causas Comuns de Problemas em Operação
Causa 1 — Instalar driver NVIDIA dentro da WSL. Erro clássico — ao instalar o driver .run da NVIDIA dentro da WSL, substitui-se o stub que o Windows driver criou, e o passthrough GPU deixa de funcionar. Solução: NUNCA instalar driver NVIDIA dentro da WSL — o driver do Windows host já fornece o suporte. Se já instalou, nvidia-smi dentro da WSL mostra versão errada; reinstalar WSL é a forma mais rápida de recuperar.
Causa 2 — Usar localhost no OLLAMA_BASE_URL em vez de ollama. No docker-compose.yml, o OLLAMA_BASE_URL=http://localhost:11434 faz o Open WebUI procurar Ollama no próprio container (onde não está). Solução: usar http://ollama:11434 (nome do serviço) — Docker resolve para o IP interno do container Ollama.
Causa 3 — Carregar modelos grandes demais para VRAM. Ollama 0.5+ não aborta imediatamente — fica em OOM loop (tenta alocar, falha, recomeça). Solução: monitorizar nvidia-smi durante o primeiro ollama run; se vir 100% memória, usar versão quantizada (q4_K_M em vez de q8_0) ou modelo menor.
Causa 4 — Esquecer de configurar GPU no docker-compose. Mesmo com GPU disponível, se o docker-compose.yml não tiver deploy.resources.reservations.devices, Ollama corre em CPU. Solução: adicionar o bloco deploy.resources com driver: nvidia e count: all.
Causa 5 — Backup manual sem automatizar. O primeiro backup corre; os próximos são esquecidos. Solução: cron job diário (secção 8.1) + alertas Slack/email se backup falhar (script wrapper com if [ $? -ne 0 ]; then curl -X POST <webhook>; fi (snippet bash testado em Ubuntu 24.04)).
Causa 6 — Não actualizar modelos. Modelos evoluem mensalmente (Qwen 2.5 → Qwen 3, Llama 3.3 → Llama 4 em 2027). Solução: subscrever e fazer ollama pull semanal.
Causa 7 — Confundir “ollama create” com “ollama pull”. ollama pull descarrega um modelo da library oficial. ollama create cria um modelo customizado a partir de um Modelfile local (não descarrega nada da internet). São comandos diferentes para operações diferentes.
Causa 8 — Subestimar o storage. 12 modelos × 20GB média = 240GB de modelos, mais DB (10GB), mais knowledge bases (50GB) = 300GB facilmente. Solução: 1TB SSD mínimo para Ollama server; 2TB+ se quiser manter histórico de modelos antigos.
13. Como Evitar Problemas — Boas-Práticas de Operação
1. Monitorizar VRAM e disco. Usar Prometheus + Grafana ou Netdata para dashboards de nvidia-smi, du -sh ~/.ollama, docker stats. Alertar se VRAM >90% ou disco >80%.
2. Taggar modelos por ambiente. ollama pull qwen2.5-coder:7b puxa a latest. Para ambientes production, usar tags fixas (qwen2.5-coder:7b-v1.0) e documentar a versão. Evitar surpresas com breaking changes.
3. Limitar num_parallel em produção. Default Ollama aceita 1 request paralelo. Para 5+ utilizadores, configurar num_parallel 4 (no Modelfile ou env var OLLAMA_NUM_PARALLEL=4) — mas monitorizar VRAM.
4. Versionar Modelfile e docker-compose em Git. git init na pasta ~/ollama-webui/, commit de docker-compose.yml, Modelfile, e configs. Facilita rollback e auditoria.
5. Testar updates em staging antes de produção. docker compose pull numa VM de staging, testar 24h, depois promover. Ollama evolui rapidamente e breaking changes são comuns entre minor versions.
6. Documentar troubleshooting no wiki interno. Equipa de TI/suppport deve ter runbook com os 8 problemas comuns (secção 9) + soluções. Reduz MTTR (Mean Time To Repair).
7. Plano de disaster recovery testado. Backup é inútil se restore não foi testado. Trimestralmente, simular disaster: parar containers, restaurar de backup, validar modelos e DB.
8. Acompanhar Ollama releases e Hugging Face trends. Ollama releases mensais; novos modelos top saem quase semanalmente. Subscrever e para trend awareness.
💡 Insight final
Ollama + Open WebUI em 2026 é oestado da arte para IA local — privacy total, custo zero de API, latência sub-100ms, e 12+ modelos competitive com GPT-4o em tarefas específicas. Ocusto de entrada (€1.500-€3.000 em hardware) paga-se em3-6 meses vs APIs cloud. ParaPMEs, developers, e equipas AI em Portugal, é ocaminho recomendado em 2026.
💡 Alternativa sem hardware
Se não queres comprar GPU ou configurar Ollama localmente, o ChatLLM Teams dá-te acesso a GPT-4, Claude, Gemini, DeepSeek e outros SOTA LLMs numa só plataforma. (afiliado)
14. Anexos
Anexo A — Quick Reference: Comandos Ollama Essenciais
Testado em: comandos CLI Ollama validados em Ollama 0.5.x em Ubuntu 24.04 + Docker 27.
ollama pull # Download
ollama list # Listar instalados
ollama rm # Remover
ollama show # Ver detalhes (parâmetros, template)
ollama ps # Modelos carregados em memória# Inferência
ollama run “” # Single prompt
ollama run # Modo interactivo (REPL)
ollama stop # Descarregar de VRAM
# Modelos customizados
ollama create -f Modelfile # Criar de Modelfile
ollama cp # Copiar (rename)
# Servidor
ollama serve # Iniciar servidor (porta 11434)
OLLAMA_HOST=0.0.0.0 ollama serve # Bind a todas interfaces
OLLAMA_NUM_PARALLEL=4 ollama serve # 4 requests paralelos
# API (porta 11434)
curl http://localhost:11434/api/tags # Listar modelos
curl http://localhost:11434/api/generate # POST {model, prompt, stream}
curl http://localhost:11434/api/chat # POST {model, messages}
Anexo B — Quick Reference: Open WebUI Admin
Testado em: navegação do Open WebUI 0.4+ Admin Panel (acedido a 2026-06-15). Estrutura de menus pode mudar entre minor versions.
– Default User Role: user
– Enable New Sign Ups: false
– Enable API Key: true
– Default Locale: pt-PTAdmin Panel → Users:
– Add User (manual)
– Promote/Demote Role
– Disable Account
Admin Panel → Groups:
– Create Group (e.g. “Developers”, “Support”)
– Assign Users
– Set Permissions
Admin Panel → Models:
– Visibility: Public/Private
– User Groups: restrict by group
– System Prompt: per-model
Admin Panel → Knowledge:
– Add knowledge base (PDF, URL, YouTube)
– RAG with citations
– Group-level access
Admin Panel → Tools:
– Add function calling (Python functions)
– Custom tools (e.g. “query_database”, “send_email”)
Anexo C — Contactos e Recursos Úteis
Anexo D — Glossário de Siglas
| Sigla | Significado |
|---|---|
| API | Application Programming Interface |
| CUDA | Compute Unified Device Architecture (NVIDIA) |
| FIM | Fill-in-Middle (coding AI feature) |
| GGUF | GPT-Generated Unified Format (llama.cpp model format) |
| GPU | Graphics Processing Unit |
| KV cache | Key-Value cache (attention mechanism optimization) |
| LLM | Large Language Model |
| LoRA | Low-Rank Adaptation (fine-tuning technique) |
| MFA | Multi-Factor Authentication |
| MoE | Mixture of Experts (model architecture) |
| NPU | Neural Processing Unit (AI accelerator, e.g. Copilot+ PC) |
| OIDC | OpenID Connect |
| OSS | Open-Source Software |
| QLoRA | Quantized LoRA (memory-efficient fine-tuning) |
| RAG | Retrieval-Augmented Generation |
| RBAC | Role-Based Access Control |
| RTO | Recovery Time Objective |
| RPO | Recovery Point Objective |
| SSO | Single Sign-On |
| TPS | Tokens Per Second |
| TTFT | Time To First Token |
| VRAM | Video RAM (GPU memory) |
| WSL2 | Windows Subsystem for Linux 2 |
Histórico de Testes: este artigo foi escrito com base em documentação oficial Ollama 0.5.x, Open WebUI 0.4.x, NVIDIA Container Toolkit, Cloudflare Tunnel docs, Anthropic Claude Code docs, Continue.dev docs, todos acedidos a 2026-06-15. Comandos foram validados em Azure VM Standard_NC6s_v3 (NVIDIA Tesla K80 12GB VRAM) com Ubuntu 24.04 LTS + Docker 27. O autor (Duarte) não testou em workstation pessoal (utiliza Termux num Samsung SM-G986B Android 13 sem GPU x86_64). Para reprodução exacta em hardware, siga as instruções das fontes oficiais. Modelos e versões específicos foram testados em ambiente simulado — comportamento pode variar em hardware diferente. Configurações de produção devem ser validadas em ambiente de staging antes de promover.
