Desplegar Llama 3.3 y Mistral en local con Ollama y Open WebUI en Ubuntu 24.04
Actualizado: 2026-05-17
Puntos clave
- Ollama 0.5+ corre Llama 3.3 70B Q4 cómodamente en una RTX 4090 (24 GB VRAM); Mistral Large 2 cuantizado entra en la misma máquina.
- Open WebUI sustituye al ollama CLI para usuarios no técnicos; mismo ecosistema, UI moderna.
- La pieza que separa “demo en mi portátil” de “servicio real” es la exposición tras Traefik con TLS y autenticación por IP/usuario — el segundo bloque del tutorial.
- Cuantización Q4_K_M ofrece el mejor trade-off calidad/memoria en 2026; bajar a Q3 sólo si la GPU es estrecha.
Requisitos previos: Ubuntu 24.04 + drivers NVIDIA
Hardware mínimo razonable:
- GPU NVIDIA con ≥16 GB VRAM (RTX 4080/4090, A4000, RTX 5000 Ada).
- 32 GB RAM, 1 TB NVMe.
- Ubuntu 24.04 LTS Server.
Drivers NVIDIA + CUDA:
sudo ubuntu-drivers autoinstall
sudo reboot
nvidia-smi # verificar que la GPU apareceDocker + nvidia-container-toolkit (sigue como-instalar-docker-en-ubuntu-22-04 pero pasos equivalentes en 24.04):
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
distribution=$(. /etc/os-release; echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list |
sudo 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 update && sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerVerificar: docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi.
Instalar Ollama y verificar GPU
curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl enable --now ollama
ollama --version # debe decir 0.5+ a fecha de 2026-06Comprobación de GPU detectada:
journalctl -u ollama | grep -i "gpu|cuda" | head -10Debe aparecer cuda y compute capability para confirmar que Ollama usa la GPU. Si dice using cpu, repasar nvidia-smi y nvidia-container-toolkit.
Descargar Llama 3.3 y Mistral cuantizados
Modelos recomendados en 2026:
ollama pull llama3.3:70b-instruct-q4_K_M # ~40 GB descarga, ~24 GB VRAM
ollama pull mistral-large:latest # ~70 GB descarga, requiere 48 GB VRAM o offload
ollama pull qwen2.5-coder:32b-instruct-q4_K_M # gran modelo de códigoProbar:
ollama run llama3.3:70b-instruct-q4_K_M "Explica qué es MCP en una frase."Latencia esperada: ~30-50 tokens/s en una RTX 4090 con un prompt corto.
Open WebUI con docker compose
# docker-compose.yml
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
extra_hosts:
- host.docker.internal:host-gateway
environment:
OLLAMA_BASE_URL: http://host.docker.internal:11434
WEBUI_SECRET_KEY: "${WEBUI_SECRET_KEY}"
ports:
- "127.0.0.1:3000:8080"
volumes:
- open-webui-data:/app/backend/data
volumes:
open-webui-data:docker compose up -d. Acceso local: http://127.0.0.1:3000. Crea cuenta admin la primera vez.
Exponer detrás de Traefik con TLS
Si ya tienes Traefik (sigue como-instalar-traefik-con-docker-compose), añade etiquetas:
services:
open-webui:
networks: [traefik]
labels:
- traefik.enable=true
- traefik.http.routers.openwebui.rule=Host(`llm.tu-dominio.com`)
- traefik.http.routers.openwebui.entrypoints=websecure
- traefik.http.routers.openwebui.tls.certresolver=letsencrypt
- traefik.http.services.openwebui.loadbalancer.server.port=8080
networks:
traefik:
external: trueQuita el ports: localhost cuando uses Traefik.
Limitar acceso por IP y por usuario
Capa 1 — IP allowlist en Traefik:
labels:
- traefik.http.middlewares.openwebui-ipallow.ipallowlist.sourcerange=10.0.0.0/8,192.168.1.0/24,TU.IP.PUBLICA/32
- traefik.http.routers.openwebui.middlewares=openwebui-ipallow@dockerCapa 2 — autenticación nativa de Open WebUI: en Settings → Users marcar “Require email verification” y desactivar ENABLE_SIGNUP=false para que sólo admin invite.
Capa 3 — auditoría: configurar WEBUI_LOG_LEVEL=info y enviar a Loki o Elasticsearch para conservar quién consulta qué — en empresa, especialmente con datos sensibles, la trazabilidad es exigible.
Para el lado del fine-tuning si los modelos genéricos no bastan, ver el cluster próximo de Phase 3 sobre LoRA + Unsloth. Y para entender cómo este Ollama encaja en una pila RAG completa, RAG con Postgres + pgvector.
Repos de referencia: ollama.com[1], github.com/open-webui[2], traefik.io[3].