configurar FreshRSS con MariaDB

Cómo configurar FreshRSS con MariaDB: Guía Pro 2026

¿Estás cansado de que los algoritmos de las redes sociales decidan qué noticias debes leer? En pleno 2026, la soberanía digital se ha convertido en una prioridad para los entusiastas de la tecnología que buscan escapar del ruido y la manipulación de la IA en los feeds convencionales.

FreshRSS se mantiene como la solución definitiva de auto-alojamiento para gestionar flujos de información masivos. Sin embargo, para que esta herramienta sea verdaderamente potente y capaz de manejar miles de artículos sin despeinarse, la clave reside en una infraestructura sólida: una base de datos MariaDB bien optimizada.

En esta guía profesional, te enseñaré paso a paso cómo desplegar tu propio centro de inteligencia de noticias, garantizando que tengas el control total de tus datos, sin depender de servicios de terceros que cierran o cambian sus términos de uso cada trimestre.

Requisitos de Hardware y Software para 2026

Para ejecutar FreshRSS con fluidez, especialmente si planeas seguir a más de 500 fuentes, no basta con cualquier servidor. Necesitas una base que soporte la concurrencia de escrituras de la base de datos.

En mis pruebas personales durante este año, he detectado que el cuello de botella suele ser el I/O de disco. Por ello, es imperativo utilizar almacenamiento de estado sólido para evitar latencias en las consultas SQL.

Especificaciones Técnicas Recomendadas

  • Procesador: Mínimo 2 núcleos (Virtualizados o ARM64 como Raspberry Pi 5).
  • Memoria RAM: 2 GB dedicados (MariaDB consume aproximadamente 400MB en reposo).
  • Almacenamiento: 20 GB de espacio en NVMe o SSD Enterprise.
  • Sistema Operativo: Ubuntu 24.04 LTS o Debian 13.
EscenarioFuentes RSSRAM Recomendada
Personal Ligero< 1001 GB
Power User100 – 10002 GB – 4 GB
Archivista Digital> 10008 GB + Optimización InnoDB

Instalación y Optimización de MariaDB

Utilizar MariaDB 11.x es fundamental en 2026 debido a sus mejoras en el motor InnoDB y la gestión de índices. No recomiendo usar SQLite si planeas mantener un histórico de noticias superior a 3 meses, ya que el rendimiento decae exponencialmente.

  1. Actualiza los repositorios del sistema e instala el servidor de base de datos:
    sudo apt update && sudo apt install mariadb-server
  2. Ejecuta el script de seguridad para eliminar usuarios anónimos y bases de datos de prueba:
    sudo mysql_secure_installation
  3. Accede a la consola de MariaDB y crea la base de datos específica para FreshRSS:
    CREATE DATABASE freshrss_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
💡 Consejo Pro: Asegúrate de usar el conjunto de caracteres utf8mb4. Esto permite que FreshRSS procese correctamente Emojis y caracteres especiales de sitios web modernos sin corromper la base de datos.

Despliegue de FreshRSS mediante Docker Compose

La forma más profesional y mantenible de desplegar este stack es mediante Docker. Esto nos permite aislar las dependencias de PHP 8.3 que requiere FreshRSS sin ensuciar el sistema operativo host.

Crea un archivo llamado docker-compose.yml con la siguiente estructura técnica:

  • Image: freshrss/freshrss:latest
  • Environment: Define las variables de conexión a MariaDB.
  • Volumes: Mapea la carpeta /var/www/FreshRSS/data para no perder tus suscripciones al actualizar.

Configuración del archivo YAML

  1. Define el servicio de base de datos indicando el puerto 3306.
  2. Configura el servicio de FreshRSS vinculándolo a la red de la base de datos.
  3. Establece una política de reinicio unless-stopped para asegurar alta disponibilidad.
⚠️ Importante: Nunca expongas el puerto de MariaDB (3306) al exterior en tu router o firewall. La comunicación entre FreshRSS y la base de datos debe ser interna a través de la red de Docker para evitar ataques de fuerza bruta.

Configuración del Cron y Persistencia de Datos

Un servidor de noticias que no se actualiza automáticamente es inútil. Por defecto, FreshRSS requiere que alguien visite la web para disparar la actualización de feeds, a menos que configuremos un Cron Job.

Para una experiencia de nivel profesional en 2026, debemos programar actualizaciones cada 15 o 30 minutos. Esto garantiza que las noticias de última hora lleguen a tu dispositivo Android o iOS casi en tiempo real.

  1. Edita el crontab del sistema: crontab -e
  2. Añade la siguiente línea para ejecutar el script de actualización:
    */15 * * * * docker exec -u www-data freshrss_container php /var/www/FreshRSS/app/actualize_script.php > /dev/null 2>&1
  3. Verifica los permisos de los volúmenes para que el usuario www-data tenga acceso de escritura.

Ventajas y Desventajas

✅ Ventajas

  • Privacidad absoluta: Tus hábitos de lectura no se venden.
  • Escalabilidad: MariaDB soporta millones de artículos.
  • Compatibilidad: Funciona con apps como NetNewsWire o Reeder 6.

❌ Desventajas

  • Requiere mantenimiento técnico periódico.
  • Consumo de recursos mayor que una solución SaaS.

Preguntas Frecuentes

¿Es mejor MariaDB que PostgreSQL para FreshRSS?

Para FreshRSS, MariaDB ofrece una configuración más sencilla y un rendimiento ligeramente superior en lecturas rápidas, que es el uso principal de un lector de noticias.

¿Puedo acceder a mi FreshRSS fuera de casa?

Sí, lo ideal es utilizar un Reverse Proxy como Nginx Proxy Manager con certificados SSL de Let’s Encrypt para una conexión segura HTTPS.

¿Cuántos artículos puede guardar MariaDB?

He probado instalaciones con más de 500,000 artículos y, con los índices correctos en MariaDB, las búsquedas tardan menos de 200ms.

Conclusión

  • La base de datos MariaDB es esencial para un rendimiento óptimo a largo plazo.
  • El despliegue con Docker facilita las actualizaciones y la seguridad.
  • No olvides configurar el Cron Job para mantener tus feeds siempre frescos.
  • Usa siempre HTTPS si vas a exponer tu servidor a internet.

¿Estás pensando en montar tu propio servidor de noticias o prefieres seguir usando servicios en la nube? Si tienes dudas con la configuración del archivo YAML, ¡déjanos un comentario!

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *