Curso de servidores linux
PARTE 1 — Preparar el servidor Linux
Comprobar memoria disponible
1free -h
Con 2GB debería mostrar algo como:
Mem: 1.9Gi
Si tienes menos de 1.5GB libres → activa swap (opcional pero recomendado):
1sudo fallocate -l 2G /swapfile 2sudo chmod 600 /swapfile 3sudo mkswap /swapfile 4sudo swapon /swapfile
Instalar Ollama
1curl -fsSL https://ollama.com/install.sh | sh
Comprobar que está instalado:
1ollama --version
PARTE 2 — Descargar y probar el modelo
Descargar Qwen 0.5B
1ollama pull qwen2.5:0.5b
Probar que funciona
1ollama run qwen2.5:0.5b
Escribe algo como:
Explica qué es Linux en una frase.
Si responde → perfecto ✅ Ya sabes que tu servidor lo soporta.
Sal con:
/bye
PARTE 3 — Configurarlo como servicio accesible desde el exterior
Por defecto, Ollama escucha solo en localhost.
Debemos hacer que escuche en red.
Editar el servicio systemd
1sudo systemctl edit ollama
Se abrirá un editor. Añade:
1[Service] 2Environment="OLLAMA_HOST=0.0.0.0:11434"
Guarda y sal.
Reiniciar el servicio
1sudo systemctl daemon-reexec 2sudo systemctl restart ollama
Comprobar que está activo:
1sudo systemctl status ollama
Debe decir:
active (running)
PARTE 4 — Abrir el puerto en el firewall
Si usas UFW:
1sudo ufw allow 11434/tcp
Verificar:
1sudo ufw status
Debe aparecer:
11434/tcp ALLOW
PARTE 5 — Probar desde el propio servidor
1curl http://localhost:11434/api/tags
Debe devolver algo como:
1{ 2 "models": [ 3 { "name": "qwen2.5:0.5b" } 4 ] 5}
PARTE 6 — Probar desde Windows (otro equipo)
Ahora necesitas la IP del servidor:
1ip a
Busca algo como:
192.168.1.50
En Windows (PowerShell)
1curl http://192.168.1.50:11434/api/generate ` 2 -Method POST ` 3 -ContentType "application/json" ` 4 -Body '{ 5 "model": "qwen2.5:0.5b", 6 "prompt": "Explica qué es Docker en una frase" 7 }'
Si devuelve texto → 🎉 ya estás usando tu modelo remoto.
PARTE 7 — Usarlo desde código (ejemplo práctico)
1fetch("http://192.168.1.50:11434/api/generate", { 2 method: "POST", 3 headers: { "Content-Type": "application/json" }, 4 body: JSON.stringify({ 5 model: "qwen2.5:0.5b", 6 prompt: "Resume qué es una base de datos" 7 }) 8}) 9.then(res => res.json()) 10.then(data => console.log(data.response));
PARTE 9 — Optimización para 2GB RAM
Puedes limitar memoria reduciendo contexto:
En las llamadas API añade:
1"options": { 2 "num_ctx": 256 3}
Ejemplo completo:
1{ 2 "model": "qwen2.5:0.5b", 3 "prompt": "Explica Linux", 4 "options": { 5 "num_ctx": 256 6 } 7}
Menos contexto → menos RAM.