<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[p00lack Blog]]></title><description><![CDATA[Un laboratorio personal de cloud security, homelab, radio y tecnología open source.]]></description><link>https://www.p00lack.cc</link><image><url>https://cdn.hashnode.com/uploads/logos/671bda27f4744055fbd58e22/51ef18e8-9aca-49bb-aec6-85fb976f5e6f.jpg</url><title>p00lack Blog</title><link>https://www.p00lack.cc</link></image><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 11:37:47 GMT</lastBuildDate><atom:link href="https://www.p00lack.cc/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Construir un laboratorio casero para IA generativa sin gastar una fortuna]]></title><description><![CDATA[Durante bastante tiempo mi Home lab base fue una Maximus V Gene, con 32 GB de RAM y un Intel i7 3770k que, para su época, me dio muchísimas alegrías. Fue una plataforma noble, estable y de esas que un]]></description><link>https://www.p00lack.cc/construir-un-laboratorio-casero-para-ia-generativa-sin-gastar-una-fortuna</link><guid isPermaLink="true">https://www.p00lack.cc/construir-un-laboratorio-casero-para-ia-generativa-sin-gastar-una-fortuna</guid><dc:creator><![CDATA[Jonatan Tux]]></dc:creator><pubDate>Wed, 25 Mar 2026 02:11:09 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/31385206-f956-4d86-a6f7-31e191785fbb.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Durante bastante tiempo mi Home lab base fue una <strong>Maximus V Gene</strong>, con <strong>32 GB de RAM</strong> y un <strong>Intel i7</strong> 3770k que, para su época, me dio muchísimas alegrías. Fue una plataforma noble, estable y de esas que uno termina conociendo de memoria: sabes hasta donde la podes exigir, que cargas tolera bien y en que momento conviene no pedirle mas.</p>
<p>No es un equipo pensado para "IA generativa", pero si fue una maquina con la que aprendí algo importante: cuando tenes curiosidad técnica, muchas veces el limite no es el hardware perfecto sino empezar con lo que ya tenes.</p>
<p>Con esa base fui probando entornos, virtualizacion, servicios locales y varias ideas que en su momento no tenían nombre de moda, pero que en esencia ya apuntaban a lo mismo: montar laboratorio propio, controlar el entorno y aprender haciendo.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/6484387c-b0f9-420f-ba8d-7615e447226e.png" alt="" style="display:block;margin:0 auto" />

<h2>Cuando el upgrade no llega por compra, sino por oportunidad</h2>
<p>En un momento apareció una oportunidad inesperada: me regalaron una <strong>H310M H 2.0</strong>.</p>
<p>No era el tipico upgrade que uno planifica durante meses comparando benchmarks, VRM, lanes PCIe o capacidad de expansión. De hecho, desde afuera podría parecer un movimiento raro: pasar de una placa que en su momento estaba bastante bien posicionada a otra mucho mas simple.</p>
<p>Pero en laboratorios personales no siempre gana "la mejor placa". Muchas veces gana la que te permite seguir construyendo.</p>
<p>Y eso fue exactamente lo que paso.</p>
<p>La H310M H 2.0 junto con un i7 8700 y 32 gb de ram ddr4 me dieron una excusa perfecta para reorganizar lo que tenia, rearmar el stack, separar mejor usos y convertir ese cambio en algo mas interesante que un simple recambio de motherboard: <strong>termino siendo la base de mi home lab para Gen AI</strong>.</p>
<p>Con el tiempo, esa base también se fue fortaleciendo del lado que mas impacto tenia para este tipo de laboratorio: la GPU. En un momento pude comprar una <strong>NVIDIA A2000 de 12 GB</strong>, y mas adelante sume una <strong>NVIDIA A5000 de 24 GB</strong>.</p>
<p>Ese salto fue clave.</p>
<p>Porque una cosa es tener ganas de experimentar con Gen AI en local, y otra muy distinta es empezar a contar con hardware que realmente te deja probar modelos, probar inferencia con mas margen y construir flujos mas ambiciosos sin quedar tan limitado desde el arranque.</p>
<h2>Del PC de uso general al home lab</h2>
<p>Ese cambio me ayudo a pensar el equipo de otra manera.</p>
<p>Ya no como un simple servidor "para todo", sino como un entorno donde podía levantar herramientas, romper cosas, reconstruir servicios y probar flujos sin depender de cloud desde el minuto cero.</p>
<p>Cuando armas un home lab, incluso con hardware modesto, empezás a mirar distinto:</p>
<ul>
<li><p>que servicios querés dejar persistentes</p>
</li>
<li><p>que cosas pueden correr en contenedores</p>
</li>
<li><p>que procesos querés automatizar</p>
</li>
<li><p>que parte del lab sirve para aprender y que parte sirve para producir valor real</p>
</li>
</ul>
<p>En mi caso, el foco se fue yendo cada vez mas hacia <strong>Gen AI en local</strong>.</p>
<p>No necesariamente para competir con infra grande, sino para entender mejor el ecosistema, iterar rápido y tener control real sobre el entorno donde corro modelos, herramientas y experimentos.</p>
<h2>Jugar con Gen AI en casa, pero con intención</h2>
<p>Una de las cosas que mas me interesaba era evitar el típico laboratorio caótico donde todo vive suelto, sin orden y sin una forma clara de conectar piezas.</p>
<p>Por eso empece a jugar con tres componentes que, juntos, me resultaron especialmente interesantes:</p>
<ul>
<li><p><a href="https://backstage.io/"><strong>Backstage</strong></a></p>
</li>
<li><p><a href="https://ollama.com/"><strong>Ollama</strong></a></p>
</li>
<li><p><a href="https://modelcontextprotocol.io/docs/getting-started/intro"><strong>MCPs</strong></a></p>
</li>
<li><p><a href="https://n8n.io"><strong>N8N</strong></a></p>
</li>
</ul>
<p>Cada uno me resolvía una parte distinta del problema.</p>
<h2>Backstage como capa de orden</h2>
<p><a href="https://backstage.io/">Backstage</a> me resulto útil porque aporta algo que muchos laboratorios caseros no tienen al principio: <strong>estructura</strong>.</p>
<p>Cuando empezás a sumar servicios, scripts, APIs locales, repositorios, pipelines y experimentos de IA, todo se puede volver desprolijo muy rápido. Backstage ayuda a poner catalogo, documentación, relaciones entre componentes y una vista mas ordenada del ecosistema.</p>
<p>En otras palabras: deja de ser "tengo varias cosas corriendo" para convertirse en "tengo una plataforma personal que entiendo y puedo evolucionar".</p>
<p>Y eso, incluso en un home lab chico, vale mucho.</p>
<h2>Ollama para correr modelos en local</h2>
<p><a href="https://ollama.com/">Ollama</a> fue otra pieza clave porque me permitió hacer algo muy concreto: <strong>correr modelos localmente de forma simple</strong>.</p>
<p>Esa parte me interesaba especialmente por varios motivos:</p>
<ul>
<li><p>reducir dependencia de servicios externos para pruebas</p>
</li>
<li><p>entender mejor limites reales del hardware</p>
</li>
<li><p>experimentar con prompts, herramientas y automatizaciones de forma mas privada</p>
</li>
<li><p>tener un entorno repetible para hacer pruebas técnicas</p>
</li>
</ul>
<p>No hace falta tener un datacenter en casa para aprender mucho con esto. A veces alcanza con aceptar las limitaciones del equipo y usarlas a tu favor: modelos mas chicos, pruebas mas enfocadas y expectativas alineadas con el hardware que realmente tenes.</p>
<p>En mi caso, la llegada de la <strong>A2000 12 GB</strong> primero y de la <strong>A5000 24 GB</strong> después cambio bastante el panorama. Ya no era solo "ver si algo corría", sino empezar a evaluar que combinaciones de modelos, contexto y herramientas podían ser realmente útiles dentro del lab</p>
<h2>n8n para automatizar y orquestar flujos</h2>
<p><a href="https://n8n.io/">n8n</a> apareció como una pieza muy natural dentro de ese ecosistema porque me permitió bajar muchas ideas a flujos concretos.</p>
<p>Cuando empezás a combinar modelos locales, APIs, scripts, bases de datos y servicios del laboratorio, enseguida aparece una necesidad bastante práctica: <strong>orquestar</strong>. No alcanza solo con tener las piezas disponibles; también hace falta conectarlas de una manera que sea mantenible, visible y fácil de iterar.</p>
<p>Ahí n8n me resultó especialmente útil para:</p>
<ul>
<li><p>automatizar tareas repetitivas</p>
</li>
<li><p>conectar servicios locales con lógica de negocio simple</p>
</li>
<li><p>probar flujos con LLMs sin tener que codear todo desde cero</p>
</li>
<li><p>dejar procesos mas ordenados y observables.</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/631caec1-3c9c-40ae-860b-d7e5bb7dad6a.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/91de3584-aaf3-464a-9670-b64682dda89c.png" alt="" style="display:block;margin:0 auto" />

<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/8e92e3fa-cf4d-4195-b901-e0e42a8d589b.png" alt="" style="display:block;margin:0 auto" />

<h2>MCPs para conectar herramientas con contexto</h2>
<p>Otra pata importante fueron los <strong>MCPs</strong>.</p>
<p>Lo interesante acá no era solo "usar IA", sino empezar a conectar modelos con herramientas, contexto y acciones reales dentro del laboratorio. Esa capa abre una puerta mucho mas potente que el simple chat.</p>
<p>Con MCPs, la conversación deja de ser solo texto y empieza a rozar algo mas útil:</p>
<ul>
<li><p>acceso controlado a información</p>
</li>
<li><p>integración con servicios locales</p>
</li>
<li><p>interacción con herramientas del entorno</p>
</li>
<li><p>flujos mas cercanos a asistentes técnicos reales</p>
</li>
</ul>
<p>Para un home lab, esto es ideal, porque te permite experimentar con arquitectura, integración y seguridad al mismo tiempo.</p>
<h2>Lo mas valioso no fue el hardware</h2>
<p>Si miro el recorrido completo, la conclusión mas honesta es esta: <strong>lo mas valioso no fue pasar de una plataforma a otra, sino la forma en que ese cambio me obligo a repensar el uso del equipo</strong>.</p>
<p>La Maximus V Gene con 32 GB de RAM y un i7 fue una etapa importantísima. La H310M H 2.0, aun siendo una placa mas modesta, termino habilitando otra cosa: una transición mental desde "mi vieja PC" hacia "mi laboratorio".</p>
<p>Y a eso se sumo algo todavía mas determinante para el enfoque de IA: pasar por una <strong>NVIDIA A2000 de 12 GB</strong> y después incorporar una <strong>NVIDIA A5000 de 24 GB</strong>. Ahí el home lab dejo de ser solo una idea interesante y empezó a convertirse en una plataforma mucho mas capaz para experimentar en serio.</p>
<p>Y cuando esa idea se acomoda, aparecen posibilidades nuevas:</p>
<ul>
<li><p>documentar mejor</p>
</li>
<li><p>experimentar mas rápido</p>
</li>
<li><p>iterar arquitectura local</p>
</li>
<li><p>probar Gen AI sin esperar una infraestructura ideal</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/b2604a8b-70fe-4f42-a276-6dd02d1e2bfd.png" alt="" style="display:block;margin:0 auto" />

<h2>Home lab también es criterio</h2>
<p>Hay algo que me gusta mucho de estos recorridos técnicos: te obligan a construir criterio.</p>
<p>No todo pasa por comprar la ultima plataforma ni por perseguir una lista infinita de specs. A veces el avance real viene de reutilizar, adaptar, aceptar restricciones y aun así construir algo útil encima.</p>
<p>Eso fue, en buena parte, este proceso.</p>
<p>Arranqué con una Maximus V Gene como base, después apareció una H310M H 2.0 casi de casualidad, y termino en un home lab montado sobre <a href="https://k3s.io/"><strong>k3s</strong></a> <strong>(Kubernetes ultra liviano)</strong>, donde pude explorar <strong>Backstage, Ollama, n8n y MCPs</strong>.</p>
<p>En el medio, la incorporación de una <strong>A2000 de 12 GB</strong> y luego una <strong>A5000 de 24 GB</strong> le dio al laboratorio una dimensión mucho más concreta para trabajar con modelos locales. En Ollama, por ejemplo, pude correr modelos generales como llama3.1:8b, llama3.2:3b, qwen2.5:7b, mistral:7b-instruct y gemma2:9b; modelos orientados a código como qwen2.5-coder:7b y codellama:7b-instruct; modelos de seguridad como <a href="https://blogs.cisco.com/security/foundation-sec-cisco-foundation-ai-first-open-source-security-model">Foundation-Sec</a> ( <strong>Cisco Foundation AI )</strong> en varias especializaciones, <a href="https://blogs.cisco.com/security/foundation-sec-8b-reasoning-worlds-first-security-reasoning-model">sec-reasoning-es</a> y <a href="https://www.deephat.ai/"><strong>DeepHat</strong>,</a> antes conocido como <a href="https://huggingface.co/WhiteRabbitNeo"><strong>WhiteRabbitNeo</strong></a>; y también modelos de embeddings como nomic-embed-text, mxbai-embed-large y bge-m3.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/b4b65e8c-d73b-4b8f-a589-899de99b3a14.png" alt="" style="display:block;margin:0 auto" />

<p>No fue una evolución lineal ni un upgrade de catalogo. Fue algo mejor: un camino realista hacia un laboratorio personal para aprender, probar y jugar en serio con Gen AI.</p>
<p>El Case utilizado para mi Home Lab<br /><a href="https://www.printables.com/model/650130-little-boy-m-matx-pc-case">https://www.printables.com/model/650130-little-boy-m-matx-pc-case</a></p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/546f1e08-52aa-495e-967e-26818c4de496.png" alt="" style="display:block;margin:0 auto" />]]></content:encoded></item><item><title><![CDATA[Instalar receptor SDR online con OpenWebRX]]></title><description><![CDATA[Instalar receptor SDR online con OpenWebRX
OpenWebRX es un software de recepción de señales de radio mediante dispositivos SDR que opera desde una interfaz web. Esto permite visualizar y procesar seña]]></description><link>https://www.p00lack.cc/instalar-receptor-sdr-online-con-openwebrx</link><guid isPermaLink="true">https://www.p00lack.cc/instalar-receptor-sdr-online-con-openwebrx</guid><dc:creator><![CDATA[Jonatan Tux]]></dc:creator><pubDate>Tue, 24 Mar 2026 22:01:22 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/baa01c55-955d-4273-91b5-cf9df59a9d3d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Instalar receptor SDR online con OpenWebRX</strong></p>
<p><a href="https://www.openwebrx.de/">OpenWebRX</a> es un software de recepción de señales de radio mediante dispositivos SDR que opera desde una interfaz web. Esto permite visualizar y procesar señales en tiempo real desde cualquier lugar, simplemente accediendo desde un navegador web.</p>
<p>Este proyecto Open Source nació en 2015 de mano de András Retzler (HA7ILM). Pero a finales de 2019, el autor abandonó el proyecto y es cuando <a href="https://github.com/jketterl">Jakob Ketterl</a> retomó el desarrollo del proyecto añadiendo nuevas funcionalidades y mejorando el software. El proyecto comenzó a ganar popularidad y cuenta actualmente con un gran número de colaboradores.</p>
<p>En este artículo veremos cómo instalar OpenWebRX en una Raspberry Pi. Existen otras opciones disponibles para instalar este software, como imágenes para tarjetas SD, imágenes para Docker, etc. Podemos consultar todas estas opciones en su <a href="https://www.openwebrx.de/">página web</a>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/ff585171-590a-4ef8-b8ab-b2f9b044bb6a.png" alt="" style="display:block;margin:0 auto" />

<p>Añadir repositorios de instalación</p>
<p>Para poder instalar OpenWebRX en nuestra Raspberry Pi necesitamos previamente añadir los repositorios para Debian. Para ello ejecutamos los siguientes comandos:</p>
<pre><code class="language-shell">sudo bash -c 'wget -O - https://repo.openwebrx.de/debian/key.gpg.txt | apt-key add'

sudo bash -c 'echo "deb https://repo.openwebrx.de/debian/ buster main" &gt; /etc/apt/sources.list.d/openwebrx.list'

sudo apt update
</code></pre>
<p>Instalar OpenWebRx</p>
<p>Ahora ejecutamos el siguiente comando para instalar OpenWebRX:</p>
<pre><code class="language-shell">sudo apt install openwebrx
</code></pre>
<p>Durante la instalación nos pedirá una contraseña para acceder a la configuración de OpenWebRx mediante web.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/53dec219-ee66-4b51-8775-a2c6b29fc3bc.png" alt="" style="display:block;margin:0 auto" />

<p>Configuración</p>
<p>Una vez termine la instalación, accedemos desde un navegador web a la dirección IP de la Raspberry Pi y el puerto 8073.</p>
<pre><code class="language-plaintext">http://[IP_RASPBERRY]:8073/
</code></pre>
<p>Se nos mostrará la ventana principal de OpenWebRX. Si solo tenemos un SDR conectado es posible que ya podamos comenzar a usarlo, pero si tenemos varios dispositivos conectados nos mostrará un error como el siguiente y que solventaremos en los siguientes pasos.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/cf63bc16-8158-4a5b-a32d-01b5a73961fc.png" alt="" style="display:block;margin:0 auto" />

<p>Ahora hacemos clic en el botón “Settings” en la esquina superior derecha para acceder a la pantalla de configuración. Nos pedirá un usuario y una contraseña para poder entrar, para los que introduciremos “admin” y la contraseña que pusimos en el paso de instalación.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/eca89924-1dec-4198-8b88-063b648815a6.png" alt="" style="display:block;margin:0 auto" />

<p>Una vez accedemos, veremos un menú como el siguiente desde el que accederemos a los distintos ajustes.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/b1daf825-91c4-45d8-98ca-539f96b56e5e.png" alt="" style="display:block;margin:0 auto" />

<p>El primer ajuste será introducir los datos generales desde “General settings”. Aquí podemos indicar la ubicación de nuestra estación, nuestro indicativo, etc. Una vez introducimos los ajustes, hacemos clic en “Apply and save” para guardarlos.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/d744fc56-1013-43ff-abbb-0db0562b914b.png" alt="" style="display:block;margin:0 auto" />

<p>El siguiente paso es configurar nuestro dispositivo SDR. Para ello accedemos a los ajustes desde el menú principal en “SDR devices and profiles”. Aquí hacemos clic sobre el dispositivo que vayamos a configurar. Si el dispositivo no es ninguno de los mostrados, podemos añadirlo haciendo clic sobre “Add new device”, siempre y cuando esté soportado. Podemos ver los dispositivos soportados en <a href="https://github.com/jketterl/openwebrx/wiki/Supported-Hardware">este enlace</a>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/6553856c-ab3b-41b9-9830-b4c813313308.png" alt="" style="display:block;margin:0 auto" />

<p>Una vez hemos accedido a la configuración del dispositivo elegido, podemos ir añadiendo los ajustes necesarios seleccionándolos y haciendo clic sobre “Add”, y posteriormente introduciendo los valores para cada uno.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/24eda079-f3a8-4d85-b039-4589cff0562d.png" alt="" style="display:block;margin:0 auto" />

<p>Una vez introducidos los ajustes, nos quedaría configurar las bandas. OpenWebRX no permite moverse libremente por todas las frecuencias de la misma forma que hacen otros programas como SDR#. Para poder movernos en las distintas frecuencias tenemos que crear una serie de perfiles para cada frecuencia introduciendo los datos requeridos para cada una.</p>
<img src="https://cdn.hashnode.com/uploads/covers/671bda27f4744055fbd58e22/3f6c0bf0-310c-48e9-8900-637440c43f35.png" alt="" style="display:block;margin:0 auto" />

<p>Por último, para que OpenWebRW recargue todos los ajustes, reiniciamos el servicio desde la terminal con el siguiente comando:</p>
]]></content:encoded></item></channel></rss>