En el contexto actual de la inteligencia artificial, cada vez es más relevante poder ejecutar modelos de lenguaje de forma local (on-premise), sin depender de servicios externos. Esto no solo mejora la privacidad, sino que también reduce costos y latencia. En este escenario, Ollama se posiciona como una de las herramientas más prácticas para ejecutar modelos LLM (Large Language Models) directamente en tu máquina.
Nota importante: Esta guía está pensada como un laboratorio de pruebas y aprendizaje, ideal para ejecutar Ollama en entornos de desarrollo (por ejemplo, una laptop o estación de trabajo con CPU multicore y 16 GB de RAM). Sin embargo, si el objetivo es obtener mejor rendimiento, menor latencia y capacidad de atender múltiples solicitudes, se recomienda utilizar hardware más robusto, especialmente una GPU dedicada (preferiblemente NVIDIA con al menos 12–24 GB de VRAM), junto con 32–64 GB de RAM y almacenamiento NVMe. Esta configuración permite aprovechar plenamente el potencial de los modelos de lenguaje y llevar la solución a un entorno más cercano a producción.
¿Qué es Ollama?
Ollama es un runtime local para modelos de inteligencia artificial, diseñado para facilitar la ejecución de modelos como LLaMA 3, Codex, Claude Code y asistentes como OpenClaw.
Funciona como un servidor local que expone una API REST, permitiendo ejecutar modelos sin conexión a la nube (previamente descargados), integrar IA en aplicaciones propias y automatizar tareas con lenguaje natural. Podemos interactuar con Ollama desde la línea de comandos, así también mediante Open WebUI (contenerizado).
Instalación de Ollama:
fraterneo@fedora:~$ curl -fsSL https://ollama.com/install.sh | sh
>>> Installing ollama to /usr/local
[sudo] password for fraterneo:
>>> Downloading ollama-linux-amd64.tar.zst
######################################################################## 100.0%
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink '/etc/systemd/system/default.target.wants/ollama.service' → '/etc/systemd/system/ollama.service'.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
Iniciar Ollama desde el CLI para que descargue llama3 (unos 5GB):
fraterneo@fedora:~$ ollama run llama3
pulling manifest
pulling 6a0746a1ec1a: 100% ▕████████████████████████████████████████████████████▏ 4.7 GB
pulling 4fa551d4f938: 100% ▕████████████████████████████████████████████████████▏ 12 KB
pulling 8ab4849b038c: 100% ▕████████████████████████████████████████████████████▏ 254 B
pulling 577073ffcc6c: 100% ▕████████████████████████████████████████████████████▏ 110 B
pulling 3f8eb4da87fa: 100% ▕████████████████████████████████████████████████████▏ 485 B
verifying sha256 digest
writing manifest
success
>>> Send a message (/? for help)
Interacción con un prompt sencillo:
fraterneo@fedora:~$ ollama run llama3
>>> dame una lista de hoteles economicos en Puerto Plata, RD
Aquí te dejo una lista de hoteles económicos en Puerto Plata, República Dominicana:
1. **Hotel Cortecito**: Un hotel con 24 habitaciones y suites a un precio asequible, ubicado en el corazón del centro histórico de
Puerto Plata. Precio: aproximadamente $40-$60 USD por noche.
2. **Hostal La Casa del Sol**: Un hostal con 12 habitaciones y una atmósfera relajada, situado en la zona céntrica de Puerto Plata.
Precio: aproximadamente $30-$50 USD por noche.
3. **Hotel Villa Colonial**: Un hotel con 25 habitaciones y suites, ubicado a pocos pasos del Malecón de Puerto Plata. Precio:
aproximadamente $40-$70 USD por noche.
4. **Casa Conde Hotel Puerto Plata**: Un hotel con 140 habitaciones y suites, situado en la playa de Puerto Plata. Precio:
aproximadamente $60-$100 USD por noche.
5. **Hotel La Residencia**: Un hotel con 16 habitaciones y suites, ubicado en el corazón del centro histórico de Puerto Plata. Precio:
aproximadamente $50-$80 USD por noche.
6. **Hostal El Jardín**: Un hostal con 10 habitaciones y una atmósfera agradable, situado en la zona céntrica de Puerto Plata. Precio:
aproximadamente $25-$40 USD por noche.
7. **Hotel Puerta del Mar**: Un hotel con 30 habitaciones y suites, ubicado en la playa de Puerto Plata. Precio: aproximadamente
$50-$80 USD por noche.
8. **Hostal La Casa de los Abuelos**: Un hostal con 6 habitaciones y una atmósfera familiar, situado en el corazón del centro
histórico de Puerto Plata. Precio: aproximadamente $20-$35 USD por noche.
Es importante tener en cuenta que los precios pueden variar dependiendo de la temporada y la disponibilidad, así que te recomiendo
verificar los precios y ofertas en los sitios web de cada hotel o hostal antes de hacer una reserva.
También es recomendable leer las reseñas y revisiones de otros viajeros para obtener una idea más precisa de la calidad del servicio y
las condiciones del hotel.
>>> Send a message (/? for help)
API de Ollama
Ollama expone su API REST en http://localhost:11434/api/generate, por lo que podemos realizar pruebas usando curl y enviar un prompt sencillo y esperar respuesta en la misma línea de comandos. Dicho prompt debe ir dentro de una estructura en formato .JSON y la respuesta del modelo también viene en ese mismo formato con muchos metadatos que en éste momento no nos interesan, así que lo filtraremos el campo response usando el comando jq.
fraterneo@fedora:~$ curl http://localhost:11434/api/generate -d '{ "model": "llama3", "prompt": "Explica en 50 palabras que es el Kernel Linux", "stream": false }' | jq '.response'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1048 100 951 100 97 101 10 0:00:09 0:00:09 --:--:-- 298
"El kernel Linux es el núcleo del sistema operativo Linux.
Es responsable de gestionar los recursos del sistema, como la memoria y los
dispositivos, y de proporcionar servicios básicos como el manejo
de procesos, la gestión de archivos y la comunicación con hardware."
¿Qué es Open WebUI?
Es una interfaz web de código abierto y autoalojada diseñada para interactuar con modelos de lenguaje y sistemas de IA. Su objetivo es ofrecer una alternativa ligera, personalizable y centrada en la privacidad a las plataformas comerciales de chat con IA.
Instalación de Docker:
fraterneo@fedora:~$ sudo dnf install -y docker
[sudo] password for fraterneo:
Updating and loading repositories:
Repositories loaded.
Package Arch Version Repository Size
Installing:
moby-engine x86_64 29.3.1-1.fc43 updates 103.8 MiB
Installing dependencies:
container-selinux noarch 4:2.247.0-1.fc43 updates 74.2 KiB
containerd x86_64 2.1.6-1.fc43 updates 89.7 MiB
docker-cli x86_64 29.3.1-1.fc43 updates 28.2 MiB
libbsd x86_64 0.12.2-6.fc43 fedora 423.2 KiB
libmd x86_64 1.1.0-8.fc43 fedora 102.8 KiB
libnet x86_64 1.3-6.fc43 fedora 132.5 KiB
libslirp x86_64 4.9.1-2.fc43 fedora 152.8 KiB
moby-filesystem noarch 29.3.1-1.fc43 updates 0.0 B
pigz x86_64 2.8-7.fc43 fedora 163.0 KiB
rootlesskit x86_64 2.3.6-2.fc43 updates 23.6 MiB
runc x86_64 2:1.4.1-1.fc43 updates 10.3 MiB
slirp4netns x86_64 1.3.1-3.fc43 fedora 89.3 KiB
tini-static x86_64 0.19.0-11.fc43 fedora 774.1 KiB
Installing weak dependencies:
criu x86_64 4.2-11.fc43 updates 1.6 MiB
docker-buildx x86_64 0.31.1-1.fc43 updates 92.9 MiB
moby-engine-nano noarch 29.3.1-1.fc43 updates 103.7 KiB
moby-engine-rootless-extras noarch 29.3.1-1.fc43 updates 24.4 KiB
Transaction Summary:
Installing: 18 packages
Total size of inbound packages is 90 MiB. Need to download 90 MiB.
After this operation, 352 MiB extra will be used (install 352 MiB, remove 0 B).
[ 1/18] pigz-0:2.8-7.fc43.x86_64 100% | 506.9 KiB/s | 95.3 KiB | 00m00s
[ 2/18] moby-filesystem-0:29.3.1-1.fc43 100% | 303.9 KiB/s | 16.1 KiB | 00m00s
[ 3/18] container-selinux-4:2.247.0-1.f 100% | 537.1 KiB/s | 58.0 KiB | 00m00s
[ 4/18] docker-cli-0:29.3.1-1.fc43.x86_ 100% | 4.3 MiB/s | 8.0 MiB | 00m02s
[ 5/18] tini-static-0:0.19.0-11.fc43.x8 100% | 3.2 MiB/s | 322.3 KiB | 00m00s
[ 6/18] runc-2:1.4.1-1.fc43.x86_64 100% | 5.6 MiB/s | 3.5 MiB | 00m01s
[ 7/18] moby-engine-nano-0:29.3.1-1.fc4 100% | 1.3 MiB/s | 56.8 KiB | 00m00s
[ 8/18] moby-engine-rootless-extras-0:2 100% | 619.3 KiB/s | 24.2 KiB | 00m00s
[ 9/18] rootlesskit-0:2.3.6-2.fc43.x86_ 100% | 4.9 MiB/s | 7.4 MiB | 00m02s
[10/18] moby-engine-0:29.3.1-1.fc43.x86 100% | 4.0 MiB/s | 22.4 MiB | 00m06s
[11/18] criu-0:4.2-11.fc43.x86_64 100% | 3.7 MiB/s | 579.4 KiB | 00m00s
[12/18] libbsd-0:0.12.2-6.fc43.x86_64 100% | 1.6 MiB/s | 122.5 KiB | 00m00s
[13/18] libnet-0:1.3-6.fc43.x86_64 100% | 1.1 MiB/s | 60.1 KiB | 00m00s
[14/18] libmd-0:1.1.0-8.fc43.x86_64 100% | 963.6 KiB/s | 47.2 KiB | 00m00s
[15/18] slirp4netns-0:1.3.1-3.fc43.x86_ 100% | 955.8 KiB/s | 46.8 KiB | 00m00s
[16/18] libslirp-0:4.9.1-2.fc43.x86_64 100% | 1.3 MiB/s | 78.6 KiB | 00m00s
[17/18] docker-buildx-0:0.31.1-1.fc43.x 100% | 5.6 MiB/s | 21.2 MiB | 00m04s
[18/18] containerd-0:2.1.6-1.fc43.x86_6 100% | 3.2 MiB/s | 26.2 MiB | 00m08s
--------------------------------------------------------------------------------
[18/18] Total 100% | 9.4 MiB/s | 90.1 MiB | 00m10s
Running transaction
[ 1/20] Verify package files 100% | 82.0 B/s | 18.0 B | 00m00s
[ 2/20] Prepare transaction 100% | 93.0 B/s | 18.0 B | 00m00s
[ 3/20] Installing moby-filesystem-0:29 100% | 18.6 KiB/s | 400.0 B | 00m00s
[ 4/20] Installing docker-cli-0:29.3.1- 100% | 276.9 MiB/s | 28.2 MiB | 00m00s
[ 5/20] Installing libslirp-0:4.9.1-2.f 100% | 21.5 MiB/s | 154.3 KiB | 00m00s
[ 6/20] Installing slirp4netns-0:1.3.1- 100% | 6.3 MiB/s | 90.7 KiB | 00m00s
[ 7/20] Installing libmd-0:1.1.0-8.fc43 100% | 12.8 MiB/s | 104.5 KiB | 00m00s
[ 8/20] Installing libbsd-0:0.12.2-6.fc 100% | 51.8 MiB/s | 424.7 KiB | 00m00s
[ 9/20] Installing libnet-0:1.3-6.fc43. 100% | 26.2 MiB/s | 134.0 KiB | 00m00s
[10/20] Installing rootlesskit-0:2.3.6- 100% | 251.1 MiB/s | 23.6 MiB | 00m00s
[11/20] Installing runc-2:1.4.1-1.fc43. 100% | 149.2 MiB/s | 10.3 MiB | 00m00s
[12/20] Installing containerd-0:2.1.6-1 100% | 305.4 MiB/s | 89.8 MiB | 00m00s
[13/20] Installing tini-static-0:0.19.0 100% | 13.8 MiB/s | 775.4 KiB | 00m00s
[14/20] Installing container-selinux-4: 100% | 7.7 KiB/s | 77.8 KiB | 00m10s
[15/20] Installing pigz-0:2.8-7.fc43.x8 100% | 2.6 MiB/s | 164.5 KiB | 00m00s
>>> Running sysusers scriptlet: moby-engine-0:29.3.1-1.fc43.x86_64
>>> Finished sysusers scriptlet: moby-engine-0:29.3.1-1.fc43.x86_64
>>> Scriptlet output:
>>> Creating group 'docker' with GID 975.
>>>
[16/20] Installing moby-engine-0:29.3.1 100% | 429.7 MiB/s | 104.0 MiB | 00m00s
>>> Running %post scriptlet: moby-engine-0:29.3.1-1.fc43.x86_64
>>> Finished %post scriptlet: moby-engine-0:29.3.1-1.fc43.x86_64
>>> Scriptlet output:
>>> Created symlink '/etc/systemd/system/sockets.target.wants/docker.socket' → '
>>>
[17/20] Installing moby-engine-rootless 100% | 1.7 MiB/s | 24.8 KiB | 00m00s
[18/20] Installing criu-0:4.2-11.fc43.x 100% | 42.1 MiB/s | 1.6 MiB | 00m00s
[19/20] Installing docker-buildx-0:0.31 100% | 404.4 MiB/s | 93.0 MiB | 00m00s
[20/20] Installing moby-engine-nano-0:2 100% | 14.3 KiB/s | 104.4 KiB | 00m07s
Complete!
Habilitar/Iniciar el servicio de Docker:
fraterneo@fedora:~$ sudo systemctl enable --now docker.service
Created symlink '/etc/systemd/system/multi-user.target.wants/docker.service' → '/usr/lib/systemd/system/docker.service'.
Desplegar Open WebUI:
fraterneo@fedora:~$ sudo docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Unable to find image 'ghcr.io/open-webui/open-webui:main' locally
main: Pulling from open-webui/open-webui
4f4fb700ef54: Pull complete
c6aec87f9665: Pull complete
84a2afebaf4d: Pull complete
0ca4ca8e967f: Pull complete
4afda7e4a767: Pull complete
bb97a7af1971: Pull complete
71c87fe6927a: Pull complete
1076a6959a11: Pull complete
ca10a397ad2d: Pull complete
74ee6a0d91be: Pull complete
cb6955fc6e74: Pull complete
f4178cf3eeb9: Pull complete
9846260f66de: Pull complete
5801121de8a4: Pull complete
8dc200665289: Pull complete
3642169f0cc5: Download complete
dd4723f56f9c: Download complete
Digest: sha256:b8095f79a6a8ffad8f830bdacc9b5b0aef805689b31bca0b065cc2424d3cfaeb
Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
74a26297324121d30dbfdc4c1df99532aa148c7efd97f57fcd33dc15cd17c396
Accedemos a Open WebUI mediante el navegador http://localhost:8080
![]() |
| Listos para usar el modelo llama3 desde Open WebUI |
Ollama es una herramienta clave para quienes desean llevar la inteligencia artificial al entorno local, permitiendo construir soluciones avanzadas sin depender de servicios externos. Su facilidad de instalación, junto con su API simple, lo convierten en una opción ideal tanto para desarrolladores como para profesionales de ciberseguridad que buscan control total sobre sus datos.
Si has tenido experiencia previa con Ollama y Open WebUI o éste es tu primer contacto con éstas tecnologías a través de ésta guía, deja tus inquietudes y comentarios mas abajo...
Referencias:










0 comments:
Publicar un comentario