<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" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
    <title><![CDATA[ _ voidNull ]]></title>
    <description><![CDATA[ SysAdmin, Terminal y GNU/Linux ]]></description>
    <link>https://voidnull.es</link>
    <language>es</language>
    <copyright>_ voidNull Copyright 2026</copyright>
    <image>
        <url>https://voidnull.es/favicon.png</url>
        <title>_ voidNull</title>
        <link>https://voidnull.es</link>
    </image>
    <lastBuildDate>Mon, 13 Apr 2026 13:30:14 +0200</lastBuildDate>
    <atom:link href="https://voidnull.es/rss/" rel="self" type="application/rss+xml"/>

        <item>
            <title><![CDATA[ Instalación de PieFed en Debian 13 ]]></title>
            <description><![CDATA[ PieFed es una plataforma federada de agregación de enlaces y discusión que forma parte del Fediverso. ]]></description>
            <link>https://voidnull.es/instalacion-de-piefed-en-debian-13/</link>
            <guid isPermaLink="false">69b80a1cbec19c00010b8f2a</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Mon, 13 Apr 2026 09:11:38 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/03/piefed-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>PieFed es un proyecto de software libre y federado que actúa como <strong>agregador de enlaces y foro descentralizado dentro del Fediverso</strong>. A diferencia de plataformas centralizadas como Reddit, PieFed está diseñado para funcionar bajo estándares federados como <strong>ActivityPub</strong>, lo que significa que cualquier servidor PieFed puede comunicarse con otros servicios del Fediverso y compartir contenido entre sí sin depender de una única compañía o servidor central. </p><p>PieFed combina funciones de agregador de enlaces, comunidades temáticas y discusión en hilos, con un enfoque en la <strong>libertad de control individual</strong>, la <strong>seguridad</strong> y la <strong>moderación descentralizada</strong>, operando sin anuncios, sin seguimiento invasivo y bajo código abierto accesible para cualquiera. Está mayoritariamente escrito en Python y su desarrollo está activo y colaborativo.</p><h2 id="instalaci%C3%B3n-de-piefed">Instalación de PieFed</h2><p>Para la instalación de PieFed necesitaremos instalar primero Docker, ya que la instalación recomendada es a través de esta tecnología. Así que si no tienes Docker instalado en el servidor, puedes instalarlo siguiendo este tutorial:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/instalacion-de-docker-en-debian-13/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Instalación de Docker en Debian 13</div><div class="kg-bookmark-description">Docker es una aplicación que simplifica el proceso de gestión de los procesos de las aplicaciones en contenedores. Los contenedores le permiten ejecutar sus aplicaciones en procesos aislados de recursos.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-296.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/docker-25.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><p>Una vez instalado, creamos el entorno y descargamos el repositorio:</p><pre><code class="language-bash">cd /opt
git clone https://codeberg.org/rimu/pyfedi.git piefed
chown 1000:root -R piefed
cd piefed</code></pre><p>Ahora toca crear la configuración, así que copiamos el fichero y generamos la SECRET_KEY.</p><pre><code class="language-bash">cp env.docker.sample .env.docker
openssl rand -hex 32</code></pre><p>Copiamos el resultado y editamos el fichero de configuración para añadirlo y seguir modificando los siguientes valores:</p><pre><code class="language-bash">SERVER_NAME='añadimos el dominio'
POSTGRES_PASSWORD='modificamos la contraseña'</code></pre><p>Guardamos el fichero. Si necesitamos añadir más variables, como por ejemplo para configurar el correo, el resto de variables posibles lo encontramos en el fichero <code>env.sample</code>.</p><pre><code class="language-bash">MAIL_SERVER=''
MAIL_PORT=0
# Remove the below line if not using TLS - do not set it to False
MAIL_USE_TLS=True
MAIL_USERNAME=''
MAIL_PASSWORD=''
MAIL_FROM=''
ERRORS_TO=''</code></pre><p>Una vez tenemos la configuración acabada, tenemos que crear los directorios necesarios. PieFed dispone de un script para generar todo lo necesario, así que lo ejecutamos:</p><pre><code class="language-bash">./docker-dirs.sh</code></pre><p>Y finalmente levantamos los contenedores haciendo un build:</p><pre><code class="language-bash">export DOCKER_BUILDKIT=1
docker compose up --build</code></pre><p>Ahora tenemos que esperar a que acabe de mostrar contenido la terminal. En este punto nos podemos olvidar si aparece algún error.</p><pre><code class="language-bash">piefed_app1     | Done!
piefed_app1     | Starting Gunicorn...
piefed_app1     | [2026-03-17 17:19:27,849] INFO in __init__: Started!
piefed_app1     | [2026-03-17 17:19:27 +0000] [21] [INFO] Starting gunicorn 25.1.0
piefed_app1     | [2026-03-17 17:19:27 +0000] [21] [INFO] Listening at: http://0.0.0.0:5000 (21)
piefed_app1     | [2026-03-17 17:19:27 +0000] [21] [INFO] Using worker: gthread
piefed_app1     | [2026-03-17 17:19:27 +0000] [21] [INFO] Control socket listening at /app/gunicorn.ctl
piefed_app1     | [2026-03-17 17:19:27 +0000] [29] [INFO] Booting worker with pid: 29
piefed_app1     | [2026-03-17 17:19:27 +0000] [30] [INFO] Booting worker with pid: 30</code></pre><p>Llegados a este punto, podemos pulsar la tecla <code>d</code> y entramos en el contenedor de la app:</p><pre><code class="language-bash">docker exec -it piefed_app1 sh</code></pre><p>Y dentro del contenedor ejecutamos los siguientes comandos:</p><pre><code class="language-bash">export FLASK_APP=pyfedi.py
flask init-db</code></pre><p>Tras ejecutar el comando, nos preguntará lo siguiente para crear usuario administrador de PieFed:</p><pre><code class="language-bash">The admin user created here should be reserved for admin tasks and not used as a primary daily identity (unless this instance will only be for personal use).
Admin user name (ideally not 'admin'):</code></pre><p>Y creamos el usuario admin:</p><pre><code class="language-bash">Admin user name (ideally not 'admin'): t3rr0rz0n3
Admin email address: miemail@dominio.com
Admin password: CONTRASEÑASEGURA
Initial setup is finished.</code></pre><p>Salimos del contenedor y bajamos contenedores y levantamos de nuevo:</p><pre><code class="language-bash">docker compose down
docker compose up -d</code></pre><h3 id="configurar-nginx-proxy">Configurar Nginx Proxy</h3><p>Por defecto, PieFed se instala escuchando por el puerto <code>8030</code> en localhost, Para poder acceder desde fuera, tendremos que configurar un Proxy Inverso. Para este tutorial, usaremos Nginx Proxy, pero puedes configurar el que más te guste:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/configurar-proxy-inverso-con-nginx-para-que-escuche-a-un-puerto-interno/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Configurar Proxy Inverso con Nginx para que escuche a un puerto interno</div><div class="kg-bookmark-description">En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-297.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/nginx1-3.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><h3 id="configura-tareas">Configura tareas</h3><p>Para que funcione correctamente PieFed, es necesario configurar CronJobs para ello tendremos que añadir los siguientes cron:</p><pre><code class="language-bash">5 2 * * * &lt;USERNAME&gt; docker exec piefed_app1 bash -c "cd /app &amp;&amp; ./daily.sh"
5 4 * * 1 &lt;USERNAME&gt; docker exec piefed_app1 bash -c "cd /app &amp;&amp; ./remove_orphan_files.sh"
1 */6 * * * &lt;USERNAME&gt; docker exec piefed_app1 bash -c "cd /app &amp;&amp; ./email_notifs.sh"
*/5 * * * * &lt;USERNAME&gt; docker exec piefed_app1 bash -c "cd /app &amp;&amp; ./send_queue.sh"</code></pre><h2 id="accediendo-a-la-interfaz">Accediendo a la interfaz</h2><p>Una vez hayamos configurado el Nginx Proxy, podremos acceder a través del dominio y debería de cargar correctamente la interfaz de PieFed:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-27.png" class="kg-image" alt="" loading="lazy" width="1815" height="982" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-27.png 600w, https://voidnull.es/content/images/size/w1000/2026/03/imatge-27.png 1000w, https://voidnull.es/content/images/size/w1600/2026/03/imatge-27.png 1600w, https://voidnull.es/content/images/2026/03/imatge-27.png 1815w" sizes="(min-width: 720px) 720px"></figure><p>En este punto podremos acceder usando la cuenta admin que hemos creado durante el proceso y configurar la instancia de PieFed.</p><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Ping #22: Actualizaciones, novedades y ranking de distros ]]></title>
            <description><![CDATA[ Aquí encontrarás las distribuciones más recientes, paquetes actualizados y el ranking de las distros más descargadas. 🚀 ]]></description>
            <link>https://voidnull.es/ping-21/</link>
            <guid isPermaLink="false">69d8c27ebec19c00010b9a75</guid>
            <category><![CDATA[ Ping ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Sun, 12 Apr 2026 12:00:59 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2025/02/ping-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>¡Bienvenido a nuestro resumen quincenal de GNU/Linux! Aquí encontrarás las distribuciones más recientes, paquetes actualizados y el ranking de las distros más descargadas. 🚀</p><h2 id="%F0%9F%94%84-%C3%BAltimas-distribuciones-lanzadas">🔄 <strong>Últimas distribuciones lanzadas</strong></h2><p>En los últimos 15 días, han salido nuevas versiones de estas distribuciones:</p><ul>
<li>
<p><strong><a href="https://distrowatch.com/deepin?ref=voidnull.es">deepin 25.1.0</a></strong>: deepin (anteriormente Deepin, Linux Deepin, Hiweed GNU/Linux) es una distribución basada en Debian (hasta la versión 15, lanzada a finales de 2015, estaba basada en Ubuntu) que tiene como objetivo ofrecer un sistema operativo elegante, fácil de usar y fiable. No solo incluye lo mejor del mundo del software libre, sino que también ha desarrollado su propio entorno de escritorio llamado DDE o Deepin Desktop Environment, basado en el toolkit Qt 5. Deepin pone gran énfasis en el diseño intuitivo. Sus aplicaciones propias, como Deepin Software Centre, DMusic y DPlayer, están pensadas para el usuario medio. Gracias a su facilidad de instalación y uso, deepin puede ser una buena alternativa a Windows tanto para oficina como para uso doméstico.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/modos?ref=voidnull.es">MODOS 13</a></strong>: MODOS es una distribución GNU/Linux minimalista que incluye el escritorio Cinnamon y está basada en la rama "Stable" de Debian. Está pensada para ejecutarse como un sistema en vivo desde una memoria USB. La distribución también incorpora un conjunto de utilidades propias denominado herramientas #DODOS.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/openmamba?ref=voidnull.es">openmamba 20260409</a></strong>: openmamba GNU/Linux es una distribución para ordenadores personales que puede utilizarse en portátiles, equipos de escritorio, servidores y dispositivos como Raspberry Pi. Funciona como imágenes live instalables en DVD/USB y ofrece dos entornos de escritorio: KDE Plasma o LXQt. La distribución utiliza paquetes RPM gestionados mediante el gestor de paquetes DNF. El software también puede instalarse desde repositorios Flatpak.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/enux?ref=voidnull.es">ENux 5.2.1</a></strong>: ENux es una distribución de escritorio basada en la rama "Stable" de Debian. Integra Bedrock Linux, un proyecto que desarrolla scripts capaces de combinar componentes de distintas distribuciones GNU/Linux en un único sistema cohesionado. Su principal característica es el soporte para una amplia variedad de gestores de paquetes del ecosistema GNU/Linux, como apk (Alpine), dpkg/apt (Debian), emerge/portage (Gentoo), nix (NixOS), pacman (Arch), rpm/dnf (Fedora), xbps (Void) y zypper (openSUSE), todo ello a través de la herramienta unificada pmm. Utiliza el escritorio Xfce y sustituye el kernel LTS de Debian por una versión más actual.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/brgv?ref=voidnull.es">BRGV-OS 08042026</a></strong>: BRGV-OS es una distribución rolling release basada en Void que incluye un entorno de escritorio GNOME personalizado con una gran variedad de temas propios. Ofrece soporte listo para usar en inglés y rumano. El proyecto tiene como objetivo facilitar la transición desde Windows o macOS hacia GNU/Linux, manteniendo hábitos y flujos de trabajo familiares. Fue creado originalmente para el instituto de investigación Banca de Resurse Genetice Vegetale (BRGV) en Rumanía, y actualmente también está disponible para el público general.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/tails?ref=voidnull.es">Tails 7.6.1</a></strong>: The Amnesic Incognito Live System (Tails) es una distribución live basada en Debian cuyo objetivo es proporcionar anonimato completo en Internet. Incluye diversas aplicaciones de red como navegador web, cliente IRC, cliente de correo y mensajería instantánea, todas configuradas con seguridad en mente y con el tráfico anonimizado. Para lograrlo, utiliza la red Tor, dificultando enormemente el rastreo de la actividad del usuario.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/pearos?ref=voidnull.es">pearOS 26.4</a></strong>: pearOS es una distribución de escritorio basada en Arch que presenta una apariencia similar a macOS mediante temas e iconos sobre KDE Plasma. Entre sus características se incluyen un instalador propio llamado pearOS Installer, una aplicación de bienvenida y el gestor de archivos GNOME Files. Incluye aplicaciones populares como el visor de imágenes Gwenview, el navegador Firefox, el reproductor de música Elisa y el editor de texto Kate.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/gparted?ref=voidnull.es">GParted 1.8.1-3</a></strong>: GParted Live es una distribución en vivo con un único propósito: proporcionar herramientas para particionar discos duros en un entorno gráfico e intuitivo. Utiliza X.Org, el gestor de ventanas ligero Fluxbox y el kernel 4.x más reciente. Puede ejecutarse en la mayoría de sistemas x86 con un procesador Pentium II o superior.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/haos?ref=voidnull.es">HAOS 17.2</a></strong>: Home Assistant OS (HAOS) es un sistema operativo basado en GNU/Linux, desarrollado de forma independiente y optimizado para ejecutar Home Assistant, una herramienta de automatización del hogar de código abierto. Está centrado en el control local y la privacidad. Utiliza Docker como motor de contenedores y despliega Home Assistant Supervisor como contenedor, que a su vez gestiona Home Assistant Core y las aplicaciones en contenedores independientes. Está disponible para dispositivos como Raspberry Pi u ODROID, así como para sistemas x86-64 con arranque UEFI.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/expirion?ref=voidnull.es">Expirion 6.4-260407</a></strong>: Expirion Linux es una distribución de escritorio basada en Devuan que ofrece ediciones con los entornos LXQt y Xfce. Proporciona versiones construidas a partir de las ramas "stable" y "testing" de Devuan, con soporte para sistemas de inicio runit y SysV. Incluye un kernel más reciente que Devuan y añade mejoras orientadas al usuario, como temas personalizados, fondos de pantalla y aplicaciones de productividad como LibreOffice, Chromium, Firefox, Thunderbird, Audacity, Brasero y VLC.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/snal?ref=voidnull.es">Snal 1.40</a></strong>: Snal Linux es una pequeña distribución basada en Arch Linux. Utiliza el gestor de ventanas i3 e incluye el navegador Firefox junto con varias utilidades de red y sistema de archivos. Está pensada para usarse como imagen live para la resolución de problemas en discos duros, sistemas y redes.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/centos?ref=voidnull.es">CentOS 10-20260406</a></strong>: CentOS es una comunidad de usuarios y desarrolladores de software libre fundada en 2003 y patrocinada por Red Hat desde 2014. Las versiones de CentOS Linux hasta CentOS Linux 8 eran reconstrucciones 100% compatibles de Red Hat Enterprise Linux, cumpliendo plenamente sus requisitos de redistribución. En 2020 se anunció la discontinuación de CentOS Linux, siendo reemplazado por CentOS Stream, una distribución orientada a desarrolladores que actúa como punto intermedio entre Fedora y Red Hat Enterprise Linux.</p>
</li>
</ul>
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">🔗</div><div class="kg-callout-text">Si quieres conocer más detalles, puedes visitar <a href="https://distrowatch.com/?ref=voidnull.es" target="_new" rel="noopener">DistroWatch</a>.</div></div><h2 id="%F0%9F%93%A6-paquetes-actualizados-m%C3%A1s-relevantes">📦 <strong>Paquetes actualizados más relevantes</strong></h2><p>Estas son algunas actualizaciones destacadas en paquetes populares:</p><ul>
<li>
<p><strong><a href="https://calibre-ebook.com/?ref=voidnull.es">calibre 9.7.0</a></strong>: Calibre: una aplicación para la gestión de bibliotecas de libros electrónicos.</p>
</li>
<li>
<p><strong><a href="https://brave.com/?ref=voidnull.es">brave-browser 1.89.132</a></strong>: Brave: un navegador web de código abierto basado en Chromium con bloqueador de anuncios integrado.</p>
</li>
<li>
<p><strong><a href="https://www.sqlite.org/?ref=voidnull.es">sqlite 3.53.0</a></strong>: SQLite: un motor SQL embebido en una biblioteca escrita en C.</p>
</li>
<li>
<p><strong><a href="https://vivaldi.com/?ref=voidnull.es">vivaldi 7.9.3970.50</a></strong>: Vivaldi: un navegador web propietario, gratuito y multiplataforma desarrollado por Vivaldi Technologies.</p>
</li>
<li>
<p><strong><a href="https://pipewire.org/?ref=voidnull.es">pipewire 1.6.3</a></strong>: PipeWire: un servidor para gestionar flujos de audio y vídeo y hardware en GNU/Linux.</p>
</li>
<li>
<p><strong><a href="https://www.gnu.org/software/parted/parted.html?ref=voidnull.es">parted 3.7</a></strong>: GNU Parted: un programa para crear, eliminar, redimensionar y copiar particiones de disco.</p>
</li>
<li>
<p><strong><a href="https://flatpak.org/?ref=voidnull.es">flatpak 1.16.5</a></strong>: Flatpak: un framework para el aislamiento y distribución de aplicaciones en GNU/Linux.</p>
</li>
<li>
<p><strong><a href="https://www.opera.com/?ref=voidnull.es">opera 130.0.5847.12</a></strong>: Opera: un navegador web gráfico ligero.</p>
</li>
<li>
<p><strong><a href="https://www.nano-editor.org/?ref=voidnull.es">nano 9.0</a></strong>: GNU nano: un editor de texto basado en curses para sistemas UNIX.</p>
</li>
<li>
<p><strong><a href="https://www.openshot.org/?ref=voidnull.es">openshot 3.5.1</a></strong>: OpenShot: un editor de vídeo.</p>
</li>
<li>
<p><strong><a href="https://mozilla.org/products/thunderbird?ref=voidnull.es">thunderbird 149.0.2</a></strong>: Mozilla Thunderbird: un cliente de correo electrónico y grupos de noticias con múltiples funcionalidades.</p>
</li>
<li>
<p><strong><a href="https://www.chromium.org/Home?ref=voidnull.es">chromium 147.0.7727.55</a></strong>: Google Chromium: una versión de código abierto de Google Chrome, un navegador web gráfico.</p>
</li>
</ul>
<p>📌 Si usas alguno de estos paquetes, revisa si hay mejoras o cambios importantes en su configuración.</p><h2 id="%F0%9F%8F%86-ranking-de-las-distribuciones-m%C3%A1s-descargadas">🏆 <strong>Ranking de las distribuciones más descargadas</strong></h2><p>Cada dos semanas revisamos cuáles son las distribuciones más populares según las descargas recientes. Aquí tienes el top 10 de esta quincena:</p><ul>
<li>📉 <a href="https://distrowatch.com/cachyos?ref=voidnull.es">CachyOS</a> - 3467 visitas por día (👎 39 visitas)</li>
<li>🔄 <a href="https://distrowatch.com/mint?ref=voidnull.es">Mint</a> - 2019 visitas por día (🔄 sin cambios)</li>
<li>📈 <a href="https://distrowatch.com/mx?ref=voidnull.es">MX Linux</a> - 1867 visitas por día (👍 7 visitas)</li>
<li>📉 <a href="https://distrowatch.com/popos?ref=voidnull.es">Pop!_OS</a> - 1509 visitas por día (👎 1 visitas)</li>
<li>📉 <a href="https://distrowatch.com/debian?ref=voidnull.es">Debian</a> - 1406 visitas por día (👎 1 visitas)</li>
<li>📈 <a href="https://distrowatch.com/endeavour?ref=voidnull.es">EndeavourOS</a> - 1297 visitas por día (👍 1 visitas)</li>
<li>📈 <a href="https://distrowatch.com/zorin?ref=voidnull.es">Zorin</a> - 1279 visitas por día (👍 6 visitas)</li>
<li>📉 <a href="https://distrowatch.com/fedora?ref=voidnull.es">Fedora</a> - 1236 visitas por día (👎 38 visitas)</li>
<li>📉 <a href="https://distrowatch.com/arch?ref=voidnull.es">Arch</a> - 1091 visitas por día (👎 5 visitas)</li>
<li>📈 <a href="https://distrowatch.com/ubuntu?ref=voidnull.es">Ubuntu</a> - 1076 visitas por día (👍 5 visitas)</li>
</ul>
<div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text">¿Tu distribución favorita está en la lista? ¡Déjanos un comentario!</div></div><h2 id="%F0%9F%8E%93-aprende-m%C3%A1s-sobre-gnulinux">🎓 <strong>Aprende más sobre GNU/Linux</strong></h2><p>Si te interesa aprender más sobre GNU/Linux, en nuestro blog publicamos artículos sobre herramientas, comandos y configuraciones útiles. Además, en nuestra <a rel="noopener">sección de cursos</a> puedes encontrar tutoriales organizados por niveles. 🚀 </p><h2 id="%E2%98%95-apoya-nuestro-contenido">☕ <strong>Apoya nuestro contenido</strong></h2><p>Si este tipo de artículos te resulta útil, considera apoyarnos con una pequeña donación. Nos ayuda a seguir compartiendo información sobre software libre.</p><p>🔗 <a href="https://ko-fi.com/voidnull?ref=voidnull.es">https://ko-fi.com/voidnull</a></p><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Conversations: cliente completo para XMPP ]]></title>
            <description><![CDATA[ Cliente XMPP moderno y cifrado que demuestra que la mensajería federada sigue siendo una alternativa real. ]]></description>
            <link>https://voidnull.es/conversations-cliente-completo-para-xmpp/</link>
            <guid isPermaLink="false">69a5dcb8bec19c00010b878d</guid>
            <category><![CDATA[ F-Droid ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Fri, 10 Apr 2026 17:30:41 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/03/fdroid-2.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Durante años, <strong>Android se ha presentado como una plataforma abierta</strong>, donde los usuarios podían <strong>instalar</strong>, <strong>estudiar</strong> y <strong>compartir</strong> software libremente, sin intermediarios obligatorios. Sin embargo, <strong>los cambios anunciados por Google amenazan con transformar ese modelo en uno cada vez más cerrado</strong>, en el que desarrollar, distribuir o incluso ejecutar aplicaciones podría quedar condicionado a la aprobación previa de la propia compañía.</p><p>Este giro <strong>no solo afecta a desarrolladores</strong>, sino <strong>también a personas usuarias</strong>, <strong>comunidades</strong> y <strong>proyectos de software libre</strong>, que ven peligrar la posibilidad de mantener un ecosistema independiente, auditable y basado en estándares abiertos. La pérdida de control sobre nuestros propios dispositivos supone, en la práctica, renunciar a una parte de nuestra <strong>soberanía tecnológica</strong>.</p><p>Por ese motivo, inicio esta serie de artículos para dar visibilidad a aplicaciones libres disponibles en <a href="https://f-droid.org/es/?ref=voidnull.es">F-Droid</a>, demostrar que existen alternativas reales al modelo centralizado de Google Play y contribuir a la concienciación sobre la importancia de <strong>mantener Android como una plataforma verdaderamente abierta</strong>.</p><div class="kg-card kg-header-card kg-v2 kg-width-regular " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="puedes-encontrar-ms-informacin-sobre-la-campaa" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Puedes encontrar más información sobre la campaña</span></h2>
                    <p id="mantnandroidabiertokeepandroidopen" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">#ManténAndroidAbierto</span><br><span style="white-space: pre-wrap;">#KeepAndroidOpen</span></p>
                    <a href="https://keepandroidopen.org/es/?ref=voidnull.es" class="kg-header-card-button " style="background-color: #8AB000;color: #FFFFFF;" data-button-color="#8AB000" data-button-text-color="#FFFFFF">Leer manifiesto</a>
                </div>
            </div>
        </div><h2 id="aplicaci%C3%B3n-de-la-semana-conversations">Aplicación de la semana: Conversations</h2><p>Conversations es un cliente libre de mensajería basado en XMPP/Jabber que permite comunicarse mediante servidores federados en lugar de plataformas centralizadas.</p><p>Incluye cifrado de extremo a extremo y funciones habituales como envío de archivos, chats grupales o llamadas, manteniendo compatibilidad con servidores XMPP modernos.</p><h3 id="detalles-de-la-aplicaci%C3%B3n">Detalles de la aplicación</h3><ul><li>🔗 Web oficial: <a href="https://conversations.im/?ref=voidnull.es" rel="noopener">https://conversations.im</a></li><li>📦 F-Droid: <a href="https://f-droid.org/ca/packages/eu.siacs.conversations/?ref=voidnull.es">https://f-droid.org/ca/packages/eu.siacs.conversations/</a></li><li>🧑‍💻 Código fuente: <a href="https://codeberg.org/inputmice/Conversations?ref=voidnull.es">https://codeberg.org/inputmice/Conversations</a></li><li>📜 Licencia: GPLv3</li><li>🌍 Idiomas: Multidioma</li></ul><h3 id="caracter%C3%ADsticas-principales">Características principales</h3><ul><li>Cifrado de extremo a extremo mediante OMEMO u OpenPGP</li><li>Envío de imágenes, archivos y ubicación</li><li>Chats grupales y comunicación federada</li><li>Llamadas de audio y vídeo cifradas</li><li>Compatible con servidores Jabber/XMPP modernos</li><li>Diseño eficiente en batería y uso diario</li></ul><h2 id="mi-experiencia-con-conversations">Mi experiencia con Conversations</h2><p>Para mi la mejor forma de comunicación tiene un protocolo que se llama XMPP y mi cliente favorito que no cambio por nada se llama Conversations. Llevo taaanto tiempo usando esta APP que he visto casi todos los cambios que ha recibido.</p><p>Tiene todo lo que necesita XMPP para tener una buena comunicación con amigos y gente conocida. Conversaciones privadas y seguras, chats grupales y hasta video llamadas. Recuerdo cuando llegó las video llamadas a Conversations que no funcionaba muy allá, pero hoy en día funcionan genial. Es cierto que no soy muy de hacer video llamadas, pero las veces que las he probado he visto que funcionan muy estables. </p><p>Como que tengo servidor de XMPP autogestionado, pues Conversations se convierte en mi principal APP de mensajería. Aquí tengo avisos de backups, mis notificaciones de monitorización con Zabbix y hasta todo lo que sucede en mi hogar domótico.</p><div class="kg-card kg-header-card kg-v2 kg-width-wide " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="si-queremos-que-android-siga-siendo-una-plataforma-abierta-debemos-apoyar-y-usar-aplicaciones-libres-" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Si queremos que Android siga siendo una plataforma abierta, debemos apoyar y usar aplicaciones libres. </span></h2>
                    <p id="instala-desde-fdroid-comparte-estas-alternativas-y-contribuye-a-mantener-vivo-un-ecosistema-donde-el-usuario-tenga-el-control" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Instala desde F-Droid, comparte estas alternativas y contribuye a mantener vivo un ecosistema donde el usuario tenga el control.</span></p>
                    <a href="https://f-droid.org/es/F-Droid.apk?ref=voidnull.es" class="kg-header-card-button " style="background-color: #ffffff;color: #000000;" data-button-color="#ffffff" data-button-text-color="#000000">Descarga F-Droid</a>
                </div>
            </div>
        </div><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Actualizar Uptime Kuma a la versión 2.x desde 1.x ]]></title>
            <description><![CDATA[ Actualiza Uptime Kuma de la versión 1.x a 2.x y aprende cómo resolver los posibles errores que pueden aparecer durante el proceso de actualización. ]]></description>
            <link>https://voidnull.es/actualizar-uptime-kuma-a-la-version-2-x-desde-1-x/</link>
            <guid isPermaLink="false">69b154e5bec19c00010b89b7</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Fri, 10 Apr 2026 09:10:36 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2023/10/uptimekuma-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Desde hace algún tiempo ya, estoy utilizando Uptime Kuma en Home Assistant para saber el estado del resto de servicios que tengo en mi HomeLab. Básicamente el uso que le doy es saber si está activo o no algún servicio y en función a eso algunas automatizaciones funcionan de una manera u otra.</p><p>Si quieres saber como integrar Uptime Kuma en Home Assistant te dejo este tutorial que hicimos hace algún tiempo para que aprendas a integrarlo:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/integra-uptime-kuma-en-home-assistant/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Integra Uptime Kuma en Home Assistant</div><div class="kg-bookmark-description">Supervisa el estado de tus servicios en Home Assistant con Uptime Kuma y recibe alertas ante fallos para mejorar la monitorización y automatización.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-295.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/homeassistant-3-2.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><p>Hace unos días me di cuenta de que la instancia de Uptime Kuma que tengo ejecutándose en un contenedor LXC no se estaba actualizando a la última versión. Al intentar actualizarla manualmente me encontré con un problema durante el proceso, así que he decidido documentar los pasos que seguí para resolverlo por si a alguien más le ocurre lo mismo.</p><h2 id="el-problema">El problema</h2><p>La versión de mi Uptime Kuma era una 1.23.16 y por lo que entendí después, de la versión 1.x a la 2.x hay muchas migraciones de la base de datos.</p><p>Al intentar hacer la actualización de la 1.23.16 directamente a la última disponible que era la 2.2.1 tal y como explica la documentación oficial, me di cuenta de que la base de datos no arrancaba correctamente.</p><p>Me di cuenta de que estaba haciendo una migración con la base de datos:</p><pre><code class="language-bash">Mar 11 12:16:31 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-21 [22.80%][3/11]
Mar 11 12:16:31 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-22 [22.85%][3/11]
Mar 11 12:16:31 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-23 [22.90%][3/11]
Mar 11 12:16:32 uptimekuma [DON'T STOP] Migrating monitor data 3 - 2025-11-24 [22.95%][3/11]
Mar 11 12:16:32 uptimekuma [DON'T STOP] Migrating monitor data 3 - 2025-11-25 [23.00%][3/11]
Mar 11 12:16:32 uptimekuma [DON'T STOP] Migrating monitor data 3 - 2025-11-26 [23.05%][3/11]
Mar 11 12:16:33 uptimekuma [DON'T STOP] Migrating monitor data 3 - 2025-11-27 [23.10%][3/11]
Mar 11 12:16:33 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-28 [23.15%][3/11]
Mar 11 12:16:33 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-29 [23.20%][3/11]
Mar 11 12:16:34 uptimekuma [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2025-11-30 [23.25%][3/11]</code></pre><p>Pero que al rato desaparecía la migración y daba este error:</p><pre><code class="language-bash">Mar 11 12:18:17 uptimekuma [SERVER] INFO: Connected to the database
Mar 11 12:18:17 uptimekuma [DB] WARN: Aggregate table migration is already in progress, or it was interrupted
Mar 11 12:18:17 uptimekuma [DB] ERROR: Database migration failed
Mar 11 12:18:17 uptimekuma [SERVER] ERROR: Failed to prepare your database: Aggregate table migration is already in progress</code></pre><p>Así que decidí restaurar backup del contenedor en Proxmox y volver a empezar, esta vez más poco a poco y revisando bien todo el procedimiento.</p><p>Esta vez en vez de iniciar el servicio de systemD, lo que hice fue levantar la aplicación a mano usando npm:</p><pre><code class="language-bash">npm start</code></pre><p>Este comando levanta la aplicación y en este momento me di cuenta de todo el procedimiento de la migración de la base de datos y el motivo del fallo:</p><pre><code class="language-bash">2026-03-11T12:26:23+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-07 [28.10%][3/11]
2026-03-11T12:26:24+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-08 [28.15%][3/11]
2026-03-11T12:26:24+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-09 [28.20%][3/11]
2026-03-11T12:26:25+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-10 [28.25%][3/11]
2026-03-11T12:26:26+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 3 - 2026-03-11 [28.30%][3/11]
2026-03-11T12:26:26+01:00 [DB] ERROR: Database migration failed
2026-03-11T12:26:26+01:00 [SERVER] ERROR: Failed to prepare your database: 
                SELECT DISTINCT DATE(time) AS date
                FROM heartbeat
                WHERE monitor_id = 4
                ORDER BY date ASC
             - SQLITE_CORRUPT: database disk image is malformed</code></pre><p>Aquí entendí que la base de datos se encontraba corrupta, por lo que había que buscar una solución antes para resolver este problema.</p><h2 id="la-soluci%C3%B3n">La solución</h2><p>La solución es sencilla: reparar la base de datos. Para ello tenemos que hacer lo siguiente antes de actualizar a la versión 2.0.0 de Uptime Kuma.</p><p>Paramos el servicio primero:</p><pre><code class="language-bash">systemctl stop uptime-kuma.service</code></pre><p>Luego vamos al directorio donde se encuentra la instalación de la aplicación que si has usado los scripts de Proxmox el directorio suele ser <code>/opt/uptime-kuma/data</code>.</p><pre><code class="language-bash">cd /opt/uptime-kuma/data</code></pre><p>En este directorio deberemos de tener una base de datos llamada <code>kuma.db</code> que es una base de datos en formato SQLite, por lo que tendremos que ejecutar los siguientes comandos para repararla:</p><pre><code class="language-bash">sqlite3 kuma.db .dump &gt; dump.sql
sqlite3 kuma-new.db &lt; dump.sql
mv kuma.db kuma-original-corrupted.db
mv kuma-new.db kuma.db</code></pre><p>Tras estos comandos, ya podemos hacer la actualización a la versión 2.0.0 sin problemas con la migración de la base de datos.</p><h2 id="c%C3%B3mo-actualizar-de-versi%C3%B3n">Cómo actualizar de versión</h2><p>Nos vamos al directorio donde se encuentra la aplicación instalada y hacer un fetch de las ramas disponibles del repositorio:</p><pre><code class="language-bash">cd /opt/uptime-kuma/
git fetch --all --tags
</code></pre><p>Con el último comando obtendremos este resultado:</p><pre><code class="language-bash"> * [new tag]           1.23.14      1.23.14
 * [new tag]           1.23.15      1.23.15
 * [new tag]           1.23.16      1.23.16
 * [new tag]           1.23.17      1.23.17
 * [new tag]           2.0.0        2.0.0
 ...</code></pre><p>Nos posicionamos a la rama con la versión 2.0.0:</p><pre><code class="language-bash">git checkout 2.0.0 --force </code></pre><p>Instalamos las dependencias y hacemos del <em>prebuilt</em>:</p><pre><code class="language-bash">npm install --omit dev --no-audit
npm run download-dist </code></pre><p>Y antes de iniciar el servicio de nuevo de SystemD, iniciamos la aplicación a mano para revisar que la migración de la base de datos se completa correctamente:</p><pre><code class="language-bash">npm start</code></pre><p>Iniciará Uptime Kuma y la migración:</p><pre><code class="language-bash">Welcome to Uptime Kuma
Your Node.js version: 22.20.0
2026-03-11T12:37:10+01:00 [SERVER] INFO: Env: production
2026-03-11T12:37:11+01:00 [SERVER] INFO: Uptime Kuma Version: 2.0.0
2026-03-11T12:37:11+01:00 [SERVER] INFO: Loading modules
2026-03-11T12:37:12+01:00 [SERVER] INFO: Creating express and socket.io instance
2026-03-11T12:37:12+01:00 [SERVER] INFO: Server Type: HTTP
2026-03-11T12:37:12+01:00 [SERVER] INFO: Data Dir: ./data/
2026-03-11T12:37:12+01:00 [DB] INFO: Database Type: sqlite
2026-03-11T12:37:12+01:00 [SERVER] INFO: Connected to the database
2026-03-11T12:37:12+01:00 [MIGRATION] INFO: Migration server is running on http://localhost:3001
2026-03-11T12:37:12+01:00 [DB] INFO: Migrating Aggregate Table
2026-03-11T12:37:12+01:00 [DB] INFO: Getting list of unique monitors
2026-03-11T12:37:13+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-04 [0.00%][1/11]
2026-03-11T12:37:13+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-05 [0.05%][1/11]
2026-03-11T12:37:14+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-06 [0.10%][1/11]
2026-03-11T12:37:14+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-07 [0.15%][1/11]
2026-03-11T12:37:15+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-08 [0.20%][1/11]
2026-03-11T12:37:15+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 1 - 2025-09-09 [0.25%][1/11]</code></pre><p>Esperamos a que finalice, esto llevará tiempo, así que como siempre, aprovecha el tiempo para hacerte un café o achuchar a tu fiel amigo peludo.</p><p>Al cabo de un rato obtendremos el siguiente resultado:</p><pre><code class="language-bash">2026-03-11T12:50:22+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-06 [100.00%][11/11]
2026-03-11T12:50:22+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-07 [100.00%][11/11]
2026-03-11T12:50:23+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-08 [100.00%][11/11]
2026-03-11T12:50:23+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-09 [100.00%][11/11]
2026-03-11T12:50:23+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-10 [100.00%][11/11]
2026-03-11T12:50:24+01:00 [DB] INFO: [DON'T STOP] Migrating monitor data 12 - 2025-10-11 [100.00%][11/11]
2026-03-11T12:50:24+01:00 [DB] INFO: Clearing non-important heartbeats
2026-03-11T12:51:03+01:00 [DB] INFO: Aggregate Table Migration Completed
2026-03-11T12:51:03+01:00 [SERVER] INFO: Listening on 3001</code></pre><p>Ya tendremos la actualización finalizada y ya podremos parar el comando con Control + D e iniciar el servicio como normalmente:</p><pre><code class="language-bash">systemctl start uptime-kuma</code></pre><h2 id="como-actualizar-el-resto-de-versiones">Como actualizar el resto de versiones</h2><p>En este punto, ya podemos saltar directamente a la última versión disponible, pero el procedimiento ya es parecido al que hemos realizado anteriormente y como recomienda hacerlo la documentación oficial:</p><pre><code class="language-bash">cd /opt/uptime-kuma/

# Update from git
git fetch --all --tags
git checkout 2.2.1 --force

# Install dependencies and prebuilt
npm install --omit dev --no-audit
npm run download-dist</code></pre><p>Si accedemos ahora a través del navegador, veremos que se ha actualizado la versión de nuestro Uptime Kuma!</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge.png" class="kg-image" alt="" loading="lazy" width="916" height="744" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge.png 600w, https://voidnull.es/content/images/2026/03/imatge.png 916w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ mktemp: crea archivos y directorios temporales ]]></title>
            <description><![CDATA[ Crea archivos y directorios temporales seguros en GNU/Linux con mktemp, evitando conflictos y problemas de seguridad en scripts. ]]></description>
            <link>https://voidnull.es/mktemp-crea-archivos-y-directorios-temporales/</link>
            <guid isPermaLink="false">69b7e7d2bec19c00010b8e3f</guid>
            <category><![CDATA[ Comandos ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Wed, 08 Apr 2026 17:30:21 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2022/01/cli.png" medium="image"/>
            <content:encoded><![CDATA[ <p>En la administración de sistemas GNU/Linux es habitual que scripts y aplicaciones necesiten crear ficheros o directorios temporales para almacenar datos intermedios durante su ejecución. Gestionar estos archivos manualmente puede provocar problemas de seguridad, especialmente si se crean en rutas compartidas como <code>/tmp</code>.</p><p>El comando <code>mktemp</code> permite crear archivos y directorios temporales de forma segura, generando nombres únicos y evitando colisiones con otros procesos del sistema. Por este motivo es una herramienta ampliamente utilizada en scripts de shell y automatizaciones.</p><h2 id="%C2%BFpara-qu%C3%A9-se-usa-el-comando-mktemp">¿Para qué se usa el comando <code>mktemp</code>?</h2><p>El comando <code>mktemp</code> se utiliza para crear archivos o directorios temporales con nombres únicos.</p><p>Su principal objetivo es evitar problemas de seguridad o conflictos que pueden aparecer si se crean archivos temporales con nombres predecibles. Cuando <code>mktemp</code> genera un archivo o directorio, lo hace utilizando un nombre aleatorio basado en una plantilla.</p><p>Entre los usos más habituales se encuentran:</p><ul><li>Crear archivos temporales dentro de scripts.</li><li>Generar directorios temporales para almacenar datos de proceso.</li><li>Evitar sobrescribir archivos existentes.</li><li>Garantizar que el nombre del archivo temporal no pueda ser adivinado fácilmente.</li></ul><p>Normalmente estos archivos se crean en el directorio <code>/tmp</code>, aunque también se pueden generar en cualquier otra ruta.</p><h2 id="sintaxis-b%C3%A1sica">Sintaxis básica</h2><p>La sintaxis general del comando es la siguiente:</p><pre><code class="language-bash">mktemp [OPCIONES] [PLANTILLA]</code></pre><p>Donde:</p><ul><li><strong>OPCIONES</strong> permite modificar el comportamiento del comando.</li><li><strong>PLANTILLA</strong> define el patrón del nombre del archivo o directorio que se creará.</li></ul><p>Si no se especifica una plantilla, <code>mktemp</code> generará automáticamente un nombre temporal en el directorio <code>/tmp</code>.</p><h2 id="ejemplos-del-comando-mktemp">Ejemplos del comando <code>mktemp</code></h2><p>A continuación se muestran algunos ejemplos prácticos del uso de <code>mktemp</code> y de sus opciones más utilizadas.</p><h3 id="crear-un-archivo-temporal">Crear un archivo temporal</h3><p>El uso más simple de <code>mktemp</code> genera un archivo temporal con un nombre único:</p><pre><code class="language-bash">mktemp</code></pre><p>Salida de ejemplo:</p><pre><code class="language-bash">/tmp/tmp.Qw3e4a9K</code></pre><p>El archivo se crea automáticamente y el comando muestra su ruta completa.</p><h3 id="crear-un-archivo-temporal-con-plantilla">Crear un archivo temporal con plantilla</h3><p>Podemos especificar una plantilla para controlar parcialmente el nombre del archivo. La plantilla debe contener al menos tres caracteres <code>X</code>, que serán sustituidos por caracteres aleatorios.</p><pre><code class="language-bash">mktemp archivoXXXXXX</code></pre><p>Salida posible:</p><pre><code class="language-bash">archivoA7F3k9</code></pre><h3 id="crear-un-archivo-temporal-en-tmp-con-un-prefijo-personalizado">Crear un archivo temporal en <code>/tmp</code> con un prefijo personalizado</h3><pre><code class="language-bash">mktemp /tmp/script_t3rr0rz0n3_XXXXXX</code></pre><p>Ejemplo de salida:</p><pre><code class="language-bash">/tmp/script_t3rr0rz0n3_x8K4Qp</code></pre><p>Esto es útil cuando varios scripts generan archivos temporales y se desea identificar fácilmente su origen.</p><h3 id="crear-un-directorio-temporal">Crear un directorio temporal</h3><p>Si en lugar de un archivo necesitamos un directorio temporal, se utiliza la opción <code>-d</code>:</p><pre><code class="language-bash">mktemp -d</code></pre><p>Salida de ejemplo:</p><pre><code class="language-bash">/tmp/tmp.bYk29sdf</code></pre><p>Esto crea un directorio temporal seguro que puede utilizarse para almacenar archivos durante la ejecución de un script.</p><h3 id="crear-un-directorio-temporal-con-plantilla">Crear un directorio temporal con plantilla</h3><p>También es posible combinar <code>-d</code> con una plantilla:</p><pre><code class="language-bash">mktemp -d /tmp/build_t3rr0rz0n3_XXXXXX</code></pre><p>Salida posible:</p><pre><code class="language-bash">/tmp/build_t3rr0rz0n3_Jk82Lm</code></pre><h4 id="mostrar-el-directorio-temporal-utilizado">Mostrar el directorio temporal utilizado</h4><p>La opción <code>--tmpdir</code> permite indicar que el archivo debe crearse dentro del directorio temporal del sistema.</p><pre><code class="language-bash">mktemp --tmpdir archivoXXXXXX</code></pre><p>Normalmente esto equivale a crearlo en <code>/tmp</code>, aunque depende de la configuración del sistema.</p><h3 id="crear-m%C3%BAltiples-archivos-temporales">Crear múltiples archivos temporales</h3><p>Podemos usar <code>mktemp</code> dentro de scripts para generar varios archivos únicos:</p><pre><code class="language-bash">tmpfile1=$(mktemp)
tmpfile2=$(mktemp)

echo "Primer archivo temporal: $tmpfile1"
echo "Segundo archivo temporal: $tmpfile2"</code></pre><p>Esto garantiza que ambos archivos tengan nombres únicos.</p><h4 id="uso-en-scripts-para-procesamiento-temporal">Uso en scripts para procesamiento temporal</h4><p>Un uso típico dentro de scripts sería:</p><pre><code class="language-bash">tmpfile=$(mktemp)
echo "Procesando datos..." &gt; "$tmpfile"
cat "$tmpfile"
rm "$tmpfile"</code></pre><p>Este método evita conflictos con otros procesos y mejora la seguridad del script.</p><h2 id="conclusi%C3%B3n">Conclusión</h2><p>El comando <code>mktemp</code> es una herramienta fundamental cuando se trabajan scripts o aplicaciones que necesitan crear archivos o directorios temporales de forma segura. Su capacidad para generar nombres únicos evita problemas comunes relacionados con colisiones de archivos o vulnerabilidades de seguridad.</p><p>Utilizar <code>mktemp</code> en lugar de crear archivos temporales manualmente es una buena práctica en la administración de sistemas GNU/Linux y en el desarrollo de scripts robustos.</p><hr><div class="kg-card kg-header-card kg-width-full kg-size-small kg-style-accent" data-kg-background-image="" style=""><h2 class="kg-header-card-header" id="buscas-otro-comando"><span style="white-space: pre-wrap;">¿Buscas otro comando?</span></h2><h3 class="kg-header-card-subheader" id="revisa-nuestro-diccionario-de-comandos-para-gnulinux"><span style="white-space: pre-wrap;">¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!</span></h3><a class="kg-header-card-button" href="https://voidnull.es/diccionario-comandos-gnu-linux"> Diccionario de comandos para GNU/Linux </a></div> ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Instalación de Mumble en Ubuntu 24.04 ]]></title>
            <description><![CDATA[ Aprende a instalar y configurar Mumble en tu servidor para disponer de un sistema de comunicación por voz rápido, seguro y de baja latencia. ]]></description>
            <link>https://voidnull.es/instalacion-de-mumble-en-ubuntu-24-04/</link>
            <guid isPermaLink="false">69b7e739bec19c00010b8e31</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Wed, 08 Apr 2026 09:10:34 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/03/mumble-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Montar tu propio sistema de comunicación por voz sigue siendo, a día de hoy, una de las formas más sencillas de ganar en privacidad, control y eficiencia. En este tutorial vamos a ver cómo instalar <strong>Mumble Server</strong> en un sistema Ubuntu, una solución de voz sobre IP ligera, segura y completamente libre que puede sustituir sin problemas a servicios centralizados como Discord, Skype o similares.</p><p>Mumble nació con el objetivo de ofrecer comunicaciones de baja latencia y alta calidad incluso en conexiones modestas, algo que lo hizo especialmente popular en el mundo de los videojuegos. Sin embargo, sus ventajas van mucho más allá: consume pocos recursos, funciona perfectamente en hardware antiguo o en entornos virtualizados, y permite desplegar tu propio servidor sin depender de terceros ni ceder tus datos a plataformas privativas.</p><p>A lo largo de este tutorial realizaremos la instalación paso a paso, configuraremos el servicio y dejaremos listo el servidor para que puedas conectarte desde cualquier cliente Mumble, ya sea en GNU/Linux, escritorio o móvil, con un consumo mínimo de recursos y sin complicaciones innecesarias.</p><h2 id="instalaci%C3%B3n-de-mumble">Instalación de Mumble</h2><p>Para instalar el servidor Mumble, tendremos que ejecutar el siguiente comando con la opción <code>--no-install-recommends</code>:</p><pre><code class="language-bash">apt-get install mumble-server --no-install-recommends</code></pre><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">⚠️</div><div class="kg-callout-text">Se recomienda instalar Mumble <b><strong style="white-space: pre-wrap;">sin paquetes recomendados</strong></b>, ya que estos añaden numerosas dependencias innecesarias (especialmente en servidores donde ya existe un stack web) e incluyen <b><strong style="white-space: pre-wrap;">Avahi</strong></b>.<br><br>Si Avahi se instala, <b><strong style="white-space: pre-wrap;">debe desactivarse en servidores expuestos a Internet</strong></b>, ya que utiliza mDNS para anunciar servicios en red, lo que puede exponer información del sistema y ampliar la superficie de ataque.</div></div><p>Una vez instalado, primero de todo modificamos la configuración del servicio, para ello editaremos el fichero <code>/etc/mumble/mumble-server.ini</code>. </p><pre><code class="language-bash">welcometext="Bienvenidos al Mumble!"
serverpassword=Contrasena123
users=50
bandwidth=72000
registerName=Servidor de Voz Voidnull
logfile=/var/log/mumble-server/mumble.log</code></pre><p>Guardamos el fichero y procedemos a reiniciar el servicio:</p><pre><code class="language-bash">systemctl restart mumble-server.service </code></pre><p>Una vez hemos configurado el servidor, recuerda de abrir el puerto <code>64738 UDP/TCP</code> para poder acceder correctamente desde los clientes.</p><p>Con esta configuración base, ya podremos conectarnos al servidor desde el cliente para GNU/Linux mumble o bien desde <a href="https://f-droid.org/ca/packages/se.lublin.mumla/?ref=voidnull.es">Mumla</a> si usamos Android.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-10.png" class="kg-image" alt="" loading="lazy" width="734" height="467" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-10.png 600w, https://voidnull.es/content/images/2026/03/imatge-10.png 734w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Newsletter #47 - Zigbee usando SLZB-06 e iniciamos nuestra campaña #KeepAndroidOpen ]]></title>
            <description><![CDATA[ Descubre en un solo vistazo lo más destacado del mes: artículos, noticias y recursos seleccionados para ti. ]]></description>
            <link>https://voidnull.es/newsletter/newsletter-47-zigbee-usando-slzb-06-e-iniciamos-nuestra-campana-keepandroidopen/</link>
            <guid isPermaLink="false">69b7e684bec19c00010b8e21</guid>
            <category><![CDATA[  ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Mon, 06 Apr 2026 12:00:59 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2022/10/newsletter-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Si vas justo de tiempo, no pasa nada. Hemos reunido los mejores artículos, noticias y recursos del mes en un solo lugar para que los disfrutes cómodamente. ¡Disfruta de todos los artículos!</p><hr><h2 id="%F0%9F%97%83%EF%B8%8F-tutoriales-trucos-y-m%C3%A1s">🗃️<strong> Tutoriales, trucos y más</strong></h2><p>A continuación os dejamos los artículos más relevantes para este boletín de los últimos 30 días.</p><ul>
<li><a href="https://voidnull.es/utiliza-whisper-para-generar-texto-de-audios/">Utiliza whisper para generar texto de audios</a></li>
<li><a href="https://voidnull.es/quota-control-del-espacio-en-disco-por-usuario/">quota: control del espacio en disco por usuario</a></li>
<li><a href="https://voidnull.es/migrar-de-un-dongle-zigbee-usb-al-smlight-slzb-06-en-zigbee2mqtt/">Migrar de un dongle Zigbee USB al SMLight SLZB-06 en Zigbee2MQTT</a></li>
<li><a href="https://voidnull.es/instalacion-de-un-nodo-de-mastodon-en-debian-13/">Instalación de un nodo de Mastodon en Debian 13</a></li>
<li><a href="https://voidnull.es/instalacion-de-wordpress-en-nuestro-servidor-en-almalinux-10/">Instalación de WordPress en nuestro servidor en AlmaLinux 10</a></li>
<li><a href="https://voidnull.es/instalacion-de-zigbee2mqtt-en-proxmox/">Instalación de Zigbee2MQTT en Proxmox</a></li>
<li><a href="https://voidnull.es/instalacion-de-zabbix-server-7-0-en-rockylinux-10/">Instalación de Zabbix Server 7.0 en RockyLinux 10</a></li>
<li><a href="https://voidnull.es/instalacion-de-cloudpanel-en-debian-13/">Instalación de CloudPanel en Debian 13</a></li>
<li><a href="https://voidnull.es/instalacion-de-mumble-en-debian-13/">Instalación de Mumble en Debian 13</a></li>
<li><a href="https://voidnull.es/instalacion-de-docker-en-almalinux-10/">Instalación de Docker en AlmaLinux 10</a></li>
<li><a href="https://voidnull.es/configurar-rsyslog-en-debian-13/">Configurar rsyslog en Debian 13</a></li>
<li><a href="http://">Instalación de Pulse en Proxmox</a></li>
</ul>
<h2 id=""></h2><!--members-only--><h2 id="shht-s%C3%B3lo-ser%C3%A1-un-momento">Shht, sólo será un momento</h2>
<p>🌟 ¡Hey! Espera un momentito... 🤚 Antes de que sigas devorando nuestros artículos (que sabemos que son irresistibles 😋), tengo algo <strong>importante</strong> que decirte. Esto no tiene mucho que ver con lo que estás leyendo, ¡pero es igual de emocionante! 🎉 Si te estás preguntando, "<strong>¿Cómo puedo ayudar a que este blog siga creando contenidos tan geniales?</strong>", tengo una idea brillante para ti. 💡</p>
<p>¿Qué tal una pequeña <a href="https://voidnull.es/beneficios-de-registrarse-en-voidnull/">donación</a>? 💖 Sí, como lo oyes. Con solo unos clics, puedes convertirte en nuestro héroe o heroína del día. 🦸🦸 No importa si es mucho o poco, cada granito de arena cuenta para que sigamos compartiendo artículos tan interesantes (o incluso más) como este. 💪</p>
<p>Así que, si te sientes generoso y quieres <a href="https://voidnull.es/beneficios-de-registrarse-en-voidnull/">apoyarnos</a>, ¡Adelante! Tu contribución nos ayudará a seguir adelante con nuestra misión de entretenerte e informarte. Y si no puedes, no te preocupes, ¡Seguiremos siendo amigos! 😊</p>
<p>¡Gracias por estar aquí y por ser parte de nuestra increíble comunidad! 🌈</p>
<div class="kg-card kg-button-card kg-align-center"><a href="https://voidnull.es/about/#suscripciones" class="kg-btn kg-btn-accent">Hacer donación</a></div><p>Recuerda también que puedes invitar a tus amigos y familiares a formar parte de la comunidad y explicar los beneficios de registrarse en <strong>./voidNull</strong>.</p><div class="kg-card kg-button-card kg-align-center"><a href="https://voidnull.es/beneficios-de-registrarse-en-voidnull/" class="kg-btn kg-btn-accent">🔥 Beneficios de registrarse en ./voidNull</a></div><hr><h1 id="%F0%9F%93%9A-diccionario-de-comandos-para-gnulinux">📚 Diccionario de comandos para GNU/Linux</h1><p>Dentro del mundo de la administración de sistemas operativos basados en GNU/Linux, existen muchos comandos. Hay un subconjunto de comandos de shell como <code>cd</code> o <code>mkdir</code> y luego están los comandos de GNU coreutils como <code>less</code>. Además de todo esto, existen utilidades CLI adicionales como <code>curl</code>, <code>wget</code>, <code>dt</code>, entre muchas otras herramientas.</p><ul>
<li><a href="https://voidnull.es/xz-comprime-a-saco-sin-consumir-recursos/">xz: comprime a saco sin consumir recursos</a></li>
</ul>
<div class="kg-card kg-header-card kg-width-full kg-size-small kg-style-accent" data-kg-background-image="" style=""><h2 class="kg-header-card-header" id="buscas-otro-comando"><span style="white-space: pre-wrap;">¿Buscas otro comando?</span></h2><h3 class="kg-header-card-subheader" id="revisa-nuestro-diccionario-de-comandos-para-gnulinux"><span style="white-space: pre-wrap;">¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!</span></h3><a class="kg-header-card-button" href="https://voidnull.es/diccionario-comandos-gnu-linux"> Diccionario de comandos para GNU/Linux </a></div><hr><h1 id="%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-%C2%A1cursos-en-curso">👩‍💻 ¡Cursos en curso!</h1><p>Os dejamos los últimos artículos de los cursos que hay actualmente en ./voidNull:</p><h3 id="gu%C3%ADas-y-recomendaciones">Guías y recomendaciones</h3>
<ul>
<li><a href="https://voidnull.es/apache-vs-nginx-vs-caddy-que-servidor-web-usar-en-tu-servidor/">Apache vs Nginx vs Caddy: qué servidor web usar en tu servidor</a></li>
</ul>
<h3 id="home-assistant">Home Assistant</h3>
<ul>
<li><a href="https://voidnull.es/integrar-ugreen-nas-en-home-assistant/">Integrar UGREEN NAS en Home Assistant</a></li>
</ul>
<h3 id="viernes-de-distros">Viernes de Distros!</h3>
<ul>
<li><a href="https://voidnull.es/instalacion-de-pop-_os-24-04-lts-viernesdedistros/">Instalación de Pop!_OS 24.04 LTS #ViernesDeDistros</a></li>
</ul>
<div class="kg-card kg-button-card kg-align-center"><a href="https://voidnull.es/courses/" class="kg-btn kg-btn-accent">Accede a nuestros cursos</a></div><h2 id="mantengamos-android-abierto-keepandroidopen">Mantengamos Android Abierto #KeepAndroidOpen</h2><p>A continuación, dentro de nuestra campaña sobre #KeepAndroidOpen os dejamos el listado de aplicaciones para Android que puedes descargar desde <a href="https://f-droid.org/ca/?ref=voidnull.es">F-Droid</a>:</p><ul>
<li><a href="https://voidnull.es/gadgetbridge-gestiona-tu-pulsera-deportiva-inteligente-libremente/">GadgetBridge: gestiona tu pulsera deportiva inteligente libremente</a></li>
<li><a href="https://voidnull.es/k9-mail-cliente-de-correo-todoterreno/">K9-Mail: cliente de correo todoterreno</a></li>
<li><a href="https://voidnull.es/shiftcal-gestiona-tu-horario-laboral-y-tus-turnos/">ShiftSwift: gestiona tu horario laboral y tus turnos</a></li>
<li><a href="https://voidnull.es/tusky-un-cliente-para-el-fediverso-muy-completo/">Tusky: un cliente para el Fediverso muy completo</a></li>
<li><a href="http://">KeyGuard: accede a tus contraseñas si usas VaultWarden o KeePass</a></li>
</ul>
<div class="kg-card kg-header-card kg-width-full kg-size-small kg-style-dark" data-kg-background-image="" style=""><h2 class="kg-header-card-header" id="-artculo-del-mes-"><span style="white-space: pre-wrap;">🌟 ARTÍCULO DEL MES 🌟</span></h2><h3 class="kg-header-card-subheader" id="el-artculo-seleccionado-para-este-mes-es"><span style="white-space: pre-wrap;">El artículo seleccionado para este mes es...</span></h3></div><h2 id="%E2%9A%A1liberar-espacio-en-la-base-de-datos-de-mastodon-con-pgrepack">⚡Liberar espacio en la base de datos de Mastodon con pg_repack</h2><p><code>pg_repack</code> sirve precisamente para esto: reescribe tablas e índices compactándolos, eliminando el espacio desperdiciado por filas muertas y devolviendo espacio real al sistema de archivos. Dicho de forma simple, <code>pg_repack</code> crea una copia limpia de la tabla (sin el desperdicio), intercambia la tabla antigua por la nueva y repite el proceso tabla por tabla. La consecuencia práctica es clara: puedes recuperar gigas y mejorar la salud general de la base de datos.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/liberar-espacio-en-la-base-de-datos-de-mastodon-con-pg_repack/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Liberar espacio en la base de datos de Mastodon con pg_repack</div><div class="kg-bookmark-description">pg_repack compacta PostgreSQL en Mastodon, elimina filas muertas, recupera espacio y mejora el rendimiento.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-293.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/mastodon-3.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><h2 id="%E2%9A%A1mantenimiento-de-peertube-liberar-espacio-en-disco">⚡Mantenimiento de Peertube: Liberar espacio en disco</h2><p>Cuando PeerTube se configura con almacenamiento S3, el flujo de subida funciona de la siguiente manera: la persona usuaria sube un vídeo desde la interfaz de la plataforma y, en ese momento, el archivo se guarda temporalmente en el servidor. A continuación, el propio servidor se encarga de realizar la transcodificación del vídeo (generando las distintas resoluciones necesarias). Una vez finalizado ese proceso, los ficheros resultantes se envían al bucket S3 configurado. Finalmente, PeerTube elimina los archivos temporales generados durante el proceso.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/mantenimiento-de-peertube-liberar-espacio-en-disco/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Mantenimiento de Peertube: Liberar espacio en disco</div><div class="kg-bookmark-description">Cómo liberar espacio en una instancia de Peertube con estos simples comandos.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-300.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/peertube.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><h2 id="%F0%9F%9B%B8-lo-que-est%C3%A1-por-venir">🛸 Lo que está por venir</h2><p>A continuación os explicamos algunos detalles de los próximos artículos que están por aterrizar en <strong>./voidNull</strong>:</p><p>El próximo mes en ./voidNull viene especialmente cargado. Durante las próximas semanas publicaremos una guía completa de instalación de Mumble como alternativa libre a Discord, además de un artículo centrado en mejorar las integraciones de Home Assistant para sacar aún más partido a tu entorno domótico. También exploraremos varias herramientas para gestionar Proxmox de forma más eficiente, con una guía práctica pensada para entornos reales.</p>
<p>En la parte de sistema, continuaremos ampliando la serie de comandos en GNU/Linux profundizando en herramientas como nl y quota, y veremos paso a paso cómo instalar Docker en Rocky Linux 10, junto con el despliegue de CloudPanel para entornos de hosting.</p>
<p>Las aplicaciones también tendrán su espacio, con un nuevo recopilatorio de software disponible en F-Droid donde analizaremos opciones como KeyGuard, Conversations, Binary Eye, CoMaps y DAVx⁵, todas ellas centradas en privacidad y software libre.</p>
<p>Además, vuelve #viernesdedistros con fuerza: esta vez instalaremos Ubuntu 26.04 recién salida del horno, revisando todo el proceso desde cero. Y como novedad importante, arrancamos una nueva serie dedicada a Proxmox, comenzando por su primer capítulo para sentar las bases.</p>
<p>¡Y esto es solo el principio, aún hay mucho más en camino! 🚀</p>
<h2 id="%E2%9D%A4%EF%B8%8F-con-todo-nuestro-amor">❤️ Con todo nuestro amor</h2><ul>
<li>🔗 ¿Te gustó algún artículo? ¡Compártelo con tus amigos y familia, y ayuda a que más personas descubran nuestro contenido!</li>
<li>💬 Únete a <a href="https://forum.voidnull.es/?ref=voidnull.es">nuestra comunidad en el foro de ./voidNull</a> y comparte tus dudas o soluciones. ¡Estamos aquí para ayudarte!</li>
<li>📰 No te pierdas nada: Añade nuestro <a href="https://voidnull.es/rss/">feed RSS</a> y mantente siempre al día con las últimas novedades.</li>
<li>🚀 ¿Aún no eres miembro? Descubre todas las <a href="https://voidnull.es/beneficios-de-registrarse-en-voidnull/">ventajas exclusivas de formar parte de ./voidNull</a>. ¡No te lo pierdas!</li>
<li>📢 Síguenos en <a href="https://t.me/voidnullblog?ref=voidnull.es">Telegram</a> y <a href="@blog@voidnull.es">Mastodon</a> para estar al tanto de las actualizaciones más recientes. ¡Conéctate con nosotros!</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Ping #20: Actualizaciones, novedades y ranking de distros ]]></title>
            <description><![CDATA[ Aquí encontrarás las distribuciones más recientes, paquetes actualizados y el ranking de las distros más descargadas. 🚀 ]]></description>
            <link>https://voidnull.es/ping-20/</link>
            <guid isPermaLink="false">69c28473bec19c00010b9263</guid>
            <category><![CDATA[ Ping ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Sun, 05 Apr 2026 12:00:37 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2025/02/ping-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>¡Bienvenido a nuestro resumen quincenal de GNU/Linux! Aquí encontrarás las distribuciones más recientes, paquetes actualizados y el ranking de las distros más descargadas. 🚀</p><h2 id="%F0%9F%94%84-%C3%BAltimas-distribuciones-lanzadas">🔄 <strong>Últimas distribuciones lanzadas</strong></h2><p>En los últimos 15 días, han salido nuevas versiones de estas distribuciones:</p><ul>
<li>
<p><strong><a href="https://distrowatch.com/gnomeos?ref=voidnull.es">GNOME OS 1026083</a></strong>: GNOME OS es una distribución experimental e inmutable de GNU/Linux que incluye las últimas versiones en desarrollo del escritorio GNOME, aplicaciones principales y su stack. Sirve como referencia para desarrolladores y testers. Está diseñada sobre systemd y un userland basado en GNU construido a partir del Freedesktop SDK. Inicialmente utilizaba OSTree para desplegar el sistema de archivos raíz y gestionar actualizaciones, pero posteriormente migró a systemd-sysupdate, que aporta mayor inmutabilidad, actualizaciones automáticas, adaptabilidad, restauración de fábrica y mejoras en seguridad. Puede ejecutarse como imagen live en Boxes, VirtualBox, QEMU u otros sistemas de virtualización, o instalarse en hardware x86_64. No admite gestión de paquetes tradicional, pero permite instalar aplicaciones mediante Flatpak.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/netrunner?ref=voidnull.es">Netrunner 26</a></strong>: Netrunner es una distribución basada en Debian que incluye un entorno de escritorio KDE altamente personalizado con aplicaciones adicionales, códecs multimedia y plugins como Flash y Java. Sus modificaciones buscan mejorar la facilidad de uso sin perder capacidad de personalización. Existió una edición “Rolling” basada en Manjaro Linux que fue lanzada en 2014, descontinuada, relanzada en 2017 y finalmente abandonada en 2019.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/puppy?ref=voidnull.es">Puppy 260401</a></strong>: Puppy es una distribución de GNU/Linux extremadamente ligera pero completa. Se ejecuta desde un ramdisk, lo que permite que todas las aplicaciones se carguen en memoria y respondan de forma casi instantánea. Puede arrancar desde múltiples medios como USB, CD-ROM, discos Zip, Superdisk, disquetes o disco duro. También permite guardar datos en CDs/DVDs regrabables sin necesidad de disco duro.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/startos?ref=voidnull.es">StartOS 0.4.0-beta0</a></strong>: StartOS es una distribución basada en Debian optimizada para servidores personales. Facilita la instalación, configuración de red, gestión de servicios, copias de seguridad, dependencias y monitorización de software autoalojado. Tras la instalación, arranca directamente en un navegador Firefox con varios servicios preinstalados y otros disponibles desde su marketplace, incluyendo servicios de Bitcoin, comunicación, datos e inteligencia artificial. Permite acceso local o remoto mediante servicios Onion de la red Tor. Está desarrollada por Start9 Labs, Inc.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/alienos?ref=voidnull.es">Alien-OS 26.04</a></strong>: Alien-OS es una distribución alemana basada en la versión estable más reciente de Debian, con componentes de MX Linux. Utiliza el entorno Regolith, que combina los gestores de ventanas i3 y Sway en una interfaz de mosaico orientada al teclado. Incluye soporte para systemd o SysV init, la herramienta MX-Tools, el kernel Liquorix optimizado para gaming y multimedia, más de 20 temas preinstalados y soporte para instalaciones OEM.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/arch?ref=voidnull.es">Arch 2026.04.01</a></strong>: Arch es una distribución de GNU/Linux independiente optimizada para x86_64 y orientada a usuarios avanzados. Utiliza el gestor de paquetes pacman, que permite mantener el sistema actualizado con control de dependencias. Sigue un modelo rolling release y puede instalarse desde una imagen o mediante red. Ofrece una base mínima que el usuario puede personalizar completamente. El Arch Build System permite crear y modificar paquetes, así como compartirlos mediante el repositorio AUR.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/zimaos?ref=voidnull.es">ZimaOS 1.6.0-beta2</a></strong>: ZimaOS es un sistema operativo basado en GNU/Linux orientado a servidores personales y dispositivos NAS. Incluye soporte para acceso remoto, configuración RAID, actualizaciones OTA y una interfaz web para la gestión del sistema. Está desarrollado por IceWhale Technology Limited, también creadora del hardware ZimaCube. Además de ZimaOS, ofrecen CasaOS, una capa ligera que convierte una instalación existente en un servidor personal o NAS.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/eznixos?ref=voidnull.es">EznixOS 260401</a></strong>: EznixOS es una distribución live basada en Debian Stable. Ofrece tres ediciones: Xfce personalizado con software adicional, Xfce sin modificar y KDE Plasma sin modificar. Puede instalarse en disco mediante Calamares. Además, el proyecto proporciona herramientas, scripts y documentación para crear imágenes personalizadas de Debian.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/recalbox?ref=voidnull.es">Recalbox 10.0.4</a></strong>: Recalbox es un sistema operativo dedicado a la emulación de consolas y videojuegos retro. También permite ejecutar Kodi como centro multimedia. Su interfaz está diseñada principalmente para controladores de consola, aunque admite teclado para diversas funciones.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/midnightbsd?ref=voidnull.es">MidnightBSD 4.0.4</a></strong>: MidnightBSD es un sistema operativo derivado de FreeBSD cuyo objetivo es ofrecer un entorno de escritorio fácil de usar con gestión gráfica de puertos y configuración del sistema mediante GNUstep. La mayor parte del sistema utiliza licencia BSD. El proyecto se originó a partir de FreeBSD 6.1 beta.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/drparted?ref=voidnull.es">Dr.Parted 26.04</a></strong>: Dr.Parted Live es una distribución live de GNU/Linux basada en Debian Testing. Incluye un entorno ligero con Openbox y herramientas orientadas a la partición de discos, copias de seguridad, restauración y recuperación de datos.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/kiro?ref=voidnull.es">Kiro 26.04.01.01</a></strong>: Kiro es una distribución basada en Arch diseñada como generador de imágenes ISO personalizadas. Permite crear medios de instalación adaptados con paquetes, configuraciones y scripts específicos. Utiliza el escritorio Xfce, el instalador Calamares y una estructura modular.</p>
</li>
</ul>
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">🔗</div><div class="kg-callout-text">Si quieres conocer más detalles, puedes visitar <a href="https://distrowatch.com/?ref=voidnull.es" target="_new" rel="noopener">DistroWatch</a>.</div></div><h2 id="%F0%9F%93%A6-paquetes-actualizados-m%C3%A1s-relevantes">📦 <strong>Paquetes actualizados más relevantes</strong></h2><p>Estas son algunas actualizaciones destacadas en paquetes populares:</p><ul>
<li>
<p><strong><a href="https://www.openssh.com/portable.html?ref=voidnull.es">openssh 10.3p1</a></strong>: OpenSSH es un conjunto de herramientas cliente y servidor para realizar accesos remotos cifrados y transferencias de archivos de forma segura.</p>
</li>
<li>
<p><strong><a href="https://www.mesa3d.org/?ref=voidnull.es">mesa 26.0.4</a></strong>: Mesa es una biblioteca de gráficos 3D que implementa estándares como OpenGL y Vulkan en sistemas GNU/Linux.</p>
</li>
<li>
<p><strong><a href="https://www.isc.org/downloads/bind/?ref=voidnull.es">bind 9.20.22</a></strong>: ISC BIND es una implementación de los protocolos del Sistema de Nombres de Dominio (DNS), ampliamente utilizada en servidores.</p>
</li>
<li>
<p><strong><a href="https://brave.com/?ref=voidnull.es">brave-browser 1.88.138</a></strong>: Brave es un navegador web de código abierto basado en Chromium que incluye un bloqueador de anuncios integrado.</p>
</li>
<li>
<p><strong><a href="https://github.com/karelzak/util-linux?ref=voidnull.es">util-linux 2.42</a></strong>: util-linux es una colección de utilidades esenciales para sistemas GNU/Linux.</p>
</li>
<li>
<p><strong><a href="https://vivaldi.com/?ref=voidnull.es">vivaldi 7.9.3970.47</a></strong>: Vivaldi es un navegador web gratuito, multiplataforma y propietario desarrollado por Vivaldi Technologies.</p>
</li>
<li>
<p><strong><a href="https://libvirt.org/?ref=voidnull.es">libvirt 12.2.0</a></strong>: libvirt es un conjunto de herramientas para interactuar con las capacidades de virtualización del kernel de GNU/Linux.</p>
</li>
<li>
<p><strong><a href="https://www.gtk.org/?ref=voidnull.es">gtk 4.22.2</a></strong>: GTK es un toolkit multiplataforma para la creación de interfaces gráficas de usuario (GUI).</p>
</li>
<li>
<p><strong><a href="https://www.chromium.org/Home?ref=voidnull.es">chromium 146.0.7680.177</a></strong>: Chromium es la versión de código abierto de Google Chrome, un navegador web gráfico.</p>
</li>
<li>
<p><strong><a href="https://tukaani.org/xz/?ref=voidnull.es">xz 5.8.3</a></strong>: XZ Utils es un software de compresión de datos que ofrece una alta tasa de compresión.</p>
</li>
<li>
<p><strong><a href="https://snapcraft.io/?ref=voidnull.es">snapd 2.75.2</a></strong>: snapd es una herramienta para gestionar aplicaciones en formato .snap, portables entre distintos sistemas GNU/Linux.</p>
</li>
<li>
<p><strong><a href="https://openvpn.net/community/?ref=voidnull.es">openvpn 2.7.1</a></strong>: OpenVPN es un software de código abierto que implementa una VPN mediante un daemon seguro.</p>
</li>
</ul>
<p>📌 Si usas alguno de estos paquetes, revisa si hay mejoras o cambios importantes en su configuración.</p><h2 id="%F0%9F%8F%86-ranking-de-las-distribuciones-m%C3%A1s-descargadas">🏆 <strong>Ranking de las distribuciones más descargadas</strong></h2><p>Cada dos semanas revisamos cuáles son las distribuciones más populares según las descargas recientes. Aquí tienes el top 10 de esta quincena:</p><ul>
<li>📉 <a href="https://distrowatch.com/cachyos?ref=voidnull.es">CachyOS</a> - 3632 visitas por día (👎 6 visitas)</li>
<li>📉 <a href="https://distrowatch.com/mint?ref=voidnull.es">Mint</a> - 2011 visitas por día (👎 2 visitas)</li>
<li>📈 <a href="https://distrowatch.com/mx?ref=voidnull.es">MX Linux</a> - 1818 visitas por día (👍 4 visitas)</li>
<li>📉 <a href="https://distrowatch.com/popos?ref=voidnull.es">Pop!_OS</a> - 1572 visitas por día (👎 12 visitas)</li>
<li>📉 <a href="https://distrowatch.com/debian?ref=voidnull.es">Debian</a> - 1419 visitas por día (👎 6 visitas)</li>
<li>📈 <a href="https://distrowatch.com/endeavour?ref=voidnull.es">EndeavourOS</a> - 1284 visitas por día (👍 4 visitas)</li>
<li>📉 <a href="https://distrowatch.com/zorin?ref=voidnull.es">Zorin</a> - 1260 visitas por día (👎 16 visitas)</li>
<li>📈 <a href="https://distrowatch.com/fedora?ref=voidnull.es">Fedora</a> - 1234 visitas por día (👍 4 visitas)</li>
<li>📉 <a href="https://distrowatch.com/manjaro?ref=voidnull.es">Manjaro</a> - 1035 visitas por día (👎 7 visitas)</li>
<li>📈 <a href="https://distrowatch.com/ubuntu?ref=voidnull.es">Ubuntu</a> - 1031 visitas por día (👍 3 visitas)</li>
</ul>
<div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text">¿Tu distribución favorita está en la lista? ¡Déjanos un comentario!</div></div><h2 id="%F0%9F%8E%93-aprende-m%C3%A1s-sobre-gnulinux">🎓 <strong>Aprende más sobre GNU/Linux</strong></h2><p>Si te interesa aprender más sobre GNU/Linux, en nuestro blog publicamos artículos sobre herramientas, comandos y configuraciones útiles. Además, en nuestra <a rel="noopener">sección de cursos</a> puedes encontrar tutoriales organizados por niveles. 🚀 </p><h2 id="%E2%98%95-apoya-nuestro-contenido">☕ <strong>Apoya nuestro contenido</strong></h2><p>Si este tipo de artículos te resulta útil, considera apoyarnos con una pequeña donación. Nos ayuda a seguir compartiendo información sobre software libre.</p><p>🔗 <a href="https://ko-fi.com/voidnull?ref=voidnull.es">https://ko-fi.com/voidnull</a></p><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ KeyGuard: accede a tus contraseñas si usas VaultWarden o KeePass ]]></title>
            <description><![CDATA[ Cliente alternativo para VaultWarden y KeePass centrado en mejorar la experiencia de uso sin renunciar al control del usuario ]]></description>
            <link>https://voidnull.es/keyguard-accede-a-tus-contrasenas-si-usas-vaultwarden-o-keepass/</link>
            <guid isPermaLink="false">69a5dcb1bec19c00010b875d</guid>
            <category><![CDATA[ F-Droid ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Fri, 03 Apr 2026 17:30:10 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/03/fdroid-2.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Durante años, <strong>Android se ha presentado como una plataforma abierta</strong>, donde los usuarios podían <strong>instalar</strong>, <strong>estudiar</strong> y <strong>compartir</strong> software libremente, sin intermediarios obligatorios. Sin embargo, <strong>los cambios anunciados por Google amenazan con transformar ese modelo en uno cada vez más cerrado</strong>, en el que desarrollar, distribuir o incluso ejecutar aplicaciones podría quedar condicionado a la aprobación previa de la propia compañía.</p><p>Este giro <strong>no solo afecta a desarrolladores</strong>, sino <strong>también a personas usuarias</strong>, <strong>comunidades</strong> y <strong>proyectos de software libre</strong>, que ven peligrar la posibilidad de mantener un ecosistema independiente, auditable y basado en estándares abiertos. La pérdida de control sobre nuestros propios dispositivos supone, en la práctica, renunciar a una parte de nuestra <strong>soberanía tecnológica</strong>.</p><p>Por ese motivo, inicio esta serie de artículos para dar visibilidad a aplicaciones libres disponibles en <a href="https://f-droid.org/es/?ref=voidnull.es">F-Droid</a>, demostrar que existen alternativas reales al modelo centralizado de Google Play y contribuir a la concienciación sobre la importancia de <strong>mantener Android como una plataforma verdaderamente abierta</strong>.</p><div class="kg-card kg-header-card kg-v2 kg-width-regular " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="puedes-encontrar-ms-informacin-sobre-la-campaa" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Puedes encontrar más información sobre la campaña</span></h2>
                    <p id="mantnandroidabiertokeepandroidopen" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">#ManténAndroidAbierto</span><br><span style="white-space: pre-wrap;">#KeepAndroidOpen</span></p>
                    <a href="https://keepandroidopen.org/es/?ref=voidnull.es" class="kg-header-card-button " style="background-color: #8AB000;color: #FFFFFF;" data-button-color="#8AB000" data-button-text-color="#FFFFFF">Leer manifiesto</a>
                </div>
            </div>
        </div><h2 id="aplicaci%C3%B3n-de-la-semana-keyguard">Aplicación de la semana: KeyGuard</h2><p>Keyguard es una aplicación que actúa como cliente para bóvedas de contraseñas compatibles con Bitwarden o archivos KeePass (KDBX), diseñada para ofrecer una experiencia más cuidada manteniendo compatibilidad con estos sistemas abiertos.</p><p>Permite utilizar infraestructuras existentes de gestión de contraseñas sin depender del cliente oficial, aportando una alternativa enfocada en usabilidad y portabilidad en múltiples plataformas.</p><h3 id="detalles-de-la-aplicaci%C3%B3n">Detalles de la aplicación</h3><ul><li>🔗 Web oficial: No hay web oficial</li><li>📦 F-Droid: Tiene un <a href="https://gh.artemchep.com/keyguard-repo-fdroid/repo/?ref=voidnull.es">repositorio propio</a> que puedes añadir en F-Droid</li><li>🧑‍💻 Código fuente: <a href="https://github.com/AChep/keyguard-app?ref=voidnull.es" rel="noopener">https://github.com/AChep/keyguard-app</a></li><li>📜 Licencia: código disponible para uso personal</li><li>🌍 Idiomas: Multidioma</li></ul><h3 id="caracter%C3%ADsticas-principales">Características principales</h3><ul><li>Compatible con Bitwarden y KeePass (KDBX)</li><li>Disponible en múltiples plataformas además de Android</li><li>Diseñado como cliente alternativo centrado en experiencia de usuario</li><li>Instalación desde distintos repositorios y formatos</li><li>Proyecto abierto a contribuciones y traducciones</li></ul><h2 id="mi-experiencia-con-keyguard">Mi experiencia con KeyGuard</h2><p>He estado muchos años usando KeePass para uso personal hasta que decidí montar mi propio servidor de VaultWarden donde aproveché para explicarte como hacerlo:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/instalar-vaultwarden-con-docker-y-proxy-inverso/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Instalar VaultWarden con Docker y Proxy Inverso</div><div class="kg-bookmark-description">VaultWarden es una alternativa ligera y eficiente al servidor oficial de Bitwarden que permite gestionar contraseñas de forma segura y privada</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-277.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/vaultwarden.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><p>Desde entonces estoy usando KeyGuard para acceder a mis contraseñas ya que el cliente de BitWarden hubo algún problema de que usaba cosas privativas. Es cierto que este cliente no tiene licencia de código abierto/libre, pero aún así publica el código y deja que se use de forma personal.</p><p>Lo uso tanto en el móvil como en el ordenador, ya que tiene cliente para GNU/Linux que funciona igual de bien. Es la mejor forma de tener las contraseñas sincronizadas en todos mis dispositivos.</p><p>Tiene un diseño agradable y bonito, por lo que recomiendo mucho su uso.</p><div class="kg-card kg-header-card kg-v2 kg-width-wide " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="si-queremos-que-android-siga-siendo-una-plataforma-abierta-debemos-apoyar-y-usar-aplicaciones-libres-" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Si queremos que Android siga siendo una plataforma abierta, debemos apoyar y usar aplicaciones libres. </span></h2>
                    <p id="instala-desde-fdroid-comparte-estas-alternativas-y-contribuye-a-mantener-vivo-un-ecosistema-donde-el-usuario-tenga-el-control" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Instala desde F-Droid, comparte estas alternativas y contribuye a mantener vivo un ecosistema donde el usuario tenga el control.</span></p>
                    <a href="https://f-droid.org/es/F-Droid.apk?ref=voidnull.es" class="kg-header-card-button " style="background-color: #ffffff;color: #000000;" data-button-color="#ffffff" data-button-text-color="#000000">Descarga F-Droid</a>
                </div>
            </div>
        </div><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Instalación de Pulse en Proxmox ]]></title>
            <description><![CDATA[ Plataforma de monitorización que centraliza el estado de nodos, almacenamiento, contenedores y recursos de tu laboratorio en un único panel. ]]></description>
            <link>https://voidnull.es/instalacion-de-pulse-en-proxmox/</link>
            <guid isPermaLink="false">69b949babec19c00010b906c</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Fri, 03 Apr 2026 09:10:57 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2022/01/proxmox.png" medium="image"/>
            <content:encoded><![CDATA[ <p><a href="https://github.com/rcourtman/Pulse?ref=voidnull.es"><strong>Pulse</strong></a> es una plataforma de monitorización pensada especialmente para entornos de laboratorio que combinan varias tecnologías. Pulse proporciona un panel centralizado que ofrece una visión global del estado del entorno.</p><p>Con una sola vista tienes información tan interesante como el estado de los nodos del clúster, estado de los servidores críticos, estado del almacenamiento (incluyendo si usas Ceph), uso de los recursos por cada MV o LXC y estado de los contenedores Docker.</p><p>Esto resulta especialmente útil para detectar problemas que de otra forma podrían pasar desapercibidos, como degradaciones de almacenamiento, fallos en servicios o problemas tras cambios de configuración.</p><h2 id="instalaci%C3%B3n-de-pulse">Instalación de Pulse</h2><p>Nos conectaremos por SSH o entrando a la Shell de Proxmox en <strong>Datacenter - PVE - Shell</strong> y ejecutamos este comando:</p><pre><code class="language-bash">curl -fsSL https://github.com/rcourtman/Pulse/releases/latest/download/install.sh | bash</code></pre><p>Tras ejecutarlo nos preguntará de que forma instalarlo:</p><pre><code class="language-bash">=================================================
           Pulse Installation Script
=================================================

Proxmox VE detected. Installing Pulse in a container.

Installation mode:
  1) Quick (recommended)
  2) Advanced
  3) Cancel
Select [1-3]: 1</code></pre><p>Seleccionaremos la primera opción, ya que lo que hará será instalarlo en un LXC a parte, luego tendremos que seleccionar el puerto:</p><pre><code class="language-bash">[INFO] Using container ID: 102

Port [7655]: </code></pre><p>Lo dejaremos en blanco para que use el puerto <code>7655</code> que es el puerto por defecto.</p><pre><code class="language-bash">Enable automatic updates?
Pulse can automatically install stable updates daily (between 2-6 AM)
Enable auto-updates? [y/N]: y</code></pre><p>Nos preguntará también sobre las actualizaciones, nos dirá si queremos activar las actualizaciones. Indicaremos que si.</p><pre><code class="language-bash">VLAN ID (press Enter for no VLAN): 

[INFO] Detecting available resources...

Available network bridges:
  1) vmbr0
[INFO] Using network bridge: vmbr0</code></pre><p>También nos preguntará sobre la configuración de la red. Si queremos configurar una <strong>VLAN</strong> y que <em>bridge</em> queremos configurar en el LXC que creará.</p><pre><code class="language-bash">Available storage pools:
  1) local           dir       153.3 GB free of  167.2 GB (4.24% used)
[INFO] Using storage pool: local</code></pre><p>Finalmente seleccionaremos el almacenamiento donde queremos guardar el disco de Pulse.</p><pre><code class="language-bash">[INFO] Detected latest Debian template version: debian-12-standard_12.12-1_amd64.tar.zst
[INFO] Template not found, downloading Debian 12 to storage 'local'...
[INFO] Creating container...
[INFO] Starting container...
[INFO] Waiting for network... </code></pre><p>Una vez instalado, tendremos un LXC donde podremos acceder a través de la IP configurada y el puerto <code>7655</code>.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-22.png" class="kg-image" alt="" loading="lazy" width="1640" height="987" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-22.png 600w, https://voidnull.es/content/images/size/w1000/2026/03/imatge-22.png 1000w, https://voidnull.es/content/images/size/w1600/2026/03/imatge-22.png 1600w, https://voidnull.es/content/images/2026/03/imatge-22.png 1640w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Instalación de Docker en AlmaLinux 10 ]]></title>
            <description><![CDATA[ Docker es una aplicación que simplifica el proceso de gestión de los procesos de las aplicaciones en contenedores. Los contenedores le permiten ejecutar sus aplicaciones en procesos aislados de recursos. ]]></description>
            <link>https://voidnull.es/instalacion-de-docker-en-almalinux-10/</link>
            <guid isPermaLink="false">69b7d9f1bec19c00010b8dd9</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Wed, 01 Apr 2026 17:30:42 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2022/01/docker.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Docker es una aplicación que simplifica el proceso de gestión de los procesos de las aplicaciones en contenedores. Los contenedores le permiten ejecutar sus aplicaciones en procesos aislados de recursos. Son similares a las máquinas virtuales, pero los contenedores son más portátiles, consumen más recursos y dependen más del sistema operativo anfitrión.</p><p>En este tutorial, instalarás y utilizarás Docker Community Edition (CE) en AlmaLinux 10.</p><h2 id="instalaci%C3%B3n-de-docker">Instalación de Docker</h2><p>Para la mayoría de versiones de AlmaLinux en sus repositorios hay disponible el paquete de Docker, pero si queremos usar la última versión disponible, es recomendable utilizar los repositorios oficiales de Docker.</p><p>Lo primero, añadimos el repositorio para Docker:</p><pre><code class="language-bash">dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo</code></pre><p>Actualizamos los repositorios:</p><pre><code class="language-bash">dnf update</code></pre><p>Procedemos a instalar los paquetes para Docker:</p><pre><code class="language-bash">dnf install docker-ce docker-ce-cli containerd.io</code></pre><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">📢</div><div class="kg-callout-text">También podemos instalar el paquete <code spellcheck="false" style="white-space: pre-wrap;">docker-compose</code> por si necesitamos levantar ficheros de configuración</div></div><p>Cuando acabe con la instalación, podemos mirar el estado del servicio y añadirlo al arranque:</p><pre><code class="language-bash">systemctl status docker
systemctl enable docker</code></pre><pre><code class="language-bash"># systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
     Active: active (running) since Mon 2026-03-16 11:33:10 CET; 896ms ago
 Invocation: 871387861cfc447ab4a773d99323266a
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 44852 (dockerd)
      Tasks: 9
     Memory: 26.6M (peak: 27.1M)
        CPU: 305ms
     CGroup: /system.slice/docker.service
             └─44852 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Mar 16 11:33:10 alma dockerd[44852]: time="2026-03-16T11:33:10.049115122+01:00" level=info msg="Restoring containers: start."
Mar 16 11:33:10 alma dockerd[44852]: time="2026-03-16T11:33:10.088020577+01:00" level=info msg="Deleting nftables IPv4 rules" error="exit status 1" output="Error: Could not process rule: No such fil&gt;
Mar 16 11:33:10 alma dockerd[44852]: time="2026-03-16T11:33:10.097898498+01:00" level=info msg="Deleting nftables IPv6 rules" error="exit status 1" output="Error: Could not process rule: No such fil&gt;
Mar 16 11:33:10 alma dockerd[44852]: time="2026-03-16T11:33:10.420009866+01:00" level=info msg="Loading containers: done."
Mar 16 11:33:10 alma dockerd[44852]: time="2026-03-16T11:33:10.429866257+01:00" level=info msg="Docker daemon" commit=83bca51 containerd-snapshotter=true storage-driver=overlayfs version=29.3.0
Mar 16 11:33:10 alma dockerd[44852]: time="2026-03-16T11:33:10.430147927+01:00" level=info msg="Initializing buildkit"
Mar 16 11:33:10 alma dockerd[44852]: time="2026-03-16T11:33:10.477379830+01:00" level=info msg="Completed buildkit initialization"
Mar 16 11:33:10 alma dockerd[44852]: time="2026-03-16T11:33:10.487834104+01:00" level=info msg="Daemon has completed initialization"
Mar 16 11:33:10 alma dockerd[44852]: time="2026-03-16T11:33:10.488220475+01:00" level=info msg="API listen on /run/docker.sock"
Mar 16 11:33:10 alma systemd[1]: Started docker.service - Docker Application Container Engine.</code></pre><h2 id="ejecutar-docker-sin-ser-usuario-root-opcional">Ejecutar docker sin ser usuario root (Opcional)</h2><p>El comando <code>docker</code> únicamente puede ejecutarlo <code>root</code>, si queremos configurar un usuario diferente para que ejecute los comandos de Docker debemos de seguir estos pasos.</p><p>Lo primero, añadir un usuario nuevo:</p><pre><code class="language-bash">adduser voidnull</code></pre><p>Lo añadimos al grupo de <code>docker</code>:</p><pre><code class="language-bash">usermod -aG docker voidnull</code></pre><p>Y listo, con esto el usuario <code>voidnull</code> ya podrá ejecutar los comandos de Docker.</p><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Configurar rsyslog en Debian 13 ]]></title>
            <description><![CDATA[ Aprende a configurar rsyslog en Debian 13 para gestionar y centralizar los logs de tu servidor de forma eficiente. ]]></description>
            <link>https://voidnull.es/configurar-rsyslog-en-debian-13/</link>
            <guid isPermaLink="false">6990cc4060960400016a16c7</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Wed, 01 Apr 2026 09:10:55 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/04/rsyslog.png" medium="image"/>
            <content:encoded><![CDATA[ <p>En cualquier sistema basado en <strong>Debian</strong>, la gestión de logs es un elemento fundamental para el mantenimiento, la seguridad y el diagnóstico de problemas. Uno de los servicios más utilizados para esta tarea es <strong>rsyslog</strong>, un sistema de registro avanzado que permite recopilar, filtrar y enviar eventos del sistema y de las aplicaciones a diferentes destinos.</p><p>Por defecto, rsyslog ya viene instalado y activo en Debian, pero su verdadera potencia aparece cuando se personaliza su configuración. Gracias a su arquitectura modular es posible almacenar logs en distintos ficheros, reenviarlos a otros servidores, aplicar filtros por prioridad o servicio, e incluso integrarlo con sistemas de monitorización.</p><p>En este artículo veremos cómo configurar rsyslog en Debian 13 paso a paso, repasando su estructura de configuración, las directivas más importantes y algunos ejemplos prácticos para adaptar el sistema de logs a las necesidades de tu servidor.</p><h2 id="instalaci%C3%B3n-de-rsyslog">Instalación de rsyslog</h2><p>Si por algún motivo tu instalación no tiene rsyslog, puedes instalarlo de la siguiente forma:</p><pre><code class="language-bash">apt-get -y install rsyslog</code></pre><p>Una vez instalado, lo añadimos al arranque y lo iniciamos:</p><pre><code class="language-bash">systemctl start rsyslog
systemctl enable rsyslog</code></pre><h2 id="configuraci%C3%B3n-de-rsyslog">Configuración de rsyslog</h2><p>Para configurar rsyslog, simplemente tenemos que editar el fichero /etc/rsyslog.d/50-default.conf donde podremos editar lo siguiente:</p><pre><code class="language-bash">auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
cron.*                         /var/log/cron.log
kern.*                          -/var/log/kern.log
mail.*                          -/var/log/mail.log
user.*                         -/var/log/user.log</code></pre><p>Podremos descomentar o comentar las siguientes líneas para configurar los siguientes logs. Por explicar una de las líneas:</p><pre><code class="language-bash">mail.*                          -/var/log/mail.log</code></pre><ul><li><code>mail</code>: Indica la facility o categoría de logs. En este caso el servicio corresponde al del correo electrónico (Postfix, Exim4, etc)</li><li><code>*</code>: El asterisco significa <strong>todas las prioridades</strong> de log. Incluye niveles como:<ul><li>debug</li><li>info</li><li>notice</li><li>warning</li><li>err</li><li>crit</li><li>alert</li><li>emerg</li></ul></li><li><code><strong>-/var/log/mail.log</strong></code>: Indica el archivo donde se guardarán los logs. El guion <code>-</code> delante del path tiene un significado importante, le dice a rsyslog que no sincronice el fichero en disco después de cada escritura.</li></ul><p>Tras los cambios, siempre recuerda que es necesario reiniciar el servicio:</p><pre><code class="language-bash">systemctl restart rsyslog</code></pre><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Mantenimiento de Peertube: Liberar espacio en disco ]]></title>
            <description><![CDATA[ Cómo liberar espacio en una instancia de Peertube con estos simples comandos. ]]></description>
            <link>https://voidnull.es/mantenimiento-de-peertube-liberar-espacio-en-disco/</link>
            <guid isPermaLink="false">69b2c738bec19c00010b8a18</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Mon, 30 Mar 2026 09:10:30 +0200</pubDate>
            <media:content url="https://voidnull.es/content/images/2022/01/peertube.png" medium="image"/>
            <content:encoded><![CDATA[ <p>El otro día mi Zabbix me avisó de que en un nodo que administro de Peertube se estaba quedando sin espacio. Así que lo primero que hice fue entrar al servidor para revisar donde estaba el problema ya que esa instancia usa un bucket de S3 para el almacenamiento.</p><p>Detecté que había muchos ficheros almacenados en el servidor y revisando aún más entendí que es lo que ocurría.</p><p>Cuando PeerTube se configura con almacenamiento S3, el flujo de subida funciona de la siguiente manera: la persona usuaria sube un vídeo desde la interfaz de la plataforma y, en ese momento, el archivo se guarda temporalmente en el servidor. A continuación, el propio servidor se encarga de realizar la transcodificación del vídeo (generando las distintas resoluciones necesarias). Una vez finalizado ese proceso, los ficheros resultantes se envían al bucket S3 configurado. Finalmente, PeerTube elimina los archivos temporales generados durante el proceso.</p><p>Si este proceso falla por algún motivo, los ficheros temporales gfenerados del proceso, quedan almacenados en el servidor y no se borran. Afortunadamente hay una serie de comandos que permiten limpiar todos esos ficheros, limpiar caché, eliminar ficheros que ya no se utilizan, etc.</p><h2 id="liberar-espacio-en-disco">Liberar espacio en disco</h2><p>Revisando la instancia que administro, veo que en algunos directorios hay muchos ficheros que ocupan un espacio considerable:</p><pre><code class="language-bash">$ du -sh *

7.2G    streaming-playlists
4.5G    thumbnails
20G     web-videos</code></pre><p>Así que revisando algunos ficheros dentro de esos directorios, veo que algún fichero ocupa hasta 15GB de espacio:</p><pre><code class="language-bash">-rw-r--r-- 1 debian debian 15117209171 Feb  6 09:58 XXX-4fb0-4c91-8b34-XXXXXXX-1240.02
</code></pre><p>Y en el disco se estaba empezando a notar bastante:</p><pre><code class="language-bash">/dev/sda1        99G   91G  3.5G  97% /</code></pre><p>Así que tocaba arremangarse y revisar la documentación oficial para ver que opciones había. Por suerte, existen unos comandos en Peertube que permite eliminar estos ficheros huérfanos que quedan en el disco, por ejemplo, si estás utilizando Docker, deberemos de ejecutar el siguiente comando para el contenedor de Peertube:</p><pre><code class="language-bash">docker compose exec -u root peertube npm run prune-storage</code></pre><p>Este comando iniciará y buscará en los directorios configurados los ficheros huérfanos que se encuentran en el sistema de ficheros:</p><pre><code class="language-bash">&gt; peertube@7.3.0 prune-storage
&gt; LOGGER_LEVEL=warn node ./dist/scripts/prune-storage.js

webfinger.js v2.8.2 loaded
/!\ PeerTube must be stopped before running this script /!\

Pruning filesystem storage.
Detecting files to remove, it can take a while...
5475 unknown files from filesystem can be deleted:
 /data/web-videos/0bdc0199-01dc-4322-b309-XXXX-720.mp4
 /data/web-videos/0ff7343f-f955-4f58-b594-XXXX-720.mp4
 /data/web-videos/67b93a24-9276-4929-9607-XXXX-720.mp4
 /data/web-videos/c8eae880-8f94-42c8-bf87-XXXX-1080.mp4
 /data/web-videos/e797e8b4-8051-4199-a976-XXXX-1080.mp4</code></pre><p>Después de mostrar toda la lista, nos preguntará si queremos eliminarlos:</p><pre><code class="language-bash">prompt: These unknown files can be deleted, but please check your backups first (bugs happen). Can we delete these files? (y/n):  (n) y
Deleting filesystem files...

5475 filesystem files deleted.</code></pre><p>También podemos mirar de liberar espacio eliminando ficheros remotos que ya no se necesiten, para hacerlo podemos usar este otro comando:</p><pre><code class="language-bash">docker compose exec -u peertube peertube npm run house-keeping -- --delete-remote-files</code></pre><p>Este comando analizará los directorios configurados y te preguntará si quieres eliminarlos, en mi caso me encontró 340.734 ficheros de thumbnails y más de 8000 avatares/banners:</p><pre><code class="language-bash">Detecting remote files that can be deleted...
prompt: 340,734 thumbnails and 8,639 avatars/banners can be locally deleted. PeerTube will download them again on-demand. Do you want to delete these remote files? (y/n):  (n) y
Deleting remote thumbnails...
Deleting remote avatars/banners...
Remote files deleted!</code></pre><p>Tras la eliminación de todos estos ficheros, podemos ver que el disco ha liberado mucho espacio ocupado:</p><pre><code class="language-bash">/dev/sda1        99G   69G   27G  73% /</code></pre><p>Y si revisamos el tamaño de los directorios que antes ocupaban 7GB o más:</p><pre><code class="language-bash">$ du -sh *
7.1G    streaming-playlists
436M    thumbnails
1.2G    web-videos</code></pre><h2 id="conclusi%C3%B3n">Conclusión</h2><p>En principio con estos comandos eliminaremos gigas y gigas de datos que no sirven de mucho y así podremos liberar espacio. Existen otros comandos interesantes y para ello te recomiendo revisarlo en la <a href="https://docs.joinpeertube.org/maintain/tools?ref=voidnull.es#server-tools" rel="noreferrer">Documentación Oficial de Peertube</a>.</p><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Tusky: un cliente para el Fediverso muy completo ]]></title>
            <description><![CDATA[ Cliente libre para Mastodon en Android, sin dependencias de Google y con soporte completo del Fediverso. ]]></description>
            <link>https://voidnull.es/tusky-un-cliente-para-el-fediverso-muy-completo/</link>
            <guid isPermaLink="false">69a19af0bec19c00010b8176</guid>
            <category><![CDATA[ F-Droid ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Fri, 27 Mar 2026 17:30:06 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/03/fdroid-2.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Durante años, <strong>Android se ha presentado como una plataforma abierta</strong>, donde los usuarios podían <strong>instalar</strong>, <strong>estudiar</strong> y <strong>compartir</strong> software libremente, sin intermediarios obligatorios. Sin embargo, <strong>los cambios anunciados por Google amenazan con transformar ese modelo en uno cada vez más cerrado</strong>, en el que desarrollar, distribuir o incluso ejecutar aplicaciones podría quedar condicionado a la aprobación previa de la propia compañía.</p><p>Este giro <strong>no solo afecta a desarrolladores</strong>, sino <strong>también a personas usuarias</strong>, <strong>comunidades</strong> y <strong>proyectos de software libre</strong>, que ven peligrar la posibilidad de mantener un ecosistema independiente, auditable y basado en estándares abiertos. La pérdida de control sobre nuestros propios dispositivos supone, en la práctica, renunciar a una parte de nuestra <strong>soberanía tecnológica</strong>.</p><p>Por ese motivo, inicio esta serie de artículos para dar visibilidad a aplicaciones libres disponibles en <a href="https://f-droid.org/es/?ref=voidnull.es">F-Droid</a>, demostrar que existen alternativas reales al modelo centralizado de Google Play y contribuir a la concienciación sobre la importancia de <strong>mantener Android como una plataforma verdaderamente abierta</strong>.</p><div class="kg-card kg-header-card kg-v2 kg-width-regular " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="puedes-encontrar-ms-informacin-sobre-la-campaa" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Puedes encontrar más información sobre la campaña</span></h2>
                    <p id="mantnandroidabiertokeepandroidopen" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">#ManténAndroidAbierto</span><br><span style="white-space: pre-wrap;">#KeepAndroidOpen</span></p>
                    <a href="https://keepandroidopen.org/es/?ref=voidnull.es" class="kg-header-card-button " style="background-color: #8AB000;color: #FFFFFF;" data-button-color="#8AB000" data-button-text-color="#FFFFFF">Leer manifiesto</a>
                </div>
            </div>
        </div><h2 id="aplicaci%C3%B3n-de-la-semana-tusky">Aplicación de la semana: Tusky</h2><p>Tusky es un cliente ligero para la red social descentralizada Mastodon, diseñado como una alternativa libre a aplicaciones oficiales o privativas. Permite interactuar con el Fediverso manteniendo el control del software y sin depender de servicios propietarios.</p><p>La aplicación implementa la mayoría de funcionalidades de Mastodon -publicaciones, multimedia, listas o notificaciones- y está desarrollada como software completamente abierto, sin dependencias no libres como los servicios de Google.</p><h3 id="detalles-de-la-aplicaci%C3%B3n">Detalles de la aplicación</h3><ul><li>🔗 Web oficial: <a href="https://tusky.app/?ref=voidnull.es" rel="noopener">https://tusky.app/</a></li><li>📦 F-Droid: <a href="https://f-droid.org/packages/com.keylesspalace.tusky/?ref=voidnull.es" rel="noopener">https://f-droid.org/packages/com.keylesspalace.tusky/</a></li><li>🧑‍💻 Código fuente: <a href="https://codeberg.org/Freeyourgadget/Gadgetbridge?ref=voidnull.es" rel="noopener">https://codeberg.org/Freeyourgadget/Gadgetbridge</a> <em>(repositorio enlazado desde la web del proyecto)</em></li><li>📜 Licencia: GNU GPL v3</li><li>🌍 Idiomas: Multidioma</li></ul><h3 id="caracter%C3%ADsticas-principales">Características principales</h3><ul><li>Cliente Mastodon completo con soporte multimedia</li><li>Soporte para múltiples cuentas</li><li>Interfaz Material Design adaptable</li><li>Temas claro, oscuro y automático</li><li>Borradores de publicaciones</li><li>Compatible con la mayoría de APIs de Mastodon</li><li>Optimizado para distintos tamaños de pantalla</li><li>Sin dependencias de servicios privativos</li></ul><h2 id="mi-experiencia-con-tusky">Mi experiencia con Tusky</h2><p>He probado muchos clientes para Mastodon, hay un buen puñado en F-Droid y seguro que hablaremos de alguno más, pero entre todos los que hay me quedo sin duda con Tusky.</p><p>Tiene un diseño muy agradable y funciona muy muy bien. Tiene opción de multicuenta, por lo que es genial si tienes que gestionar más de una cuenta. Además tiene soporte para otros softwares del Fediverso.</p><p>Recientemente han incluido novedades de Mastodon, como las citas a toots, así que ahora se ve muy bien todo. Me gusta también porque puedes configurar publicaciones programadas, por lo que como admin de una instancia es algo esencial poder programar toots para que se publiquen a ciertas horas.</p><p>No se si mejoraría alguna cosa, pero quizás me gustaría que se añadiera alguna configuración extra de temas o así. Creo que otros clientes tienen también opciones para admins y gestionar cosas del nodo... pero entiendo que los devs de este proyecto no hayan querido meterse en ese fregado.</p><div class="kg-card kg-header-card kg-v2 kg-width-wide " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="si-queremos-que-android-siga-siendo-una-plataforma-abierta-debemos-apoyar-y-usar-aplicaciones-libres-" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Si queremos que Android siga siendo una plataforma abierta, debemos apoyar y usar aplicaciones libres. </span></h2>
                    <p id="instala-desde-fdroid-comparte-estas-alternativas-y-contribuye-a-mantener-vivo-un-ecosistema-donde-el-usuario-tenga-el-control" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Instala desde F-Droid, comparte estas alternativas y contribuye a mantener vivo un ecosistema donde el usuario tenga el control.</span></p>
                    <a href="https://f-droid.org/es/F-Droid.apk?ref=voidnull.es" class="kg-header-card-button " style="background-color: #ffffff;color: #000000;" data-button-color="#ffffff" data-button-text-color="#000000">Descarga F-Droid</a>
                </div>
            </div>
        </div><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Instalación de Pop!_OS 24.04 LTS #ViernesDeDistros ]]></title>
            <description><![CDATA[ Hoy, nos enfocaremos en la instalación de Pop!_OS 24.04 LTS, una de las distribuciones más populares y estables dentro del ecosistema GNU/Linux. ]]></description>
            <link>https://voidnull.es/instalacion-de-pop-_os-24-04-lts-viernesdedistros/</link>
            <guid isPermaLink="false">699ca517bec19c00010b800e</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Fri, 27 Mar 2026 09:10:15 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/04/popos.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Cada <strong>último viernes de mes</strong>, en <strong>#viernesdedistros</strong>, exploramos una nueva distribución GNU/Linux y te guiamos paso a paso en su instalación. Nuestro objetivo es que cualquier usuario, sin importar su nivel de experiencia, pueda instalar y configurar su sistema de manera sencilla y efectiva.</p><p>En cada entrega, seguimos una estructura de instalación clara y estandarizada:</p><ul><li>Utilizaremos un <strong>disco completo</strong> para la instalación.</li><li>Crearemos dos particiones:<ul><li>Una partición de <strong>5GB</strong> dedicada a <strong><code>/boot</code></strong>.</li><li>El resto del disco será asignado a <strong><code>/</code></strong> (la raíz del sistema).</li></ul></li></ul><p>Hoy, nos enfocaremos en la instalación de Pop!_OS 24.04 LTS, una de las distribuciones más populares y estables dentro del ecosistema GNU/Linux. Sigue los pasos de este tutorial y en pocos minutos tendrás tu sistema listo para funcionar.</p><p>¡Vamos a ello! 🚀</p><h2 id="%C2%BFdonde-descargar-la-iso-de-popos">¿Donde descargar la ISO de Pop!_OS?</h2><p>Antes de poder instalar Pop!_OS, necesitas descargar la imagen del sistema operativo. Esa imagen es un archivo con extensión <code>.iso</code> que contiene todo lo necesario para hacer la instalación. Puedes conseguirla desde la página oficial de Pop!_OS (<a href="https://system76.com/pop/download/?ref=voidnull.es">https://system76.com/pop/download/</a>).</p><h3 id="preparaci%C3%B3n-de-usb">Preparación de USB </h3><p>Para preparar un USB de instalación de<strong> </strong>Pop!_OS 24.04 LTS, podemos utilizar <strong>Balena Etcher</strong>. A continuación te dejo un artículo que explica como hacerlo paso a paso:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/crear-usb-a-partir-de-isos-arrancables-con-balenaetcher/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Crear USB a partir de ISOs arrancables con BalenaEtcher</div><div class="kg-bookmark-description">En este tutorial te enseñaré cómo usar BalenaEtcher para grabar cualquier imagen ISO arrancable en un USB.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-114.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/balenaetcher.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><h2 id="instalaci%C3%B3n-de-popos-2404-lts">Instalación de Pop!_OS 24.04 LTS</h2><p>Con el USB preparado, es hora de conectarlo al ordenador donde vas a instalar Pop!_OS 24.04 y reiniciar ese equipo. Al encenderlo, debes entrar a la BIOS o al menú de arranque. Normalmente eso se hace presionando una tecla justo al encender el PC, como F2, F12, ESC o Supr. Allí tienes que decirle que arranque desde el USB que preparaste.</p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text">En el menú de la BIOS, a veces existe una opción que se llama "orden de arranque" o similar. Allí podéis decirle directamente que arranque con el USB que habéis preparado.</div></div><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-27.png" class="kg-image" alt="" loading="lazy" width="821" height="619" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-27.png 600w, https://voidnull.es/content/images/2026/02/imatge-27.png 821w" sizes="(min-width: 720px) 720px"></figure><p>Cuando el sistema arranque desde el USB, verás que aparece el logo de Pop!_OS, tardará un rato pero acabará iniciando directamente el sistema operativo y se iniciará el instalador:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-28.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-28.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-28.png 1000w, https://voidnull.es/content/images/2026/02/imatge-28.png 1596w" sizes="(min-width: 720px) 720px"></figure><p>Al comenzar, lo primero que verás será una pantalla para seleccionar el <strong>idioma</strong>. Puedes elegir "<strong>Español"</strong> si es tu lengua materna, o cualquier otro idioma con el que te sientas más cómodo. Esta selección se aplicará tanto a la interfaz del sistema en modo live como al proceso de instalación.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-29.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-29.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-29.png 1000w, https://voidnull.es/content/images/2026/02/imatge-29.png 1596w" sizes="(min-width: 720px) 720px"></figure><p>A continuación, deberás seleccionar el <strong>tipo de teclado</strong> que utilizas. Si estás en <strong>España</strong>, lo habitual es elegir la opción "<strong>Español"</strong> (a veces aparece como "Spanish - Spain"). Si tienes dudas, puedes utilizar la herramienta que permite escribir texto de prueba para asegurarte de que las teclas coinciden con lo que aparece en pantalla.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-30.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-30.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-30.png 1000w, https://voidnull.es/content/images/2026/02/imatge-30.png 1596w" sizes="(min-width: 720px) 720px"></figure><p>A continuación, el instalador te preguntará <strong>cómo deseas instalar </strong>Pop!_OS. Verás dos opciones disponibles:</p><ul><li><strong>Clean Install</strong>: esta opción detecta el disco disponible, <strong>elimina todo su contenido</strong> y utiliza el espacio completo para instalar Pop!_OS. Es la opción más sencilla si no necesitas conservar ningún dato. </li><li><strong>Custom (Advanced)</strong>: esta opción te permite <strong>definir manualmente las particiones</strong>, ideal si deseas tener un mayor control sobre cómo se organiza el sistema, conservar datos existentes o usar un esquema de particionado específico.</li></ul><p>Para esta guía, seleccionaremos la opción <strong>"Custom"</strong>, ya que tenemos que crear las particiones a nuestro gusto.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-31.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-31.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-31.png 1000w, https://voidnull.es/content/images/2026/02/imatge-31.png 1596w" sizes="(min-width: 720px) 720px"></figure><p>Si el disco está vacío, verás todo el espacio como "<strong>espacio libre"</strong>, listo para ser utilizado en la instalación de Pop!_OS. A partir de aquí, vamos a crear manualmente las particiones necesarias, tal como mencionamos al principio. A continuación, te explicamos cómo crear cada una de ellas.</p><p>Para iniciar GParted y crear las particiones, haz clic en <strong>Modify Partitions...</strong> y sigue estos pasos:</p><h3 id="crear-una-partici%C3%B3n">Crear una partición</h3><p>En el menú superior, haz clic en <strong>Device</strong> y luego a <strong>Create Partition Table...</strong> y selecciona <strong>GPT</strong>.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-32.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-32.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-32.png 1000w, https://voidnull.es/content/images/2026/02/imatge-32.png 1596w" sizes="(min-width: 720px) 720px"></figure><p>Luego haz clic derecho sobre el espacio libre y haz clic a New (nueva partición):</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-33.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-33.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-33.png 1000w, https://voidnull.es/content/images/2026/02/imatge-33.png 1596w" sizes="(min-width: 720px) 720px"></figure><p>Y selecciona los datos como se indica en la captura:</p><ul><li>New Size: 2048 (2G)</li><li>Align to: MiB</li><li>Partition Name: boot</li><li>File System: ext4</li><li>Label: boot</li></ul><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-34.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-34.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-34.png 1000w, https://voidnull.es/content/images/2026/02/imatge-34.png 1596w" sizes="(min-width: 720px) 720px"></figure><p>Y haces clic en <strong>Add</strong>. Repite lo mismo con el resto del disco. Primero crea la partición para / y luego crea una partición para la SWAP. Tiene que quedar así:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/image.png" class="kg-image" alt="" loading="lazy" width="1110" height="754" srcset="https://voidnull.es/content/images/size/w600/2026/02/image.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/image.png 1000w, https://voidnull.es/content/images/2026/02/image.png 1110w" sizes="(min-width: 720px) 720px"></figure><p>En la primera partición, hacemos clic derecho y seleccionamos la opción <strong>Manage Flags</strong> y del listado seleccionamos <code>boot</code> y <code>esp</code>.</p><p>Finalmente aplicamos los cambios, en <strong>Edit - Apply All Operations</strong>. Una vez finalice el asistente, cerramos GParted y se actualizará el instalador con las nuevas particiones:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/image-1.png" class="kg-image" alt="" loading="lazy" width="1591" height="887" srcset="https://voidnull.es/content/images/size/w600/2026/02/image-1.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/image-1.png 1000w, https://voidnull.es/content/images/2026/02/image-1.png 1591w" sizes="(min-width: 720px) 720px"></figure><p>Ahora tenemos que hacer clic sobre la primera partición y seleccionar que el punto de montaje sea a<code>/boot/efi</code> y formateamos con <code>fat32</code>. La segunda partición que sea <code>/</code> y <code>ext4</code>. Marcaremos también la opción de usar y formatear.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/image-2.png" class="kg-image" alt="" loading="lazy" width="1593" height="894" srcset="https://voidnull.es/content/images/size/w600/2026/02/image-2.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/image-2.png 1000w, https://voidnull.es/content/images/2026/02/image-2.png 1593w" sizes="(min-width: 720px) 720px"></figure><p>Finalmente hacemos clic sobre el botón <strong>Erase and Install</strong>.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-38.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-38.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-38.png 1000w, https://voidnull.es/content/images/2026/02/imatge-38.png 1596w" sizes="(min-width: 720px) 720px"></figure><p>A continuación, deberás <strong>configurar tu cuenta de usuario</strong>. En esta pantalla se te pedirá que completes los siguientes campos:</p><ul><li><strong>Tu nombre completo</strong>: se usará para identificar al usuario en el sistema.</li><li><strong>Nombre de usuario</strong>: el nombre que utilizarás para iniciar sesión.</li></ul><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-39.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-39.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-39.png 1000w, https://voidnull.es/content/images/2026/02/imatge-39.png 1596w" sizes="(min-width: 720px) 720px"></figure><ul><li><strong>Contraseña</strong> y <strong>confirmación de la contraseña</strong>: asegúrate de elegir una contraseña segura y fácil de recordar.</li></ul><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-40.png" class="kg-image" alt="" loading="lazy" width="1596" height="895" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-40.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-40.png 1000w, https://voidnull.es/content/images/2026/02/imatge-40.png 1596w" sizes="(min-width: 720px) 720px"></figure><p>Ahora solo queda esperar a que se complete la instalación y aparezca el botón para reiniciar con el nuevo sistema. Este proceso puede tardar unos minutos, dependiendo de la velocidad de tu conexión a internet. Aprovecha el momento para prepararte un café, un batido de chocolate o, por qué no, un whisky (pero sin hielo, por favor).</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/image-3.png" class="kg-image" alt="" loading="lazy" width="1593" height="894" srcset="https://voidnull.es/content/images/size/w600/2026/02/image-3.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/image-3.png 1000w, https://voidnull.es/content/images/2026/02/image-3.png 1593w" sizes="(min-width: 720px) 720px"></figure><p>Una vez reiniciemos el ordenador, se iniciará Pop!_OS 24.04 y veremos la pantalla de inicio de sesión. Solo tendremos que introducir la contraseña que configuramos durante la instalación para acceder al sistema.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/image-5.png" class="kg-image" alt="" loading="lazy" width="1593" height="894" srcset="https://voidnull.es/content/images/size/w600/2026/02/image-5.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/image-5.png 1000w, https://voidnull.es/content/images/2026/02/image-5.png 1593w" sizes="(min-width: 720px) 720px"></figure><p>Haz clic sobre tu nombre de usuario y escribe la contraseña para iniciar sesión.</p><p>Al iniciar Pop!_OS 24.04 por primera vez, aparecerá un mensaje de bienvenida junto con algunos consejos útiles para terminar de configurar el sistema a tu gusto.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/image-6.png" class="kg-image" alt="" loading="lazy" width="1593" height="894" srcset="https://voidnull.es/content/images/size/w600/2026/02/image-6.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/image-6.png 1000w, https://voidnull.es/content/images/2026/02/image-6.png 1593w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/image-7.png" class="kg-image" alt="" loading="lazy" width="1593" height="894" srcset="https://voidnull.es/content/images/size/w600/2026/02/image-7.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/image-7.png 1000w, https://voidnull.es/content/images/2026/02/image-7.png 1593w" sizes="(min-width: 720px) 720px"></figure><p>Ya tienes Pop!_OS 24.04 instalado en tu ordenador. Desde aquí puedes empezar a explorar el sistema, instalar programas, personalizar el escritorio o simplemente navegar por internet. Si nunca has usado GNU/Linux antes, es normal que tengas dudas al principio, pero Pop!_OS 24.04 es una excelente forma de comenzar, y la comunidad está llena de recursos para ayudarte.</p><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Instalación de Mumble en Debian 13 ]]></title>
            <description><![CDATA[ Aprende a instalar y configurar Mumble en tu servidor para disponer de un sistema de comunicación por voz rápido, seguro y de baja latencia. ]]></description>
            <link>https://voidnull.es/instalacion-de-mumble-en-debian-13/</link>
            <guid isPermaLink="false">6991209a60960400016a16db</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Wed, 25 Mar 2026 17:30:35 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/03/mumble-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Montar tu propio sistema de comunicación por voz sigue siendo, a día de hoy, una de las formas más sencillas de ganar en privacidad, control y eficiencia. En este tutorial vamos a ver cómo instalar <strong>Mumble Server</strong> en un sistema Debian, una solución de voz sobre IP ligera, segura y completamente libre que puede sustituir sin problemas a servicios centralizados como Discord, Skype o similares.</p><p>Mumble nació con el objetivo de ofrecer comunicaciones de baja latencia y alta calidad incluso en conexiones modestas, algo que lo hizo especialmente popular en el mundo de los videojuegos. Sin embargo, sus ventajas van mucho más allá: consume pocos recursos, funciona perfectamente en hardware antiguo o en entornos virtualizados, y permite desplegar tu propio servidor sin depender de terceros ni ceder tus datos a plataformas privativas.</p><p>A lo largo de este tutorial realizaremos la instalación paso a paso, configuraremos el servicio y dejaremos listo el servidor para que puedas conectarte desde cualquier cliente Mumble, ya sea en GNU/Linux, escritorio o móvil, con un consumo mínimo de recursos y sin complicaciones innecesarias.</p><h2 id="instalaci%C3%B3n-de-mumble">Instalación de Mumble</h2><p>Para instalar el servidor Mumble, tendremos que ejecutar el siguiente comando con la opción <code>--no-install-recommends</code>:</p><pre><code class="language-bash">apt-get install mumble-server --no-install-recommends</code></pre><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">⚠️</div><div class="kg-callout-text">Se recomienda instalar Mumble <b><strong style="white-space: pre-wrap;">sin paquetes recomendados</strong></b>, ya que estos añaden numerosas dependencias innecesarias (especialmente en servidores donde ya existe un stack web) e incluyen <b><strong style="white-space: pre-wrap;">Avahi</strong></b>.<br><br>Si Avahi se instala, <b><strong style="white-space: pre-wrap;">debe desactivarse en servidores expuestos a Internet</strong></b>, ya que utiliza mDNS para anunciar servicios en red, lo que puede exponer información del sistema y ampliar la superficie de ataque.</div></div><p>Una vez instalado, primero de todo modificamos la configuración del servicio, para ello editaremos el fichero <code>/etc/mumble/mumble-server.ini</code>. </p><pre><code class="language-bash">welcometext="Bienvenidos al Mumble!"
serverpassword=Contrasena123
users=50
bandwidth=72000
registerName=Servidor de Voz Voidnull
logfile=/var/log/mumble-server/mumble.log</code></pre><p>Guardamos el fichero y procedemos a reiniciar el servicio:</p><pre><code class="language-bash">systemctl restart mumble-server.service </code></pre><p>Una vez hemos configurado el servidor, recuerda de abrir el puerto <code>64738 UDP/TCP</code> para poder acceder correctamente desde los clientes.</p><p>Con esta configuración base, ya podremos conectarnos al servidor desde el cliente para GNU/Linux mumble o bien desde <a href="https://f-droid.org/ca/packages/se.lublin.mumla/?ref=voidnull.es">Mumla</a> si usamos Android.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-10.png" class="kg-image" alt="" loading="lazy" width="734" height="467" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-10.png 600w, https://voidnull.es/content/images/2026/03/imatge-10.png 734w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Integrar UGREEN NAS en Home Assistant ]]></title>
            <description><![CDATA[ Cómo integrar un UGREEN NAS en Home Assistant para monitorizar su estado y recursos desde tu panel domótico. ]]></description>
            <link>https://voidnull.es/integrar-ugreen-nas-en-home-assistant/</link>
            <guid isPermaLink="false">68daff37709ee80001d5272c</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Wed, 25 Mar 2026 09:10:29 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2025/10/ugreen-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Los sistemas NAS se han convertido en una pieza clave dentro de muchos <em>homelab</em> y entornos domésticos, ya que permiten centralizar almacenamiento, copias de seguridad y servicios en la red local. Integrarlos con un sistema de domótica puede aportar todavía más valor, permitiendo supervisar su estado y reaccionar ante distintos eventos.</p><p>En este artículo veremos cómo integrar un <strong>UGREEN NAS</strong> en <strong>Home Assistant</strong>, de forma que puedas monitorizar desde tu panel de control aspectos como el estado del dispositivo, el uso del almacenamiento o la conectividad. De este modo, tu NAS pasa a formar parte de tu ecosistema domótico y podrás automatizar alertas o acciones en función de su estado.</p><h2 id="instalaci%C3%B3n-de-la-integraci%C3%B3n">Instalación de la integración</h2><p>Accedemos a Hacs y en el buscador buscamos "ugreen":</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-2.png" class="kg-image" alt="" loading="lazy" width="1355" height="327" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-2.png 600w, https://voidnull.es/content/images/size/w1000/2026/03/imatge-2.png 1000w, https://voidnull.es/content/images/2026/03/imatge-2.png 1355w" sizes="(min-width: 720px) 720px"></figure><p>Hacemos clic sobre la integración y le damos a instalar.</p><p>Tras la instalación, nos parecerá una notificación para reiniciar Home Assistant, hacemos clic para iniciar Home Assistant y esperamos a que inicie de nuevo.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-1.png" class="kg-image" alt="" loading="lazy" width="1022" height="578" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-1.png 600w, https://voidnull.es/content/images/size/w1000/2026/03/imatge-1.png 1000w, https://voidnull.es/content/images/2026/03/imatge-1.png 1022w" sizes="(min-width: 720px) 720px"></figure><p>Tras iniciar de nuevo Home Assistant, vamos a <strong>Configuración - Dispositivos y Servicios</strong> y luego hacemos clic <strong>Añadir Integración</strong>. </p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-3.png" class="kg-image" alt="" loading="lazy" width="763" height="327" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-3.png 600w, https://voidnull.es/content/images/2026/03/imatge-3.png 763w" sizes="(min-width: 720px) 720px"></figure><p>Hacemos clic sobre la integración para iniciar la configuración:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-4.png" class="kg-image" alt="" loading="lazy" width="763" height="702" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-4.png 600w, https://voidnull.es/content/images/2026/03/imatge-4.png 763w" sizes="(min-width: 720px) 720px"></figure><ul><li><strong>IP address or hostname: </strong>La IP o nombre del NAS en tu red (por ejemplo <code>192.168.1.50</code> o <code>nas.local</code>).</li><li><strong>Port: </strong>El puerto del panel web del NAS (por defecto es el puerto <code>9999</code>).</li><li><strong>Admin username: </strong>Tu nombre de usuario con el que accedes al NAS.</li><li><strong>Admin password: </strong>La contraseña del usuario anterior.</li><li><strong>Use HTTPS: </strong>Actívalo si accedes al NAS mediante <code>https://</code>.</li></ul><p>Tras configurar todos los datos, le damos al botón de <strong>Enviar</strong> y nos aparecerán los dispositivos para configurar las zonas en las que se encuentran:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-5.png" class="kg-image" alt="" loading="lazy" width="763" height="799" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-5.png 600w, https://voidnull.es/content/images/2026/03/imatge-5.png 763w" sizes="(min-width: 720px) 720px"></figure><h2 id="a%C3%B1adir-dasboard-completo-para-ugreen-nas">Añadir Dasboard completo para UGREEN NAS</h2><p>El autor de la integración también ha creado un dashboard completo para visualizar de forma clara todos los datos del NAS. A continuación podéis ver un ejemplo:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-6.png" class="kg-image" alt="" loading="lazy" width="1631" height="935" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-6.png 600w, https://voidnull.es/content/images/size/w1000/2026/03/imatge-6.png 1000w, https://voidnull.es/content/images/size/w1600/2026/03/imatge-6.png 1600w, https://voidnull.es/content/images/2026/03/imatge-6.png 1631w" sizes="(min-width: 720px) 720px"></figure><p>A continuación veremos cómo configurar este dashboard en Home Assistant. Mi recomendación es crear un dashboard nuevo o específico para UGREEN.</p><p>Accede al dashboard y, en la parte superior derecha, haz clic en el icono del lápiz para entrar en modo edición. Después, pulsa en el menú de los tres puntos y selecciona <strong>Editor de configuración en bruto</strong>.</p><p>Si se trata de un dashboard nuevo, en el editor aparecerá una configuración similar a la siguiente:</p><pre><code class="language-yaml">views: 
  - type: sections 
    max_columns: 4 
    title: NAS 
    path: nas 
    sections: []</code></pre><p>Encima de todo esto, en la primera línea del archivo, debéis añadir el siguiente código:</p><pre><code class="language-yaml">button_card_templates:
  ugreen_nas_template:
    name: |
      [[[ 
        return entity &amp;&amp; entity.attributes &amp;&amp; entity.attributes.friendly_name
          ? entity.attributes.friendly_name.replace(/^UGREEN NAS /, "")
          : entity.entity_id;
      ]]]
    show_icon: false
    show_state: true
    show_name: true
    tap_action:
      action: more-info
    styles:
      card:
        - background-color: |
            [[[
              const type = entity.attributes.UGNAS_part_category || '';
              switch (type) {
                case 'Device':
                  return '#B8860B';
                case 'Hardware':
                  return '#4682B4';
                case 'Status':
                  return '#556B2F';
                case 'Network':
                  return '#008080';
                case 'Disks':
                  return '#2E8B57';
                case 'Pools':
                  return '#483D8B';
                case 'Volumes':
                  return '#2F4F4F';
                case 'USB':
                  return '#468499';
                case 'UPS':
                  return '#468499';
                case 'Summary':
                  return '#5DADE2';
                case 'Cache':
                  return '#708090';
                default:
                  return '#8B0000';
              }
            ]]]
        - border-radius: 10px
        - min-height: 13vh
        - height: 13vh
        - padding: 0px
        - display: grid
        - grid-template-rows: auto 1fr auto
        - grid-template-columns: 1fr
        - position: relative
        - overflow: hidden
      name:
        - font-size: 0.8em
        - color: white
        - z-index: 2
        - justify-self: stretch
        - align-self: start
        - width: 100%
        - background-color: rgba(0, 0, 0, 0.2)
        - padding: 0.2em 0.8em
        - box-sizing: border-box
        - text-align: left
        - margin-top: 0px
      state:
        - display: grid
        - place-items: center
        - text-align: center
        - color: white
        - font-size: 1.2em
        - font-weight: bold
        - z-index: 2
        - white-space: normal
        - word-break: break-word
        - overflow-wrap: break-word
        - margin-top: '-1.75vh'
        - width: 100%
        - padding: 0 4px
        - height: 7vh
        - overflow: hidden
        - text-overflow: ellipsis
        - '-webkit-line-clamp': 2
        - '-webkit-box-orient': vertical
        - font-size: |
            [[[
              const len = entity.state.length;
              if (len &lt;= 6) return '2em';
              if (len &lt;= 10) return '1.5em';
              if (len &lt;= 20) return '1em';
              return '0.8em';
            ]]]
      custom_fields:
        icon_bg:
          - position: absolute
          - top: 10px
          - right: 0px
          - width: 6em
          - opacity: 0.15
          - z-index: 1
        footer:
          - background-color: rgba(0, 0, 0, 0.2)
          - color: white
          - font-size: 0.8em
          - display: grid
          - grid-template-columns: 1fr auto
          - align-items: center
          - padding: 0 0.8em
          - height: 1.5em
          - width: 100%
          - box-sizing: border-box
          - z-index: 2
          - position: absolute
          - bottom: 0
          - left: 0
    custom_fields:
      icon_bg: |
        [[[ 
          const stateObj = entity;
          const icon = stateObj &amp;&amp; stateObj.attributes &amp;&amp; stateObj.attributes.icon 
            ? stateObj.attributes.icon 
            : 'mdi:help-circle';
          return `
            &lt;ha-icon
              icon="${icon}"
              style="height: 100%; width: auto; color: white;"&gt;
            &lt;/ha-icon&gt;
          `;
        ]]]
      footer: |
        [[[ 
          if (entity &amp;&amp; entity.last_changed) {
            const date = new Date(entity.last_changed);
            return `
              &lt;div style="display: contents;"&gt;
                &lt;span style="justify-self: start; padding-top: 2px;"&gt;
                  ${entity.attributes.UGNAS_part_category || ''}
                &lt;/span&gt;
                &lt;span style="justify-self: end; padding-top: 2px;"&gt;
                  ${date.toLocaleString('de-DE', { 
                    day: '2-digit', month: '2-digit',
                    hour: '2-digit', minute: '2-digit'
                  })}
                &lt;/span&gt;
              &lt;/div&gt;
            `;
          } else {
            return `
              &lt;div style="display: contents;"&gt;
                &lt;span style="justify-self: start; padding-top: 2px;"&gt;&lt;/span&gt;
                &lt;ha-icon icon="mdi:arrow-right" style="justify-self: end; width:1em; height:1em;"&gt;&lt;/ha-icon&gt;
              &lt;/div&gt;
            `;
          }
        ]]]</code></pre><p>El final del documento debe quedar así:</p><pre><code class="language-yaml">          } else {
            return `
              &lt;div style="display: contents;"&gt;
                &lt;span style="justify-self: start; padding-top: 2px;"&gt;&lt;/span&gt;
                &lt;ha-icon icon="mdi:arrow-right" style="justify-self: end; width:1em; height:1em;"&gt;&lt;/ha-icon&gt;
              &lt;/div&gt;
            `;
          }
        ]]]
views: 
  - type: sections 
    max_columns: 4 
    title: NAS 
    path: nas 
    sections: []</code></pre><p>Ahora guarda los cambios y abre tu editor favorito de Home Assistant para editar el archivo <code>configuration.yaml</code>.</p><p>Si todavía no utilizas ningún editor, en este artículo hablamos de varias opciones que puedes usar para hacerlo fácilmente.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/instala-un-editor-de-texto-para-modificar-la-configuracion-de-tu-home-assistant/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Instala un editor de texto para modificar la configuración de tu Home Assistant</div><div class="kg-bookmark-description">Home Assistant es una de las plataformas más populares para gestionar dispositivos inteligentes, y conocer los diferentes editores de texto disponibles para modificar configuraciones y scripts es fundamental para personalizar y optimizar la experiencia.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-287.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/homeassistant-1-6.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><p>Dentro del fichero de configuración de Home Assistant debemos añadir lo siguiente:</p><pre><code class="language-yaml">input_text:
  filter_text:
    name: Filter text
    initial: ""</code></pre><p>Guardamos los cambios y reiniciamos Home Assistant para que la nueva configuración se aplique correctamente.</p><p>Una vez iniciado de nuevo, volvemos al dashboard que hemos creado antes. Pulsamos otra vez el icono del lápiz para entrar en modo edición y, a continuación, hacemos clic en el segundo lápiz para editar directamente el dashboard.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-8.png" class="kg-image" alt="" loading="lazy" width="863" height="286" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-8.png 600w, https://voidnull.es/content/images/2026/03/imatge-8.png 863w" sizes="(min-width: 720px) 720px"></figure><p>En la ventana que se abra, haz clic en los tres puntos de la esquina superior derecha y selecciona la opción <strong>Editar en YAML</strong>.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/03/imatge-9.png" class="kg-image" alt="" loading="lazy" width="863" height="286" srcset="https://voidnull.es/content/images/size/w600/2026/03/imatge-9.png 600w, https://voidnull.es/content/images/2026/03/imatge-9.png 863w" sizes="(min-width: 720px) 720px"></figure><p>Elimina el contenido que aparece actualmente en este apartado y pega en su lugar el siguiente código. Asegúrate de reemplazarlo completamente para evitar errores en la configuración.</p><pre><code class="language-yaml">title: UGreen NAS
path: ugreen-nas
type: sections
max_columns: 3
header:
  card:
    type: markdown
    text_only: true
    content: " "
cards: []
sections:
  - type: grid
    cards:
      - type: heading
        heading: Overview
        heading_style: title
        badges:
          - type: entity
            entity: sensor.ugreen_nas_nas_model
          - type: entity
            entity: sensor.ugreen_nas_nas_ugos_version
        card_mod:
          style: |
            ha-card {
              background: transparent;
            }
            ha-card .content.title p,
            ha-card .content.subtitle p {
              margin: 0;
              font-size: 4vh;
              color: white;
            }
      - type: horizontal-stack
        cards:
          - type: custom:mini-graph-card
            hours_to_show: 24
            points_per_hour: 10
            animate: true
            hour24: true
            height: 150
            entities:
              - sensor.ugreen_nas_cpu_usage
            icon: mdi:chip
            decimals: 0
            state_adaptive_color: true
            show_state: true
            name: CPU Load
            line_color: "#00ff26"
            line_width: 7
            color_thresholds:
              - value: 20
                color: "#00ff26"
              - value: 50
                color: "#ddff00"
              - value: 60
                color: "#ff8c00"
              - value: 80
                color: "#ff5900"
              - value: 90
                color: "#ff0000"
            show:
              extrema: true
              name_adaptive_color: true
              icon_adaptive_color: true
            card_mod:
              style: |
                ha-card { 
                  background: transparent;
                }  
          - type: custom:mini-graph-card
            hours_to_show: 24
            points_per_hour: 10
            animate: true
            hour24: true
            height: 150
            entities:
              - sensor.ugreen_nas_cpu_temperature
            state_adaptive_color: true
            show_state: true
            name: CPU Temp
            line_color: "#00ff26"
            line_width: 7
            color_thresholds:
              - value: 20
                color: "#00ff26"
              - value: 50
                color: "#ddff00"
              - value: 60
                color: "#ff8c00"
              - value: 80
                color: "#ff5900"
              - value: 90
                color: "#ff0000"
            show:
              extrema: true
              name_adaptive_color: true
              icon_adaptive_color: true
            card_mod:
              style: |
                ha-card { 
                  background: transparent;
                }  
          - name: RAM Load
            type: custom:mini-graph-card
            hours_to_show: 24
            points_per_hour: 10
            animate: true
            hour24: true
            height: 150
            entities:
              - sensor.ugreen_nas_ram_usage
            decimals: 0
            icon: mdi:memory
            state_adaptive_color: true
            show_state: true
            line_color: "#00ff26"
            line_width: 7
            color_thresholds:
              - value: 20
                color: "#00ff26"
              - value: 50
                color: "#ddff00"
              - value: 60
                color: "#ff8c00"
              - value: 80
                color: "#ff5900"
              - value: 90
                color: "#ff0000"
            show:
              extrema: true
              name_adaptive_color: true
              icon_adaptive_color: true
            card_mod:
              style: |
                ha-card { 
                  background: transparent;
                }  
      - type: picture-elements
        card_mod:
          style: |
            ha-card {
              margin-top: 20px;
              border: 0;
              background: transparent;
            }
        elements:
          - type: state-label
            style:
              left: 50%
              top: 80%
              color: white
            entity: sensor.ugreen_nas_system_message
          - type: state-label
            style:
              left: 50%
              top: 84%
              color: white
            entity: sensor.ugreen_nas_temperature_message
        image: /local/images/ugreen_dxp.png
        grid_options:
          columns: full
  - type: grid
    column_span: 2
    cards:
      - type: heading
        heading: Details
        heading_style: title
        grid_options:
          columns: 18
          rows: 1
        badges:
          - type: entity
            show_state: true
            show_icon: true
            entity: sensor.ugreen_nas_cpu_model
          - type: entity
            entity: sensor.ugreen_nas_cpu_cores
          - type: entity
            entity: sensor.ugreen_nas_cpu_threads
          - type: entity
            entity: sensor.ugreen_nas_cpu_speed
          - type: entity
            entity: sensor.ugreen_nas_ram_total_size
        card_mod:
          style: |
            ha-card {
              background: transparent;
            }
            ha-card .content.title p,
            ha-card .content.subtitle p {
              margin: 0;
              font-size: 4vh;
              color: white;
            }
      - type: custom:button-card
        entity: none
        show_icon: false
        show_name: false
        styles:
          card:
            - background: transparent
            - box-shadow: none
            - border: none
            - padding: 0
            - margin: 0
          grid:
            - grid-template-areas: "\"left right\""
            - grid-template-columns: 1fr 3vh
            - grid-template-rows: 5vh
        custom_fields:
          left:
            card:
              type: entities
              entities:
                - entity: input_text.filter_text
                  icon: mdi:filter-variant
              card_mod:
                style: |
                  ha-card {
                    background: transparent;
                    border-style: none;
                    max-height: 5vh !important;
                    overflow: hidden;
                  }
                  #states {
                    padding: 0;
                    margin: 0;
                  }
                  hui-text-entity-row {
                    display: flex;
                    align-items: center;
                    height: 3vh;
                  }
                  ha-icon {
                  }
                  paper-input, paper-input input {
                    color: white !important;
                    font-size: 2vh !important;
                  }
          right:
            card:
              type: custom:button-card
              entity: input_text.filter_text
              icon: mdi:close-circle
              tap_action:
                action: call-service
                service: input_text.set_value
                service_data:
                  entity_id: input_text.filter_text
                  value: ""
              show_state: false
              show_name: false
              styles:
                card:
                  - background: transparent
                  - box-shadow: none
                  - border: none
                  - padding: 0
                  - margin: 0
                  - width: 3vh
                  - height: 3vh
                  - border-radius: 50%
                icon:
                  - color: white
                  - width: 100%
                  - height: 100%
        grid_options:
          rows: 1
          columns: 6
      - type: custom:auto-entities
        show_empty: false
        card_param: cards
        card:
          type: grid
          columns: 4
          square: false
        grid_options:
          columns: full
        sort:
          method: attribute
          attribute: UGNAS_global_disk_number
        filter:
          include:
            - attributes:
                UGNAS_summary_entity_for: Disk
              options:
                type: custom:button-card
                entity: this.entity_id
                show_icon: true
                show_name: true
                show_state: true
                show_label: false
                tap_action:
                  action: more-info
                name: |
                  [[[ return entity.attributes.Slot; ]]]
                label: |
                  [[[ return 'just a dummy placeholder'; ]]]
                icon: |
                  [[[
                    const disktype = entity.attributes.Type;
                    if (disktype == "SSD") return 'mdi:mirror-rectangle';
                    if (disktype == "M.2") return 'mdi:chip';
                    return 'mdi:harddisk';
                  ]]]
                state_display: |
                  [[[
                    return entity.attributes.Size + ' • ' +
                    entity.attributes.Temperature;
                  ]]]
                styles:
                  card:
                    - background-color: |
                        [[[
                          /* remove comment below for colorizing entire card */
                          /* if (entity.state == 'Normal') return 'rgba(0, 128, 0, 0.25)'
                          else return 'rgba(178, 34, 34, 0.25)'; */
                          return 'transparent';
                        ]]]
                    - border-radius: 12px
                    - padding: 8px
                    - height: 90px
                  icon:
                    - color: |
                        [[[
                          if (entity.state == 'Normal') return 'rgba(0, 128, 0)'
                          else return 'var(--error-color, #f44336)';
                        ]]]
                  name:
                    - font-weight: 600
                  state:
                    - font-size: 0.7em
                    - opacity: 0.9
                  label:
                    - opacity: 0.7
                    - font-size: 0.85em
            - attributes:
                UGNAS_summary_entity_for: Cache Disk
              options:
                type: custom:button-card
                entity: this.entity_id
                show_icon: true
                show_name: true
                show_state: true
                show_label: false
                tap_action:
                  action: more-info
                name: |
                  [[[ return entity.attributes.Slot; ]]]
                label: |
                  [[[ return 'just a dummy placeholder'; ]]]
                icon: |
                  [[[
                    const disktype = entity.attributes.Type;
                    if (disktype == "SSD") return 'mdi:mirror-rectangle';
                    if (disktype == "M.2") return 'mdi:chip';
                    return 'mdi:harddisk';
                  ]]]
                state_display: |
                  [[[
                    return entity.attributes.Size + ' • ' +
                    entity.attributes.Temperature;
                  ]]]
                styles:
                  card:
                    - background-color: |
                        [[[
                          /* remove comment below for colorizing entire card */
                          /* if (entity.state == 'Normal') return 'rgba(0, 128, 0, 0.25)'
                          else return 'rgba(178, 34, 34, 0.25)'; */
                          return 'transparent';
                        ]]]
                    - border-radius: 12px
                    - padding: 8px
                    - height: 90px
                  icon:
                    - color: |
                        [[[
                          if (entity.state == 'Normal') return 'rgba(0, 128, 0)'
                          else return 'var(--error-color, #f44336)';
                        ]]]
                  name:
                    - font-weight: 600
                  state:
                    - font-size: 0.7em
                    - opacity: 0.9
                  label:
                    - opacity: 0.7
                    - font-size: 0.85em
      - type: custom:auto-entities
        show_empty: true
        card_param: cards
        card:
          type: grid
          columns: 2
          square: false
        sort:
          method: attribute
          attribute: pool_index
        filter:
          include:
            - attributes:
                UGNAS_summary_entity_for: Pool
              options:
                type: custom:button-card
                entity: this.entity_id
                show_icon: true
                show_name: true
                show_state: true
                show_label: true
                tap_action:
                  action: more-info
                label: |
                  [[[
                    const a = entity?.attributes?.['Available Size'];
                    return '➠ ' + (a ?? '—');
                  ]]]
                icon: |
                  [[[ return 'mdi:database'; ]]]
                state_display: |
                  [[[
                    const used  = entity?.attributes?.['Used Size'] ?? '—';
                    const disks = entity?.attributes?.['Disk Count'] ?? '—';
                    return `${used} on ${disks} Disks`;
                  ]]]
                name: |
                  [[[
                    const n = entity?.attributes?.Name ?? entity?.attributes?.Label ?? entity?.name ?? 'POOL';
                    const lvl = entity?.attributes?.Level ?? entity?.attributes?.Raid ?? '';
                    const name = String(n).toUpperCase();
                    const level = String(lvl || '').toUpperCase();
                    return level ? `${name} • ${level}` : name;
                  ]]]
                size: 50px
                styles:
                  grid:
                    - grid-template-areas: "'i n' 'i s' 'i l'"
                    - grid-template-columns: 50px 1fr
                    - grid-template-rows: auto
                  card:
                    - height: 90px
                    - overflow: hidden
                    - border-radius: 12px
                    - background-color: transparent
                  img_cell:
                    - margin-left: 10px
                  name:
                    - font-weight: 600
                    - white-space: nowrap
                    - overflow: hidden
                    - text-overflow: ellipsis
                  state:
                    - font-size: 0.7em
                    - opacity: 0.95
                    - overflow: hidden
                    - text-overflow: ellipsis
                  label:
                    - opacity: 0.85
                    - margin-top: "-6px"
                    - font-size: 1em
                    - white-space: nowrap
                    - overflow: hidden
                    - text-overflow: ellipsis
                  icon:
                    - color: |
                        [[[ return entity.state === "Normal"
                            ? "rgba(0,128,0)"
                            : "var(--error-color,#f44336)";
                        ]]]
      - type: custom:auto-entities
        show_empty: true
        card_param: cards
        card:
          type: grid
          columns: 2
          square: false
        sort:
          method: attribute
          attribute: volume_index
        filter:
          include:
            - attributes:
                UGNAS_summary_entity_for: Volume
              options:
                type: custom:button-card
                entity: this.entity_id
                show_icon: false
                show_name: true
                show_state: true
                show_label: true
                tap_action:
                  action: more-info
                name: |
                  [[[
                    return entity.attributes.Label + " • " + entity.attributes.Filesystem;
                  ]]]
                label: |
                  [[[
                    return '➠ ' + entity?.attributes?.['Available Size'];
                  ]]]
                state_display: |
                  [[[
                    const attribs = entity?.attributes || {};
                    const pool = attribs.UGNAS_pool_index;
                    const vol = attribs.UGNAS_volume_index;
                    const base = `sensor.ugreen_nas_pool_${pool}_volume_${vol}`;
                    const used  = Number(hass.states[`${base}_used_size_raw` ]?.state);
                    const total = Number(hass.states[`${base}_total_size_raw`]?.state);
                    const percent = Math.round((used*100)/total);
                    return `&lt;small&gt;
                            ${attribs['Used Size']} of
                            ${attribs['Total Size']}
                            (${percent}%)
                            &lt;/small&gt;`;
                  ]]]
                styles:
                  card:
                    - height: 90px
                    - border-radius: 12px
                    - background-color: transparent
                    - box-shadow: none
                    - background: |
                        [[[
                          const attribs   = entity?.attributes || {};
                          const pool  = attribs.UGNAS_pool_index;
                          const vol  = attribs.UGNAS_volume_index;
                          const base = `sensor.ugreen_nas_pool_${pool}_volume_${vol}`;
                          const used  = Number(hass.states[`${base}_used_size_raw` ]?.state);
                          const total = Number(hass.states[`${base}_total_size_raw`]?.state);
                          const percent = Math.round((used*100)/total);

                          // Main color
                          let rgb = '0,128,0';                        // green
                          if (percent &gt;= 90)      rgb = '178,34,34';  // red
                          else if (percent &gt;= 75) rgb = '255,165,0';  // orange
                          else if (percent &gt;= 66) rgb = '204,204,0';  // yellow

                          // Only draw main color to percentage used, rest transparent
                          return `linear-gradient(to right,
                                   rgba(${rgb},1) 0%,
                                   rgba(${rgb},1) ${percent}%,
                                   rgba(${rgb},0) ${percent}%,
                                   rgba(${rgb},0) 100%)`;
                        ]]]
                  name:
                    - font-size: 1em
                    - font-weight: 600
                    - white-space: nowrap
                    - overflow: hidden
                    - text-overflow: ellipsis
                  state:
                    - font-size: 0.9em
                    - opacity: 0.8
                    - white-space: nowrap
                    - overflow: hidden
                    - text-overflow: ellipsis
                  label:
                    - font-size: 1em
                    - font-weight: 600
                    - white-space: nowrap
                    - overflow: hidden
                    - text-overflow: ellipsis
      - type: custom:button-card
        entity: none
        card_mod:
          style: |
            ha-card {
              width: 100% !important;
              background: transparent;
              overflow: hidden;
              padding: 0px !important;
              border: 0;
            }
        grid:
          - grid-template-areas: ugreen-entities
        grid_options:
          columns: 24
        styles:
          custom_fields:
            ugreen-entities:
              - height: 55vh
              - max-height: 55vh
              - overflow-y: auto
              - margin: 0
              - background-color: transparent
        custom_fields:
          ugreen-entities:
            card:
              type: custom:auto-entities
              card:
                type: grid
                columns: 5
                square: false
              card_param: cards
              filter:
                include: |
                  [[[
                    const search = states['input_text.filter_text'].state.toLowerCase();
                    return Object.values(states)
                      .filter(e =&gt; e.entity_id.startsWith('sensor.ugreen_nas'))
                      .filter(e =&gt; search === '' || (e.attributes.friendly_name || '').toLowerCase().includes(search))
                      .filter(e =&gt; !e.entity_id.endsWith('_raw'))
                      .map(e =&gt; ({
                        entity: e.entity_id,
                        type: 'custom:button-card',
                        template: 'ugreen_nas_template'
                      }));
                  ]]]
              sort:
                method: attribute
                attribute: UGNAS_part_category
              grid_options:
                columns: 24
                rows: auto</code></pre><p>Pulsa <strong>Guardar</strong> y listo. El panel quedará creado y ya podrás visualizar toda la información del NAS directamente desde el dashboard.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">🚨</div><div class="kg-callout-text">Ten en cuenta que es posible que el código de este panel se actualice con el tiempo. Por este motivo, es recomendable revisar siempre la documentación oficial de la integración, <a href="https://github.com/Tom-Bom-badil/home-assistant_ugreen-nas/wiki/Example-Dashboard-Page?ref=voidnull.es"><b><strong style="white-space: pre-wrap;">donde se mantiene la versión más reciente del código del dashboard</strong></b></a>. De este modo podrás asegurarte de utilizar la configuración actualizada y aprovechar posibles mejoras o correcciones.</div></div><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Instalación de CloudPanel en Debian 13 ]]></title>
            <description><![CDATA[ CloudPanel es un panel de control moderno diseñado para simplificar la administración de servidores en la nube, especialmente optimizado para aplicaciones PHP, Node.js y Python. ]]></description>
            <link>https://voidnull.es/instalacion-de-cloudpanel-en-debian-13/</link>
            <guid isPermaLink="false">69985bcdbec19c00010b7f2d</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Mon, 23 Mar 2026 09:10:26 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2024/12/cloudpanel-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>CloudPanel es un panel de control moderno diseñado para simplificar la administración de servidores en la nube, especialmente optimizado para aplicaciones PHP, Node.js y Python.</p><p>Su diseño intuitivo, combinado con herramientas poderosas y un enfoque en el rendimiento, lo convierten en una excelente opción tanto para desarrolladores como para administradores de sistemas. </p><p>En este tutorial, aprenderás a instalar CloudPanel en Debian 13, paso a paso, asegurando una configuración eficiente y segura.</p><h2 id="caracter%C3%ADsticas-principales">Características principales</h2><ul><li><strong>Compatibilidad con múltiples tecnologías</strong>: CloudPanel soporta aplicaciones desarrolladas en PHP, Node.js y Python, lo que lo hace ideal para entornos de desarrollo y producción variados.</li><li><strong>Interfaz de usuario moderna e intuitiva</strong>: Ofrece una interfaz gráfica fácil de usar, lo que reduce la necesidad de comandos de terminal para la administración diaria.</li><li><strong>Gestión avanzada de dominios y certificados</strong>: Permite configurar múltiples dominios y subdominios con facilidad, además de integrarse con Let's Encrypt para la gestión de certificados SSL gratuitos.</li><li><strong>Soporte para bases de datos</strong>: Incluye herramientas para gestionar bases de datos MySQL y MariaDB, facilitando la creación, configuración y mantenimiento.</li><li><strong>Seguridad mejorada</strong>: CloudPanel viene con configuraciones predeterminadas seguras y herramientas como fail2ban y firewalls integrados, lo que reduce las vulnerabilidades comunes.</li><li><strong>Monitorización de recursos</strong>: Proporciona información detallada sobre el uso de CPU, memoria y disco, ayudando a optimizar el rendimiento del servidor.</li><li><strong>Fácil integración con servicios externos</strong>: Incluye opciones para conectarse con servicios como Redis, Elasticsearch y RabbitMQ, ampliando las capacidades del servidor.</li></ul><h2 id="instalaci%C3%B3n-de-cloudpanel">Instalación de CloudPanel</h2><p>Nos conectaremos al servidor por SSH y actualizaremos paquetes:</p><pre><code class="language-bash">apt update
apt upgrade</code></pre><p>Cuando finalice, ejecutaremos este comando según la base de datos que necesitemos:</p><h3 id="mysql-8x">MySQL 8.x</h3><pre><code class="language-bash">curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh; \
echo "a3ba69a8102345127b4ae0e28cfe89daca675cbc63cd39225133cdd2fa02ad36 install.sh" | \
sha256sum -c &amp;&amp; sudo bash install.sh</code></pre><h3 id="mariadb-114">MariaDB 11.4</h3><pre><code class="language-bash">curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh; \
echo "a3ba69a8102345127b4ae0e28cfe89daca675cbc63cd39225133cdd2fa02ad36 install.sh" | \
sha256sum -c &amp;&amp; sudo DB_ENGINE=MARIADB_11.4 bash install.sh</code></pre><h3 id="mariadb-1011">MariaDB 10.11</h3><pre><code class="language-bash">curl -sS https://installer.cloudpanel.io/ce/v2/install.sh -o install.sh; \
echo "a3ba69a8102345127b4ae0e28cfe89daca675cbc63cd39225133cdd2fa02ad36 install.sh" | \
sha256sum -c &amp;&amp; sudo DB_ENGINE=MARIADB_10.11 bash install.sh</code></pre><p>Cuando la instalación finalice, obtendremos el acceso de la siguiente forma:</p><pre><code class="language-bash">~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The installation of CloudPanel is complete!

CloudPanel can be accessed now: https://XXX.XXX.XXX.XXX:8443 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</code></pre><p>Desde el navegador, pondremos la IP del servidor con el puerto <code>8443</code> y accederemos a la creación del usuario admin:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2024/12/imatge-12.png" class="kg-image" alt="" loading="lazy" width="908" height="719" srcset="https://voidnull.es/content/images/size/w600/2024/12/imatge-12.png 600w, https://voidnull.es/content/images/2024/12/imatge-12.png 908w" sizes="(min-width: 720px) 720px"></figure><p>Rellenaremos todos los datos, y pulsaremos al botón <strong>Crear usuario</strong>. Finalmente iniciaremos sesión con el usuario que hemos creado:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2024/12/imatge-13.png" class="kg-image" alt="" loading="lazy" width="908" height="442" srcset="https://voidnull.es/content/images/size/w600/2024/12/imatge-13.png 600w, https://voidnull.es/content/images/2024/12/imatge-13.png 908w" sizes="(min-width: 720px) 720px"></figure><p>Y tendremos acceso al panel:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2024/12/imatge-14.png" class="kg-image" alt="" loading="lazy" width="1917" height="989" srcset="https://voidnull.es/content/images/size/w600/2024/12/imatge-14.png 600w, https://voidnull.es/content/images/size/w1000/2024/12/imatge-14.png 1000w, https://voidnull.es/content/images/size/w1600/2024/12/imatge-14.png 1600w, https://voidnull.es/content/images/2024/12/imatge-14.png 1917w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ ShiftSwift: gestiona tu horario laboral y tus turnos ]]></title>
            <description><![CDATA[ Calendario de turnos libre para organizar horarios laborales sin depender de servicios externos. ]]></description>
            <link>https://voidnull.es/shiftcal-gestiona-tu-horario-laboral-y-tus-turnos/</link>
            <guid isPermaLink="false">69a19b1cbec19c00010b8185</guid>
            <category><![CDATA[ F-Droid ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Fri, 20 Mar 2026 17:30:06 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/03/fdroid-2.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Durante años, <strong>Android se ha presentado como una plataforma abierta</strong>, donde los usuarios podían <strong>instalar</strong>, <strong>estudiar</strong> y <strong>compartir</strong> software libremente, sin intermediarios obligatorios. Sin embargo, <strong>los cambios anunciados por Google amenazan con transformar ese modelo en uno cada vez más cerrado</strong>, en el que desarrollar, distribuir o incluso ejecutar aplicaciones podría quedar condicionado a la aprobación previa de la propia compañía.</p><p>Este giro <strong>no solo afecta a desarrolladores</strong>, sino <strong>también a personas usuarias</strong>, <strong>comunidades</strong> y <strong>proyectos de software libre</strong>, que ven peligrar la posibilidad de mantener un ecosistema independiente, auditable y basado en estándares abiertos. La pérdida de control sobre nuestros propios dispositivos supone, en la práctica, renunciar a una parte de nuestra <strong>soberanía tecnológica</strong>.</p><p>Por ese motivo, inicio esta serie de artículos para dar visibilidad a aplicaciones libres disponibles en <a href="https://f-droid.org/es/?ref=voidnull.es">F-Droid</a>, demostrar que existen alternativas reales al modelo centralizado de Google Play y contribuir a la concienciación sobre la importancia de <strong>mantener Android como una plataforma verdaderamente abierta</strong>.</p><div class="kg-card kg-header-card kg-v2 kg-width-regular " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="puedes-encontrar-ms-informacin-sobre-la-campaa" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Puedes encontrar más información sobre la campaña</span></h2>
                    <p id="mantnandroidabiertokeepandroidopen" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">#ManténAndroidAbierto</span><br><span style="white-space: pre-wrap;">#KeepAndroidOpen</span></p>
                    <a href="https://keepandroidopen.org/es/?ref=voidnull.es" class="kg-header-card-button " style="background-color: #8AB000;color: #FFFFFF;" data-button-color="#8AB000" data-button-text-color="#FFFFFF">Leer manifiesto</a>
                </div>
            </div>
        </div><h2 id="aplicaci%C3%B3n-de-la-semana-shiftswift">Aplicación de la semana: ShiftSwift</h2><p><strong>ShiftSwift</strong>, (antiguamente ShiftCal) es una aplicación de calendario pensada para personas que trabajan a turnos, permitiendo crear y visualizar patrones de trabajo de forma sencilla y totalmente local. </p><p>Su objetivo es facilitar la planificación de horarios complejos y adaptar la organización personal a ciclos laborales repetitivos, ofreciendo una solución libre frente a herramientas cerradas de productividad.</p><h3 id="detalles-de-la-aplicaci%C3%B3n">Detalles de la aplicación</h3><ul><li>🔗 Web oficial: (No tiene)</li><li>📦 F-Droid: <a href="https://f-droid.org/packages/de.nulide.shiftcal/?ref=voidnull.es" rel="noopener">https://f-droid.org/packages/de.nulide.shiftcal/</a></li><li>🧑‍💻 Código fuente: <a href="https://gitlab.com/Nulide/ShiftCal?ref=voidnull.es">https://gitlab.com/Nulide/ShiftCal</a></li><li>📜 Licencia: GNU GPL v3</li><li>🌍 Idiomas: Multidioma (según sistema Android)</li></ul><h3 id="caracter%C3%ADsticas-principales">Características principales</h3><ul><li>Creación de turnos personalizados</li><li>Alarmas asociadas a los turnos</li><li>Activación automática de "No molestar" durante el trabajo</li><li>Colores personalizados para diferenciar horarios</li><li>Visualización directa en calendario</li><li>Diseño simple basado en Material Design</li><li>Integración con eventos del calendario del sistema</li><li>Pensado específicamente para trabajadores con horarios rotativos</li></ul><h2 id="mi-experiencia-con-shiftswift">Mi experiencia con ShiftSwift</h2><p>Encontrarme con esta APP en F-Droid fue una auténtica bendición. En el trabajo, como a muchos os pasará, se usa un software privativo para la gestión de horarios y fichajes. Ese Software por suerte se puede usar por web para fichar, pero para no tener que instalar en mi móvil la APP oficial para revisar los horarios, lo que hago es copiar de la web los horarios y así si tengo que consultarlos los tengo sin usar APPs privativas.</p><p>Es genial, puedes crear diferentes turnos con sus colores y crear el calendario del mes con los turnos que haces. Además se puede activar la opción de alarma que te avisa cuando empieza el turno (esto es cómo cuando tienes un descanso largo entre turno y turno). Otra cosa que me gusta, es que puedes sincronizar el calendario con por ejemplo NextCloud y añadir ese calendario. </p><div class="kg-card kg-header-card kg-v2 kg-width-wide " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="si-queremos-que-android-siga-siendo-una-plataforma-abierta-debemos-apoyar-y-usar-aplicaciones-libres-" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Si queremos que Android siga siendo una plataforma abierta, debemos apoyar y usar aplicaciones libres. </span></h2>
                    <p id="instala-desde-fdroid-comparte-estas-alternativas-y-contribuye-a-mantener-vivo-un-ecosistema-donde-el-usuario-tenga-el-control" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Instala desde F-Droid, comparte estas alternativas y contribuye a mantener vivo un ecosistema donde el usuario tenga el control.</span></p>
                    <a href="https://f-droid.org/es/F-Droid.apk?ref=voidnull.es" class="kg-header-card-button " style="background-color: #ffffff;color: #000000;" data-button-color="#ffffff" data-button-text-color="#000000">Descarga F-Droid</a>
                </div>
            </div>
        </div><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ xz: comprime a saco sin consumir recursos ]]></title>
            <description><![CDATA[ Aprende a comprimir y descomprimir archivos eficientemente en GNU/Linux usando xz y su potente algoritmo LZMA2. ]]></description>
            <link>https://voidnull.es/xz-comprime-a-saco-sin-consumir-recursos/</link>
            <guid isPermaLink="false">69985ba5bec19c00010b7f1e</guid>
            <category><![CDATA[ Comandos ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Wed, 18 Mar 2026 17:30:32 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2022/01/cli.png" medium="image"/>
            <content:encoded><![CDATA[ <p>El comando <code>xz</code> es una de las utilidades más eficientes disponibles actualmente, ya que emplea el algoritmo <strong>LZMA2</strong>, conocido por ofrecer <strong>altas tasas de compresión</strong> manteniendo un consumo de recursos razonable.</p><p>Por este motivo, <code>xz</code> se ha convertido en el formato estándar en muchas distribuciones modernas (por ejemplo, los paquetes <code>.tar.xz</code> del kernel o de numerosas fuentes oficiales).</p><h2 id="%C2%BFpara-qu%C3%A9-se-usa-el-comando-xz">¿Para qué se usa el comando <code>xz</code>?</h2><p>El comando <code>xz</code> se utiliza para:</p><ul><li>Comprimir archivos con <strong>mayor eficiencia que gzip o bzip2</strong>.</li><li>Reducir significativamente el tamaño de backups o distribuciones de software.</li><li>Descomprimir archivos en formato <code>.xz</code>.</li><li>Trabajar junto con <code>tar</code> para generar archivos <code>.tar.xz</code>.</li><li>Ajustar el nivel de compresión según necesidades de CPU, memoria o velocidad.</li><li>Automatizar tareas de archivado en scripts de administración.</li></ul><h2 id="sintaxis-b%C3%A1sica">Sintaxis básica</h2><pre><code class="language-bash">xz [opciones] archivo</code></pre><p>Por defecto:</p><ul><li>Comprime el archivo.</li><li>Sustituye el original por el comprimido.</li><li>Genera <code>archivo.xz</code>.</li></ul><p>Para descomprimir:</p><pre><code class="language-bash">xz -d archivo.xz</code></pre><h2 id="ejemplos-pr%C3%A1cticos-del-comando-xz">Ejemplos prácticos del comando <code>xz</code></h2><p>A continuación se muestran algunos ejemplos prácticos de uso del comando, junto con una breve explicación de cada caso para entender mejor su funcionamiento.</p><h3 id="comprimir-un-archivo">Comprimir un archivo</h3><pre><code class="language-bash">xz backup.sql</code></pre><p>Resultado:</p><pre><code class="language-bash">backup.sql.xz</code></pre><p>El archivo original desaparece y queda reemplazado por la versión comprimida.</p><h3 id="mantener-el-archivo-original">Mantener el archivo original</h3><pre><code class="language-bash">xz -k backup.sql</code></pre><p>La opción <code>-k</code> (<em>keep</em>) conserva el archivo sin comprimir, útil cuando no queremos perder el original.</p><h3 id="descomprimir-un-archivo">Descomprimir un archivo</h3><pre><code class="language-bash">xz -d backup.sql.xz</code></pre><p>También puede usarse:</p><pre><code class="language-bash">unxz backup.sql.xz</code></pre><h3 id="mostrar-informaci%C3%B3n-del-proceso">Mostrar información del proceso</h3><pre><code class="language-bash">xz -v backup.sql</code></pre><p>Salida típica:</p><pre><code class="language-bash">backup.sql (1/1)
  100 %        32.4 MiB / 4.2 MiB = 7.710</code></pre><p>Permite ver el ratio de compresión obtenido.</p><h3 id="ajustar-el-nivel-de-compresi%C3%B3n">Ajustar el nivel de compresión</h3><pre><code class="language-bash">xz -9 backup.sql</code></pre><ul><li><code>-0</code> → más rápido, menos compresión</li><li><code>-9</code> → máxima compresión, más lento</li></ul><h3 id="usar-todos-los-n%C3%BAcleos-de-cpu">Usar todos los núcleos de CPU</h3><pre><code class="language-bash">xz -T0 backup.sql</code></pre><p><code>-T0</code> indica que use todos los hilos disponibles.</p><p>Muy útil en sistemas modernos para acelerar la compresión.</p><h3 id="comprimir-m%C3%BAltiples-archivos">Comprimir múltiples archivos</h3><pre><code class="language-bash">xz logs/*.log</code></pre><p>Cada archivo se comprimirá de forma independiente.</p><h3 id="enviar-salida-a-stdout-modo-pipeline">Enviar salida a stdout (modo pipeline)</h3><pre><code class="language-bash">xz -c backup.sql &gt; backup.sql.xz</code></pre><p>La opción <code>-c</code> escribe en salida estándar, ideal para scripts o tuberías.</p><h3 id="usar-xz-junto-con-tar">Usar <code>xz</code> junto con <code>tar</code></h3><p>Uno de los usos más comunes:</p><pre><code class="language-bash">tar -cJf backup_home.tar.xz /home/t3rr0rz0n3</code></pre><p>Donde:</p><ul><li><code>-c</code> → crear archivo</li><li><code>-J</code> → usar compresión xz</li><li><code>-f</code> → nombre del archivo</li></ul><p>Para extraer:</p><pre><code class="language-bash">tar -xJf backup_home.tar.xz</code></pre><h3 id="ver-informaci%C3%B3n-de-un-archivo-comprimido">Ver información de un archivo comprimido</h3><pre><code class="language-bash">xz -l backup_home.tar.xz</code></pre><p>Salida:</p><pre><code class="language-bash">Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
1      1        42.0 MiB   310.0 MiB     0.135  CRC64   backup_home.tar.xz</code></pre><p>Permite analizar el nivel real de compresión sin descomprimir.</p><h3 id="forzar-sobrescritura">Forzar sobrescritura</h3><pre><code class="language-bash">xz -f backup.sql</code></pre><p>Sobrescribe archivos existentes sin preguntar.</p><h2 id="conclusi%C3%B3n">Conclusión</h2><p>El comando <code>xz</code> es una herramienta clave en GNU/Linux cuando la prioridad es maximizar la compresión y reducir el espacio ocupado por archivos grandes. Aunque su velocidad de compresión es menor que otras alternativas, su eficiencia lo convierte en el estándar moderno para archivado y distribución de software.</p><p>Bien utilizado, permite ahorrar almacenamiento, optimizar transferencias y mantener infraestructuras más eficientes, especialmente en servidores y entornos profesionales.</p><hr><div class="kg-card kg-header-card kg-width-full kg-size-small kg-style-accent" data-kg-background-image="" style=""><h2 class="kg-header-card-header" id="buscas-otro-comando"><span style="white-space: pre-wrap;">¿Buscas otro comando?</span></h2><h3 class="kg-header-card-subheader" id="revisa-nuestro-diccionario-de-comandos-para-gnulinux"><span style="white-space: pre-wrap;">¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!</span></h3><a class="kg-header-card-button" href="https://voidnull.es/diccionario-comandos-gnu-linux"> Diccionario de comandos para GNU/Linux </a></div> ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Instalación de Zabbix Server 7.0 en RockyLinux 10 ]]></title>
            <description><![CDATA[ Zabbix es un software de monitoreo de infraestructura bajo licencia GPLv3, muy popular y con muchas funcionalidades desarrollado en PHP. ]]></description>
            <link>https://voidnull.es/instalacion-de-zabbix-server-7-0-en-rockylinux-10/</link>
            <guid isPermaLink="false">69985b62bec19c00010b7f04</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Wed, 18 Mar 2026 09:10:03 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2022/01/zabbix.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Zabbix es un software de monitoreo de infraestructura bajo licencia GPLv3, muy popular y con muchas funcionalidades desarrollado en PHP.</p><p>Se utiliza para monitorear redes, servidores, aplicaciones, servicios y recursos en la nube. También permite el monitoreo de dispositivos de almacenamiento, bases de datos, máquinas virtuales, telefonía, recursos de seguridad y mucho más.</p><p>Para los desarrolladores, Zabbix ofrece una API que brinda acceso a casi todas las funciones disponibles en la web. Admite una fácil integración bidireccional con cualquier software y permite utilizar la API para integrar las funciones de Zabbix a software de terceros.</p><h2 id="pasos-previos">Pasos previos</h2><p>En este tutorial vamos a instalar la última versión de Zabbix en Rocky Linux 10 y para poder seguir con este tutorial es necesario tener instalado un servidor LAMP en Rocky Linux 10.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/instalacion-de-servidor-web-lamp-en-rocky-linux-10/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Instalación de servidor web LAMP en Rocky Linux 10</div><div class="kg-bookmark-description">Un servidor LAMP es un grupo de Software Libre que suele instalarse conjuntamente para permitir que un servidor albergue sitios webs dinámicos y aplicaciones web.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-274.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/LAMP-18.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><p>Para PHP es necesario tener instaladas estas librerías:</p><pre><code class="language-bash">dnf install php8.3-mysql php8.3-mysqlnd php8.3-ldap php8.3-bcmath php8.3-mbstring php8.3-gd php8.3-pdo php8.3-xml libapache2-mod-php</code></pre><h2 id="creamos-la-base-de-datos-para-zabbix">Creamos la base de datos para Zabbix</h2><p>Lo primero crearemos la base de datos, para ello tenemos que crear un usuario una base de datos y otorgarle privilegios. Para ello seguiremos este tutorial:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/crear-base-de-datos-y-usuario-con-privilegios-en-mysql-mariadb/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Crear base de datos y usuario con privilegios en MySQL/MariaDB</div><div class="kg-bookmark-description">En el siguiente tutorial vamos ha explicar como crear una base de datos y un usuario para asignar permisos totales a esa base de datos. Acceder a MySQL/MariaDB Para gestionar bases de datos o usuarios, deberemos de acceder a la shell de MySQL/MariaDB. Existen programas como phpMyAdmin de</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/2022/08/favicon.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/2022/07/TUTORIAL-38.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><pre><code class="language-SQL">create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'admin@monit1';</code></pre><h2 id="a%C3%B1adimos-repositorio-e-instalamos-zabbix">Añadimos repositorio e instalamos Zabbix</h2><p>Para instalar Zabbix, tendremos que añadir el repositorio para instalar la versión 7.0 de Zabbix:</p><pre><code class="language-bash">rpm -Uvh https://repo.zabbix.com/zabbix/7.4/stable/rocky/10/x86_64/zabbix-get-7.4.7-release1.el10.x86_64.rpm</code></pre><p>Y procedemos a instalar los paquetes necesarios:</p><pre><code class="language-bash">dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
</code></pre><h2 id="configuraci%C3%B3n-de-zabbix">Configuración de Zabbix</h2><p>Para la configuración de Zabbix, lo siguiente será importar la base de datos, para ello:</p><pre><code class="language-bash">zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix</code></pre><p>A continuación editamos el fichero de configuración <code>/etc/zabbix/zabbix_server.conf</code> añadiendo lo siguiente:</p><pre><code class="language-bash">DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=admin@monit1</code></pre><p>Guardamos y continuamos configurando Apache.</p><p>Editamos el fichero <code>/etc/zabbix/apache.conf</code> y modificamos el <code>TimeZone</code> con nuestra hora de nuestra zona.</p><pre><code class="language-bash">php_value date.timezone Europe/Madrid</code></pre><p>Guardamos y reiniciamos los servicios.</p><pre><code class="language-bash">systemctl reload httpd
systemctl start zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent</code></pre><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">📢</div><div class="kg-callout-text">Recuerda que tienes que tener habilitado en tu Firewall los puertos 80 y 443.</div></div><h2 id="configuramos-zabbix-desde-la-interfaz-web">Configuramos Zabbix desde la interfaz web</h2><p>Ahora es el momento de acceder a nuestro Zabbix desde el navegador, para ello escribiremos <code>http://IP_DEL_SERVIDOR/zabbix</code> para acceder:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2023/06/imatge-1.png" class="kg-image" alt="" loading="lazy" width="868" height="551" srcset="https://voidnull.es/content/images/size/w600/2023/06/imatge-1.png 600w, https://voidnull.es/content/images/2023/06/imatge-1.png 868w" sizes="(min-width: 720px) 720px"></figure><p>Seleccionamos nuestro idioma y seguimos.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2023/01/imatge-3.png" class="kg-image" alt="" loading="lazy" width="866" height="549" srcset="https://voidnull.es/content/images/size/w600/2023/01/imatge-3.png 600w, https://voidnull.es/content/images/2023/01/imatge-3.png 866w" sizes="(min-width: 720px) 720px"></figure><p>Revisamos que está todo configurado correctamente y seguimos.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2023/01/imatge-4.png" class="kg-image" alt="" loading="lazy" width="864" height="550" srcset="https://voidnull.es/content/images/size/w600/2023/01/imatge-4.png 600w, https://voidnull.es/content/images/2023/01/imatge-4.png 864w" sizes="(min-width: 720px) 720px"></figure><p>Rellenamos los datos con nuestra base de datos y seguimos.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2022/11/imatge-6.png" class="kg-image" alt="" loading="lazy" width="881" height="555" srcset="https://voidnull.es/content/images/size/w600/2022/11/imatge-6.png 600w, https://voidnull.es/content/images/2022/11/imatge-6.png 881w" sizes="(min-width: 720px) 720px"></figure><p>Configuramos un nombre para nuestro Zabbix. Dejamos el puerto por defecto y continuamos.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2023/01/imatge-5.png" class="kg-image" alt="" loading="lazy" width="871" height="561" srcset="https://voidnull.es/content/images/size/w600/2023/01/imatge-5.png 600w, https://voidnull.es/content/images/2023/01/imatge-5.png 871w" sizes="(min-width: 720px) 720px"></figure><p>Seleccionamos la TimeZone y tema para Zabbix -a mi me gusta oscuro-.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2022/11/imatge-8.png" class="kg-image" alt="" loading="lazy" width="888" height="555" srcset="https://voidnull.es/content/images/size/w600/2022/11/imatge-8.png 600w, https://voidnull.es/content/images/2022/11/imatge-8.png 888w" sizes="(min-width: 720px) 720px"></figure><p>Revisamos y continuamos.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2022/11/imatge-9.png" class="kg-image" alt="" loading="lazy" width="888" height="559" srcset="https://voidnull.es/content/images/size/w600/2022/11/imatge-9.png 600w, https://voidnull.es/content/images/2022/11/imatge-9.png 888w" sizes="(min-width: 720px) 720px"></figure><p>Y listo, fichero de configuración creado y ya tenemos acceso a Zabbix. Iniciamos sesión con el usuario <code>Admin</code> y la contraseña <code>zabbix</code>.</p><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">🚨</div><div class="kg-callout-text">Es recomendable crear un usuario nuevo administrador y desactivar el usuario <code spellcheck="false" style="white-space: pre-wrap;">admin</code>.</div></div><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2023/06/imatge-2.png" class="kg-image" alt="" loading="lazy" width="1918" height="988" srcset="https://voidnull.es/content/images/size/w600/2023/06/imatge-2.png 600w, https://voidnull.es/content/images/size/w1000/2023/06/imatge-2.png 1000w, https://voidnull.es/content/images/size/w1600/2023/06/imatge-2.png 1600w, https://voidnull.es/content/images/2023/06/imatge-2.png 1918w" sizes="(min-width: 720px) 720px"></figure><p>Podemos cambiar la contraseña de acceso en Administration - Users y hacemos clic sobre el usuario <code>Admin</code>.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2022/11/imatge-11.png" class="kg-image" alt="" loading="lazy" width="850" height="397" srcset="https://voidnull.es/content/images/size/w600/2022/11/imatge-11.png 600w, https://voidnull.es/content/images/2022/11/imatge-11.png 850w" sizes="(min-width: 720px) 720px"></figure><p>Podemos hacer clic sobre el botón <strong>Change password</strong> y modificamos la contraseña de acceso, de todas formas, recomiendo crear un usuario nuevo con los mismos permisos.</p><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Instalación de Zigbee2MQTT en Proxmox ]]></title>
            <description><![CDATA[ Guía para instalar Zigbee2MQTT en Proxmox e integrar tu red Zigbee de forma autónoma, sin depender de hubs propietarios. ]]></description>
            <link>https://voidnull.es/instalacion-de-zigbee2mqtt-en-proxmox/</link>
            <guid isPermaLink="false">68f239363194f40001528253</guid>
            <category><![CDATA[ Tutoriales ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Mon, 16 Mar 2026 09:10:44 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/02/zigbee2mqtt-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>En un entorno de <strong>domótica basada en software libre</strong>, uno de los pilares fundamentales es disponer de una red Zigbee estable, flexible y, sobre todo, independiente de nubes externas. Aquí es donde entra en juego <strong>Zigbee2MQTT</strong>, una solución que nos permite integrar dispositivos Zigbee directamente con nuestro broker MQTT y gestionarlos desde plataformas como Home Assistant, manteniendo el control total de la infraestructura.</p><p>Si ya trabajas con <strong>Proxmox VE</strong> como base de tu homelab desplegar Zigbee2MQTT en un contenedor LXC o una máquina virtual es una opción lógica, eficiente y fácil de mantener.</p><p>En esta guía veremos cómo realizar la instalación paso a paso sobre Proxmox, preparando el entorno, conectando el coordinador Zigbee (USB o Ethernet), configurando MQTT y dejando el sistema listo para empezar a enlazar dispositivos sin depender de hubs propietarios.</p><h2 id="instalaci%C3%B3n-en-proxmox">Instalación en Proxmox</h2><p>En <strong>Proxmox</strong> tenemos muchas opciones para instalar aplicaciones, pero una de las más cómodas es utilizar los scripts de la comunidad llamados <a href="https://community-scripts.github.io/ProxmoxVE/?ref=voidnull.es"><strong>Proxmox VE Helper-Scripts</strong></a>.</p><p>Dentro del catálogo de aplicaciones disponibles, tanto para máquinas virtuales (<strong>MV</strong>) como para contenedores <strong>LXC</strong>, podemos instalar Zigbee2MQTT.</p><h3 id="instalaci%C3%B3n-de-zigbee2mqtt-con-el-script">Instalación de Zigbee2MQTT con el script</h3><p>La instalación de los scripts son muy sencillas, tan solo tenemos que ir a <strong>Datacenter</strong> y seleccionar el nombre del nodo de <strong>Proxmox</strong>. Allí nos vamos al apartado de <strong>Shell</strong>.</p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text">Si lo prefieres, puedes conectarte también a través de SSH al servidor de Proxmox y ejecutar el comando allí.</div></div><p>Y en la terminal ejecutamos:</p><pre><code class="language-bash">bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/zigbee2mqtt.sh)"</code></pre><p>Este script lanzará el asistente de instalación:</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2025/09/imatge-1.png" class="kg-image" alt="" loading="lazy" width="942" height="603" srcset="https://voidnull.es/content/images/size/w600/2025/09/imatge-1.png 600w, https://voidnull.es/content/images/2025/09/imatge-1.png 942w" sizes="(min-width: 720px) 720px"></figure><ol>
<li><strong>Default Settings</strong>: Al seleccionar esta opción la instalación se hará con la configuración por defecto.</li>
<li><strong>Default Settings (with verbose)</strong>: Con esta opción mostrará la configuración por defecto, pero te preguntará antes por si quieres cambiar algun parámetro.</li>
<li><strong>Advanced Settings</strong>: Para usuarios avanzados, deberás de configurar todos los parámetros a tu gusto.</li>
<li><strong>Use Config File</strong>: Usa un fichero de configuración propio con tus ajustes para el script/instalador.</li>
<li><strong>Diagnostic Settings</strong>: Elige si enviar o no datos anónimos de diagnóstico para ayudar a detectar errores.</li>
<li><strong>Exit</strong>: Salir del instalador.</li>
</ol>
<p>Para este tutorial seleccionaremos la primera opción, si más adelante necesitamos ampliar recursos o hacer algún cambio ya lo haremos.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2025/09/imatge-2.png" class="kg-image" alt="" loading="lazy" width="772" height="502" srcset="https://voidnull.es/content/images/size/w600/2025/09/imatge-2.png 600w, https://voidnull.es/content/images/2025/09/imatge-2.png 772w" sizes="(min-width: 720px) 720px"></figure><p>Lo primero será seleccionar la ubicación donde guardaremos la plantilla del contenedor LXC.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2025/09/imatge-3.png" class="kg-image" alt="" loading="lazy" width="772" height="502" srcset="https://voidnull.es/content/images/size/w600/2025/09/imatge-3.png 600w, https://voidnull.es/content/images/2025/09/imatge-3.png 772w" sizes="(min-width: 720px) 720px"></figure><p>Después, deberemos indicar la ubicación donde se almacenará el contenedor.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-41.png" class="kg-image" alt="" loading="lazy" width="893" height="503" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-41.png 600w, https://voidnull.es/content/images/2026/02/imatge-41.png 893w" sizes="(min-width: 720px) 720px"></figure><p>En un momento del proceso, tendremos instalada la  última versión de Zigbee2MQTT. Tendremos acceso al panel de Zigbee2MQTT a través del puerto <code>9442</code>.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-42.png" class="kg-image" alt="" loading="lazy" width="893" height="503" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-42.png 600w, https://voidnull.es/content/images/2026/02/imatge-42.png 893w" sizes="(min-width: 720px) 720px"></figure><div class="kg-card kg-callout-card kg-callout-card-red"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text">El acceso únicamente será posible cuando se configure un dongle de Zigbee en la misma configuración de Zigbee2MQTT.</div></div><h2 id="primer-contacto-zigbee2mqtt">Primer contacto: Zigbee2MQTT</h2><p>Lo primero que tendremos que hacer es acceder a través de SSH y reconfigurar la configuración de Zigbee2MQTT, ya que por defecto el servicio está parado.</p><p>La configuración se encuentra en <code>/opt/zigbee2mqtt/data/configuration.yml</code> y aquí se tiene que configurar el dispositivo Zigbee que hará de Coordinador.</p><p>Ya que recientemente hemos configurado un dongle Zigbee, os dejo el artículo donde se detalla un poco más de la configuración. Cuando tengamos la configuración en el fichero, podremos iniciarlo con:</p><pre><code class="language-bash">systemctl start zigbee2mqtt.service</code></pre><p>Tras iniciar el servicio, ya podremos acceder a través de la interfaz web en el puerto 9442.</p><figure class="kg-card kg-image-card"><img src="https://voidnull.es/content/images/2026/02/imatge-43.png" class="kg-image" alt="" loading="lazy" width="1657" height="984" srcset="https://voidnull.es/content/images/size/w600/2026/02/imatge-43.png 600w, https://voidnull.es/content/images/size/w1000/2026/02/imatge-43.png 1000w, https://voidnull.es/content/images/size/w1600/2026/02/imatge-43.png 1600w, https://voidnull.es/content/images/2026/02/imatge-43.png 1657w" sizes="(min-width: 720px) 720px"></figure><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Ping #19: Actualizaciones, novedades y ranking de distros ]]></title>
            <description><![CDATA[ Aquí encontrarás las distribuciones más recientes, paquetes actualizados y el ranking de las distros más descargadas. 🚀 ]]></description>
            <link>https://voidnull.es/ping-19-actualizaciones-novedades-y-ranking-de-distros/</link>
            <guid isPermaLink="false">69b3ec07bec19c00010b8a48</guid>
            <category><![CDATA[ Ping ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Sun, 15 Mar 2026 12:00:19 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2025/02/ping-1.png" medium="image"/>
            <content:encoded><![CDATA[ <p>¡Bienvenido a nuestro resumen quincenal de GNU/Linux! Aquí encontrarás las distribuciones más recientes, paquetes actualizados y el ranking de las distros más descargadas. 🚀</p><h2 id="%F0%9F%94%84-%C3%BAltimas-distribuciones-lanzadas">🔄 <strong>Últimas distribuciones lanzadas</strong></h2><p>En los últimos 15 días, han salido nuevas versiones de estas distribuciones:</p><ul>
<li>
<p><strong><a href="https://distrowatch.com/noid?ref=voidnull.es">Noid 20260313</a></strong>: Noid Linux es una distribución GNU/Linux minimalista basada en Void que utiliza Xfce como escritorio preferido. Incluye un kernel Linux con soporte a largo plazo, el instalador del sistema Calamares, el navegador Brave, soporte para paquetes Flatpak y una pantalla de bienvenida personalizada. El proyecto también mantiene su propio repositorio de paquetes XBPS de Void con software adicional.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/mariposa?ref=voidnull.es">Mariposa 3.1.1</a></strong>: Mariposa Rescue Disk es una imagen GNU/Linux en vivo basada en la rama «Stable» de Debian. Por defecto arranca en una interfaz de línea de comandos, aunque también dispone de un escritorio gráfico completo con Xfce. La imagen incluye una gran cantidad de herramientas para diagnóstico, rescate del sistema y copias de seguridad de datos, además de documentación y tutoriales para tareas de recuperación habituales.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/hardenedbsd?ref=voidnull.es">HardenedBSD 15-build-11</a></strong>: Fundado en 2014 por Oliver Pinter y Shawn Webb, HardenedBSD es un fork de FreeBSD enfocado en mejorar la seguridad. El proyecto implementa diversas tecnologías de mitigación de exploits y mejoras de seguridad sobre FreeBSD. Inicialmente se centró en la aleatorización del espacio de direcciones (ASLR) y actualmente continúa incorporando nuevas técnicas de mitigación de vulnerabilidades.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/solydxk?ref=voidnull.es">SolydXK 13-202603</a></strong>: SolydX y SolydK son distribuciones basadas en Debian que utilizan los escritorios Xfce y KDE respectivamente. SolydXK busca ser fácil de usar y ofrecer un entorno estable y seguro. Está orientada a pequeñas empresas, organizaciones sin ánimo de lucro y usuarios domésticos. El proyecto comenzó como una variante no oficial de Linux Mint Debian Edition con KDE, y más tarde adquirió identidad propia como SolydK. Posteriormente se añadió SolydX tras la desaparición de la variante Debian con Xfce de Linux Mint. También existe una rama rolling llamada «Enthusiast's Editions» basada en Debian Testing.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/kdeneon?ref=voidnull.es">KDE neon 20260312</a></strong>: KDE neon es una distribución GNU/Linux basada en Ubuntu que incluye la última versión del escritorio KDE Plasma y otras aplicaciones de la comunidad KDE. Además de la imagen instalable, el proyecto ofrece un repositorio en constante evolución con las versiones más recientes del software de KDE. Existen dos ediciones: «User», pensada para usuarios que desean probar las últimas novedades de KDE, y «Developer's», orientada a probar aplicaciones KDE en desarrollo.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/pearos?ref=voidnull.es">pearOS 26.03</a></strong>: pearOS es una distribución GNU/Linux de escritorio basada en Arch que ofrece un aspecto visual similar a macOS sobre el escritorio KDE Plasma. Entre sus características se incluyen un instalador personalizado llamado pearOS Installer, una aplicación de bienvenida propia y el gestor de archivos GNOME Files. Incluye diversas aplicaciones populares de escritorio, web y multimedia como Gwenview, Firefox, Elisa y el editor de texto Kate.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/endeavour?ref=voidnull.es">EndeavourOS 2026.03.06</a></strong>: EndeavourOS es una distribución GNU/Linux rolling-release basada en Arch Linux. El proyecto pretende ser el sucesor espiritual de Antergos, proporcionando una instalación sencilla y un entorno de escritorio preconfigurado sobre Arch. Ofrece instaladores tanto fuera de línea como en línea. El instalador fuera de línea, Calamares, utiliza KDE Plasma por defecto, mientras que el instalador en línea permite elegir entre múltiples escritorios y componentes adicionales.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/volumio?ref=voidnull.es">Volumio 4.103</a></strong>: Volumio (anteriormente RaspyFi) es una distribución GNU/Linux basada en Debian diseñada específicamente para la reproducción de música. Funciona en diversos dispositivos, especialmente en ordenadores pequeños como Raspberry Pi, pero también en PCs de bajo consumo, portátiles o thin clients. Integra Music Player Daemon y lo optimiza para reproducción de audio de alta fidelidad. Permite reproducir música desde dispositivos USB, almacenamiento en red o servicios en línea como Spotify, Last.fm y SoundCloud.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/voyager?ref=voidnull.es">Voyager 26.04-alpha7</a></strong>: Voyager Live es una distribución basada en Xubuntu que muestra el entorno de escritorio Xfce. Incluye herramientas como Avant Window Navigator (un dock de navegación), Conky (para mostrar información del sistema en el escritorio) y una colección de más de 300 fotografías y animaciones para fondos de pantalla. El proyecto también desarrolla otras ediciones, como «GE» con GNOME Shell, «GS» orientada a videojuegos y una variante basada en Debian estable.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/linuxhub?ref=voidnull.es">LinuxHub 2026.03.10</a></strong>: LinuxHub Prime es una distribución GNU/Linux basada en Arch que utiliza un gestor de ventanas Openbox personalizado como entorno de escritorio predeterminado. Su característica principal es un instalador que permite instalar con un solo clic diversos gestores de ventanas y escritorios populares como Awesome, bspwm, Budgie, Cinnamon, Deepin, GNOME, Hyprland, KDE Plasma, MATE, Qtile o Xfce. También incluye «Prime Builder», una herramienta para crear versiones personalizadas de la distribución.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/shanios?ref=voidnull.es">Shanios 2026.03.10</a></strong>: Shanios es una distribución GNU/Linux de escritorio inmutable basada en Arch Linux. Proporciona compilaciones optimizadas de los escritorios GNOME y KDE Plasma. Como otros sistemas inmutables, incluye rollback para recuperación rápida del sistema, actualizaciones atómicas mediante una herramienta propia llamada shani-deploy e integración con Flatpak. También utiliza una estrategia de despliegue blue-green con subvolúmenes Btrfs, una partición raíz de solo lectura para preservar la integridad del sistema y mejoras de seguridad mediante perfiles AppArmor, configuraciones de firewalld y cifrado completo del disco.</p>
</li>
<li>
<p><strong><a href="https://distrowatch.com/plop?ref=voidnull.es">Plop 26.1-test1</a></strong>: Plop Linux es una pequeña distribución que puede arrancar desde CD, DVD, memoria USB, disco duro USB o mediante red con PXE. Está diseñada para rescatar datos de sistemas dañados, realizar copias de seguridad y restauraciones de sistemas operativos, automatizar tareas y otras labores de mantenimiento.</p>
</li>
</ul>
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">🔗</div><div class="kg-callout-text">Si quieres conocer más detalles, puedes visitar <a href="https://distrowatch.com/?ref=voidnull.es" target="_new" rel="noopener">DistroWatch</a>.</div></div><h2 id="%F0%9F%93%A6-paquetes-actualizados-m%C3%A1s-relevantes">📦 <strong>Paquetes actualizados más relevantes</strong></h2><p>Estas son algunas actualizaciones destacadas en paquetes populares:</p><ul>
<li>
<p><strong><a href="https://wiki.gnome.org/Apps/Evolution?ref=voidnull.es">evolution 3.60.0</a></strong>: Evolution es una aplicación de gestión de información personal que proporciona correo electrónico, libreta de direcciones y calendario.</p>
</li>
<li>
<p><strong><a href="https://calibre-ebook.com/?ref=voidnull.es">calibre 9.5.0</a></strong>: Calibre es una aplicación para la gestión de bibliotecas de libros electrónicos.</p>
</li>
<li>
<p><strong><a href="https://vivaldi.com/?ref=voidnull.es">vivaldi 7.8.3925.81</a></strong>: Vivaldi es un navegador web gratuito, multiplataforma y privativo desarrollado por Vivaldi Technologies.</p>
</li>
<li>
<p><strong><a href="https://systemd.io/?ref=voidnull.es">systemd 259.4</a></strong>: systemd es un gestor de sistema y de servicios para GNU/Linux.</p>
</li>
<li>
<p><strong><a href="https://www.mesa3d.org/?ref=voidnull.es">mesa 26.0.2</a></strong>: Mesa es una biblioteca de gráficos 3D.</p>
</li>
<li>
<p><strong><a href="https://kernel.org/?ref=voidnull.es">linux 6.19.7</a></strong>: Linux es un núcleo tipo UNIX escrito desde cero por Linus Torvalds.</p>
</li>
<li>
<p><strong><a href="https://wiki.qt.io/Qt_Creator?ref=voidnull.es">qt-creator 19.0.0</a></strong>: Qt Creator es un entorno de desarrollo integrado (IDE) multiplataforma diseñado para desarrolladores que utilizan Qt.</p>
</li>
<li>
<p><strong><a href="https://brave.com/?ref=voidnull.es">brave-browser 1.88.127</a></strong>: Brave es un navegador web de código abierto basado en Chromium que incorpora un bloqueador de anuncios integrado.</p>
</li>
<li>
<p><strong><a href="https://podman.io/?ref=voidnull.es">podman 5.8.1</a></strong>: Podman es una herramienta para gestionar contenedores y pods compatibles con OCI (Open Container Initiative).</p>
</li>
<li>
<p><strong><a href="https://wordpress.org/?ref=voidnull.es">wordpress 6.9.4</a></strong>: WordPress es un software de publicación para la web.</p>
</li>
<li>
<p><strong><a href="https://www.php.net/?ref=voidnull.es">php 8.5.4</a></strong>: PHP es un lenguaje de scripting del lado del servidor incrustado en HTML.</p>
</li>
<li>
<p><strong><a href="https://curl.se/?ref=voidnull.es">curl 8.19.0</a></strong>: cURL es una herramienta de línea de comandos para transferir archivos utilizando sintaxis de URL.</p>
</li>
</ul>
<p>📌 Si usas alguno de estos paquetes, revisa si hay mejoras o cambios importantes en su configuración.</p><h2 id="%F0%9F%8F%86-ranking-de-las-distribuciones-m%C3%A1s-descargadas">🏆 <strong>Ranking de las distribuciones más descargadas</strong></h2><p>Cada dos semanas revisamos cuáles son las distribuciones más populares según las descargas recientes. Aquí tienes el top 10 de esta quincena:</p><ul>
<li>📉 <a href="https://distrowatch.com/cachyos?ref=voidnull.es">CachyOS</a> - 3681 visitas por día (👎 8 visitas)</li>
<li>📉 <a href="https://distrowatch.com/mint?ref=voidnull.es">Mint</a> - 2115 visitas por día (👎 9 visitas)</li>
<li>📉 <a href="https://distrowatch.com/mx?ref=voidnull.es">MX Linux</a> - 1883 visitas por día (👎 36 visitas)</li>
<li>📈 <a href="https://distrowatch.com/popos?ref=voidnull.es">Pop!_OS</a> - 1539 visitas por día (👍 1 visitas)</li>
<li>📉 <a href="https://distrowatch.com/debian?ref=voidnull.es">Debian</a> - 1414 visitas por día (👎 9 visitas)</li>
<li>📉 <a href="https://distrowatch.com/zorin?ref=voidnull.es">Zorin</a> - 1378 visitas por día (👎 7 visitas)</li>
<li>📈 <a href="https://distrowatch.com/fedora?ref=voidnull.es">Fedora</a> - 1216 visitas por día (👍 11 visitas)</li>
<li>📉 <a href="https://distrowatch.com/ubuntu?ref=voidnull.es">Ubuntu</a> - 1086 visitas por día (👎 1 visitas)</li>
<li>📈 <a href="https://distrowatch.com/endeavour?ref=voidnull.es">EndeavourOS</a> - 1061 visitas por día (👍 44 visitas)</li>
<li>📉 <a href="https://distrowatch.com/manjaro?ref=voidnull.es">Manjaro</a> - 1060 visitas por día (👎 7 visitas)</li>
</ul>
<div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text">¿Tu distribución favorita está en la lista? ¡Déjanos un comentario!</div></div><h2 id="%F0%9F%8E%93-aprende-m%C3%A1s-sobre-gnulinux">🎓 <strong>Aprende más sobre GNU/Linux</strong></h2><p>Si te interesa aprender más sobre GNU/Linux, en nuestro blog publicamos artículos sobre herramientas, comandos y configuraciones útiles. Además, en nuestra <a rel="noopener">sección de cursos</a> puedes encontrar tutoriales organizados por niveles. 🚀 </p><h2 id="%E2%98%95-apoya-nuestro-contenido">☕ <strong>Apoya nuestro contenido</strong></h2><p>Si este tipo de artículos te resulta útil, considera apoyarnos con una pequeña donación. Nos ayuda a seguir compartiendo información sobre software libre.</p><p>🔗 <a href="https://ko-fi.com/voidnull?ref=voidnull.es">https://ko-fi.com/voidnull</a></p><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ K9-Mail: cliente de correo todoterreno ]]></title>
            <description><![CDATA[ Cliente de correo electrónico libre y veterano para Android, centrado en privacidad y control del usuario. ]]></description>
            <link>https://voidnull.es/k9-mail-cliente-de-correo-todoterreno/</link>
            <guid isPermaLink="false">69a19b3cbec19c00010b8194</guid>
            <category><![CDATA[ F-Droid ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Fri, 13 Mar 2026 17:30:27 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/03/fdroid-2.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Durante años, <strong>Android se ha presentado como una plataforma abierta</strong>, donde los usuarios podían <strong>instalar</strong>, <strong>estudiar</strong> y <strong>compartir</strong> software libremente, sin intermediarios obligatorios. Sin embargo, <strong>los cambios anunciados por Google amenazan con transformar ese modelo en uno cada vez más cerrado</strong>, en el que desarrollar, distribuir o incluso ejecutar aplicaciones podría quedar condicionado a la aprobación previa de la propia compañía.</p><p>Este giro <strong>no solo afecta a desarrolladores</strong>, sino <strong>también a personas usuarias</strong>, <strong>comunidades</strong> y <strong>proyectos de software libre</strong>, que ven peligrar la posibilidad de mantener un ecosistema independiente, auditable y basado en estándares abiertos. La pérdida de control sobre nuestros propios dispositivos supone, en la práctica, renunciar a una parte de nuestra <strong>soberanía tecnológica</strong>.</p><p>Por ese motivo, inicio esta serie de artículos para dar visibilidad a aplicaciones libres disponibles en <a href="https://f-droid.org/es/?ref=voidnull.es">F-Droid</a>, demostrar que existen alternativas reales al modelo centralizado de Google Play y contribuir a la concienciación sobre la importancia de <strong>mantener Android como una plataforma verdaderamente abierta</strong>.</p><div class="kg-card kg-header-card kg-v2 kg-width-regular " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="puedes-encontrar-ms-informacin-sobre-la-campaa" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Puedes encontrar más información sobre la campaña</span></h2>
                    <p id="mantnandroidabiertokeepandroidopen" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">#ManténAndroidAbierto</span><br><span style="white-space: pre-wrap;">#KeepAndroidOpen</span></p>
                    <a href="https://keepandroidopen.org/es/?ref=voidnull.es" class="kg-header-card-button " style="background-color: #8AB000;color: #FFFFFF;" data-button-color="#8AB000" data-button-text-color="#FFFFFF">Leer manifiesto</a>
                </div>
            </div>
        </div><h2 id="aplicaci%C3%B3n-de-la-semana-k-9-mail">Aplicación de la semana: K-9 Mail</h2><p>K-9 Mail es un cliente de correo electrónico de código abierto compatible con prácticamente cualquier proveedor, concebido como alternativa libre a las aplicaciones propietarias preinstaladas. </p><p>El proyecto prioriza la privacidad (sin seguimiento ni servicios intermedios) conectándose únicamente con el servidor de correo del usuario y ofreciendo funciones avanzadas como cifrado OpenPGP. </p><p>Además desde hace ya algún tiempo el desarrollador de K-9 Mail está trabajando codo con codo con Thunderbird, un cliente para escritorio de correo electrónico, y está haciendo muchas mejoras en cuanto a diseño para adaptar características propias de Thunderbird al cliente de Android.</p><h3 id="detalles-de-la-aplicaci%C3%B3n">Detalles de la aplicación</h3><ul><li>🔗 Web oficial: <a href="https://k9mail.app/?ref=voidnull.es" rel="noopener">https://k9mail.app</a></li><li>📦 F-Droid: <a href="https://f-droid.org/packages/com.fsck.k9/?ref=voidnull.es" rel="noopener">https://f-droid.org/packages/com.fsck.k9/</a></li><li>🧑‍💻 Código fuente: <a rel="noopener">https://github.com/thundernest/k-9</a></li><li>📜 Licencia: Apache 2.0</li><li>🌍 Idiomas: Multidioma</li></ul><h3 id="caracter%C3%ADsticas-principales">Características principales</h3><ul><li>Compatible con la mayoría de proveedores de correo</li><li>Soporte para múltiples cuentas</li><li>Bandeja de entrada unificada</li><li>Sin seguimiento ni recopilación de datos</li><li>Sincronización automática o manual del correo</li><li>Búsqueda local y en servidor</li><li>Cifrado OpenPGP mediante integración con herramientas compatibles</li><li>Compatible con protocolos IMAP, POP3 y otros estándares habituales</li></ul><h2 id="mi-experiencia-con-k-9-mail">Mi experiencia con K-9 Mail</h2><p>Creo que ha sido mi cliente de correo desde que estoy usando Android (que por otro lado ha sido siempre). Estuve un tiempo usando otro cliente de correo, pero al final lo abandone a favor de nuevo K9-Mail.</p><p>Yo que siempre he tenido un servidor de correo gestionado por mi, tener K-9 en mi ecosistema de APPs ha sido un alivio para muchas cosas. Es un cliente muy completo, permite tener bandeja unificada, algo que se agradece cuando tienes varias cuentas de correo.</p><p>Recientemente el desarrollador de K9 Mail ha pasado a trabajar con Thunderbird para hacer un fork. Aún así, las nuevas características que hace para el fork de Thunderbird las incluye también a K9 Mail, por lo que es una muy buena noticia.</p><div class="kg-card kg-header-card kg-v2 kg-width-wide " style="background-color: #1976d2;" data-background-color="#1976d2">
            
            <div class="kg-header-card-content">
                
                <div class="kg-header-card-text kg-align-center">
                    <h2 id="si-queremos-que-android-siga-siendo-una-plataforma-abierta-debemos-apoyar-y-usar-aplicaciones-libres-" class="kg-header-card-heading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Si queremos que Android siga siendo una plataforma abierta, debemos apoyar y usar aplicaciones libres. </span></h2>
                    <p id="instala-desde-fdroid-comparte-estas-alternativas-y-contribuye-a-mantener-vivo-un-ecosistema-donde-el-usuario-tenga-el-control" class="kg-header-card-subheading" style="color: #FFFFFF;" data-text-color="#FFFFFF"><span style="white-space: pre-wrap;">Instala desde F-Droid, comparte estas alternativas y contribuye a mantener vivo un ecosistema donde el usuario tenga el control.</span></p>
                    <a href="https://f-droid.org/es/F-Droid.apk?ref=voidnull.es" class="kg-header-card-button " style="background-color: #ffffff;color: #000000;" data-button-color="#ffffff" data-button-text-color="#000000">Descarga F-Droid</a>
                </div>
            </div>
        </div><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ Apache vs Nginx vs Caddy: qué servidor web usar en tu servidor ]]></title>
            <description><![CDATA[ Apache, Nginx o Caddy: comparativa rápida para elegir el servidor web ideal según rendimiento, configuración y uso. ]]></description>
            <link>https://voidnull.es/apache-vs-nginx-vs-caddy-que-servidor-web-usar-en-tu-servidor/</link>
            <guid isPermaLink="false">69a96788bec19c00010b88d6</guid>
            <category><![CDATA[ Guias ]]></category>
            <dc:creator><![CDATA[ Don T3rr0rZ0n3 ]]></dc:creator>
            <pubDate>Fri, 13 Mar 2026 09:21:04 +0100</pubDate>
            <media:content url="https://voidnull.es/content/images/2026/03/guias-5.png" medium="image"/>
            <content:encoded><![CDATA[ <p>Cuando hablamos de servidores web en entornos GNU/Linux, siempre aparecen dos nombres que todos conocemos: <strong>Apache2</strong> y <strong>Nginx</strong>. Recientemente, se está poniendo de moda un tercer servidor web que se llama <strong>Caddy</strong>.</p><p>Aunque todos cumplen con la misma función básica, que es la de ofrecer contenido web y actuar como intermediarios entre los clientes y las aplicaciones, su filosofía de diseño, su arquitectura interna y la forma en la que se administran son bastante diferentes. Entender esas diferencias ayuda a elegir la herramienta más adecuada para cada tipo de proyecto o infraestructura.</p><h2 id="servidor-apache-http-server">Servidor Apache HTTP Server</h2><p><strong>Apache HTTP Server</strong> es uno de los servidores web más veteranos y conocidos en sistemas GNU/Linux. Durante muchos años fue el estándar de facto para alojar sitios web en Internet y aún hoy mantiene una presencia muy significativa.</p><p>Tenemos muchos artículos relacionados con Apache, de momento te dejo como instalar un stack completo de Apache, MySQL/MariaDB y PHP:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/instalacion-de-servidor-web-lamp-en-debian-13/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Instalación de servidor web LAMP en Debian 13</div><div class="kg-bookmark-description">Aprende a instalar y configurar un servidor LAMP (Linux, Apache, MariaDB y PHP) paso a paso en Debian 13. Ideal para entornos web ligeros y de alto rendimiento.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-282.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/LAMP-19.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text">Dentro del artículo de arriba, puedes seleccionar tu distro favorita.</div></div><p>Una de sus características principales es su arquitectura modular. Apache se basa en un sistema de módulos que permite ampliar sus capacidades fácilmente: desde soporte para distintos lenguajes y métodos de autenticación hasta compresión, reescritura de URLs o integración con aplicaciones dinámicas. Esta modularidad ha hecho que Apache sea extremadamente flexible y compatible con una enorme cantidad de software y configuraciones existentes.</p><p>Otra característica importante de Apache es su sistema de configuración distribuida mediante archivos <code>.htaccess</code>. Esto permite definir reglas específicas dentro de cada directorio del sitio web sin necesidad de modificar la configuración global del servidor. Estos ficheros son realmente útiles para entornos compartidos como puede ser un hosting compartido donde existen distintos sitios webs de diferentes usuarios. Sin embargo, esta misma característica añade un coste al rendimiento, ya que Apache debe de comprobar la existencia de estos archivos por cada petición al servidor web.</p><p>En el blog hemos hablado sobre este tipo de ficheros, por ejemplo hablamos de una guía definitiva sobre las redirecciones en <code>.htaccess</code>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/guia-definitiva-sobre-las-redirecciones-301-en-htacess/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Guía definitiva sobre las redirecciones 301 en htaccess</div><div class="kg-bookmark-description">Así que hoy os traigo una guía definitiva sobre todo tipo de redirecciones más comunes que podemos utilizar a diario para redirigir dominios, enlaces, etc.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-279.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/trucos-1.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><p>En cuanto a su arquitectura de procesamiento, Apache puede funcionar mediante diferentes modelos de ejecución llamados <em>MPM</em> (Multi-Processing Modules). Históricamente utilizó modelos basados en procesos o hilos, como <strong>prefork</strong> o <strong>worker</strong>, donde cada conexión puede ocupar un proceso o hilo del servidor. Aunque esto facilita la compatibilidad con determinados módulos o aplicaciones, también puede aumentar el consumo de memoria cuando el número de conexiones concurrentes es elevado. Con el tiempo se introdujo el modelo <strong>event</strong>, que mejora el manejo de conexiones persistentes, pero aun así Apache suele ser menos eficiente en escenarios de altísima concurrencia que servidores diseñados desde el principio con una arquitectura diferente.</p><p>Un método muy sencillo de optimizar Apache en nuestros servidores, es activando la comprensión HTTP y la caché del navegador, un tema que hablamos hace algún tiempo en el blog:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/activar-compresion-http-cache-navegador-en-apache/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Activar la comprensión HTTP y la caché del navegador en Apache</div><div class="kg-bookmark-description">Estas herramientas pueden acelerar significativamente la carga de las páginas web y reducir el uso de ancho de banda.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-281.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/apache.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><p>Una cosa interesante también de Apache es que podemos configurarlo como Proxy Inverso, que es algo que se suele usar mucho con Nginx pero que con Apache también es posible:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/configurar-proxy-inverso-con-apache-para-escuchar-un-puerto-interno/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Configurar Proxy Inverso con Apache para escuchar un puerto interno</div><div class="kg-bookmark-description">En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Apache Proxy.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-280.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/TUTORIAL-23.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><h2 id="servidor-web-nginx">Servidor web Nginx</h2><p><strong>Nginx</strong>, por otro lado, fue diseñado precisamente para resolver los problemas de escalabilidad que surgían con los servidores web tradicionales cuando el tráfico aumentaba significativamente. Su arquitectura se basa en un modelo <strong>event-driven y asíncrono</strong>, lo que significa que un número reducido de procesos puede gestionar miles de conexiones simultáneamente sin necesidad de crear un proceso o hilo por cada cliente. Este diseño lo hace especialmente eficiente en el manejo de archivos estáticos, conexiones concurrentes y situaciones donde el servidor debe actuar como intermediario entre múltiples servicios.</p><p>Tenemos muchos artículos relacionados con Nginx, de momento te dejo como instalar un stack completo de Nginx, MySQL/MariaDB y PHP:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/instalacion-de-servidor-web-lemp-en-debian-13/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Instalación de servidor web LEMP en Debian 13</div><div class="kg-bookmark-description">Aprende a instalar y configurar un servidor LEMP (Linux, Nginx, MariaDB y PHP) paso a paso en Debian 13. Ideal para entornos web ligeros y de alto rendimiento.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-283.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/LEMP-13.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text">Dentro del artículo de arriba, puedes seleccionar tu distro favorita.</div></div><p>En la práctica, Nginx se ha convertido en una pieza fundamental en muchas arquitecturas modernas. A menudo se utiliza como <strong>reverse proxy</strong>, como <strong>balanceador de carga</strong> o como servidor frontal que gestiona el tráfico HTTP antes de enviarlo a aplicaciones internas. Su configuración es relativamente sencilla y muy clara en comparación con Apache, ya que se basa en bloques de configuración estructurados y evita el uso de configuraciones distribuidas como <code>.htaccess</code>. Esto mejora el rendimiento porque el servidor solo necesita cargar la configuración una vez al iniciar.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/configurar-proxy-inverso-con-nginx-para-que-escuche-a-un-puerto-interno/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Configurar Proxy Inverso con Nginx para que escuche a un puerto interno</div><div class="kg-bookmark-description">En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-284.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/nginx1-1.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><p>Sin embargo, esta simplicidad también implica que algunas tareas que Apache permite realizar directamente en el directorio del sitio deben definirse en la configuración central del servidor en Nginx. En entornos donde varios usuarios gestionan sus propios sitios web, esto puede requerir más control administrativo. Aun así, su eficiencia y su capacidad para manejar grandes cantidades de tráfico lo han convertido en uno de los servidores web más utilizados en infraestructuras modernas.</p><p>Adicionalmente, con Nginx se puede configurar también cache para mejorar el rendimiento de las peticiones hacia el servidor. En su día hablamos como configurar y  limpiar esa cache:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/eliminar-cache-de-nginx/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Eliminar cache de Nginx</div><div class="kg-bookmark-description">Si hemos configurado cache en Nginx, en ocasiones nos interesará eliminar la cache. Sobretodo cuando actualizáis alguna cosa y estáis más de 10 minutos sin poder visualizar los cambios hasta que caes en que la web tiene cache 🥲.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-285.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/nginx1-2.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><h2 id="servidor-web-caddy">Servidor web Caddy</h2><p><strong>Caddy</strong> representa una generación más reciente de servidores web que intenta simplificar muchos aspectos de la administración que históricamente han sido complejos. Su característica más destacada es la <strong>gestión automática de certificados TLS</strong>. Mientras que en Apache o Nginx es necesario configurar manualmente herramientas como Let's Encrypt o certbot para obtener y renovar certificados HTTPS, Caddy integra este proceso de forma nativa. Basta con definir un dominio en su archivo de configuración para que el servidor obtenga, configure y renueve automáticamente los certificados necesarios.</p><p>Además, Caddy utiliza una configuración extremadamente simple basada en el llamado <strong>Caddyfile</strong>, que permite definir sitios web y reglas de forma muy legible. Su arquitectura interna también está diseñada para ser moderna y eficiente, utilizando un modelo similar al de Nginx en cuanto al manejo de conexiones concurrentes. Esto lo hace adecuado tanto para servir contenido estático como para actuar como reverse proxy frente a aplicaciones o contenedores.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://voidnull.es/instalar-caddy-web-server-en-debian-12/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Instalar Caddy Web Server en Debian 12</div><div class="kg-bookmark-description">Caddy es una alternativa relativamente nueva a Apache y Nginx aunque fue lanzado inicialmente en 2015. Es un servidor web de código abierto construido con lenguaje Go y utiliza HTTPS por defecto.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://voidnull.es/content/images/icon/favicon-286.png" alt=""><span class="kg-bookmark-author">_ voidNull</span><span class="kg-bookmark-publisher">Don T3rr0rZ0n3</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://voidnull.es/content/images/thumbnail/caddy.png" alt="" onerror="this.style.display = 'none'"></div></a></figure><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">💡</div><div class="kg-callout-text">Dentro del artículo de arriba, puedes seleccionar tu distro favorita.</div></div><p>Sin embargo, Caddy todavía es menos extendido que Apache o Nginx en muchos entornos profesionales, principalmente por razones históricas y de ecosistema. Aunque su diseño es muy limpio y su configuración es fácil de entender, algunas organizaciones prefieren herramientas con un historial más largo o con un ecosistema de módulos y documentación más amplio.</p><h2 id="entonces-%C2%BFcu%C3%A1l-usamos-en-cada-caso">Entonces, ¿Cuál usamos en cada caso?</h2><p>Cuando se comparan estos tres servidores, las diferencias principales surgen de sus enfoques arquitectónicos y de su filosofía de uso. Apache destaca por su <strong>flexibilidad y compatibilidad histórica</strong>. Su ecosistema de módulos y su capacidad para integrarse con multitud de tecnologías lo convierten en una opción muy versátil, especialmente en entornos donde se necesita una gran variedad de funcionalidades o compatibilidad con aplicaciones antiguas. Sin embargo, su arquitectura puede resultar menos eficiente en escenarios con muchísimas conexiones concurrentes, y su sistema de configuración distribuida puede afectar al rendimiento si no se gestiona adecuadamente.</p><p>Nginx, en cambio, prioriza <strong>rendimiento y eficiencia</strong>. Su arquitectura asíncrona lo hace especialmente adecuado para manejar tráfico elevado y para servir como componente central en arquitecturas de microservicios o balanceo de carga. La ausencia de <code>.htaccess</code> mejora el rendimiento, pero también implica que la configuración debe gestionarse de forma más centralizada. Esto puede ser una ventaja en entornos controlados, aunque en algunos casos reduce la flexibilidad para usuarios finales.</p><p>Caddy se posiciona como una alternativa moderna que busca <strong>simplificar la administración de servidores web</strong>. Su integración automática con TLS y su configuración minimalista reducen significativamente el tiempo necesario para desplegar un servicio web seguro. Esto lo hace especialmente atractivo para proyectos pequeños, despliegues rápidos o administradores que buscan una configuración sencilla sin renunciar a buenas prácticas de seguridad. Su principal desventaja es que todavía no tiene la misma adopción ni el mismo ecosistema que Apache o Nginx, lo que puede limitar algunas integraciones en entornos muy específicos.</p><p>En mi experiencia personal, los tres servidores pueden cumplir perfectamente la función de servidor contenido web, pero cada uno destaca en contextos distintos. He de decir que yo antes era un defensor aferrimo de Apache pero que con el tiempo decidí usar Nginx por su facilidad con los ficheros de configuración. Además que Nginx sobresale en rendimiento y manejo de tráfico elevado. Recientemente estoy probando y aprendiendo a usar Caddy que ofrece una experiencia moderna centrada en la simplicidad y la automatización de tareas que históricamente han sido complejas de configurar. </p><p>Elegir entre ellos depende menos de cuál es "mejor" en términos absolutos y más de qué características encajan mejor con las necesidades concretas de cada infraestructura o proyecto.</p><hr><h2 id="m%C3%A1s-sobre-voidnull">Más sobre ./voidNull</h2>
<ul>
<li>📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "<a href="https://voidnull.es/diccionario-comandos-gnu-linux/">De la A a la Z: Los comandos de GNU/Linux</a>"</li>
<li>💪 ¡Forma parte de la <a href="https://voidnull.es/#/portal/signup">Comunidad de ./voidNull</a>!</li>
<li>🤖 Disfruta de todos nuestros <a href="https://voidnull.es/courses/">Cursos</a> sobre Ansible, Proxmox, Home Assistant entre otros.</li>
<li>📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra <a href="https://voidnull.es/newsletter/">Newsletter</a> mensual.</li>
</ul>
 ]]></content:encoded>
        </item>

</channel>
</rss>
