DeepSeek R1 — Servidor headless + UI local

Arquitectura

  • Servidor Ubuntu: solo Ollama con DeepSeek R1 32B. Sin UI, sin Docker.

  • Tu máquina local: Open WebUI en Docker, conectada al servidor por red.

  • Control total: scripts para encender/apagar cada parte de forma independiente.

Instalación en el servidor (una sola vez)

# 1. Instalar Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 2. Copiar el script al servidor
scp ai-server.sh usuario@IP-SERVIDOR:~/
ssh usuario@IP-SERVIDOR "chmod +x ~/ai-server.sh"

# 3. Descargar el modelo (primera vez, ~19 GB, puede tardar)
ssh usuario@IP-SERVIDOR "ollama pull deepseek-r1:32b"

# 4. Verificar que NVIDIA está bien configurado
ssh usuario@IP-SERVIDOR "nvidia-smi"

Instalación en tu máquina local (una sola vez)

# 1. Instalar Docker Desktop (Mac/Windows) o Docker Engine (Linux)
# https://docs.docker.com/get-docker/

# 2. Editar ai-client.sh y cambiar SERVER_IP por la IP de tu servidor
nano ai-client.sh

# 3. Primera vez: bajará la imagen de Open WebUI (~1 GB)
./ai-client.sh start

Uso diario

Cuando quieres usar DeepSeek

# En el servidor:
./ai-server.sh start

# En tu máquina local:
./ai-client.sh start

# → Abre http://localhost:3000

Cuando necesitas el servidor libre

# En tu máquina local (opcional):
./ai-client.sh stop

# En el servidor:
./ai-server.sh stop

# → GPU y RAM completamente liberadas

Ver estado en cualquier momento

./ai-server.sh status   # en el servidor
./ai-client.sh status   # en tu máquina local

Firewall en el servidor (recomendado)

Abre el puerto de Ollama solo para tu red local:

# Permitir solo desde tu red local (ejemplo: 192.168.1.0/24)
sudo ufw allow from 192.168.1.0/24 to any port 11434

# Verificar
sudo ufw status

Si usas SSH tunnel (más seguro, sin abrir puertos)

En tu máquina local:

ssh -L 11434:localhost:11434 usuario@IP-SERVIDOR -N &

Luego en ai-client.sh cambia:

SERVER_IP="127.0.0.1"

y ya no necesitas abrir el firewall.

Resolución de problemas

Problema

Solución

«No se puede conectar al servidor»

Verificar ./ai-server.sh status y el firewall

Open WebUI tarda en cargar

Normal al inicio, espera ~10 seg

GPU no se libera después de stop

Esperar 5-10 seg o verificar con nvidia-smi

Modelo muy lento

Asegurarse de que el modelo está en VRAM con ollama ps