FreshRSS Docker Compose: Tu Lector RSS Self-Hosted 2026

FreshRSS Docker Compose - lector de feeds RSS self-hosted

FreshRSS Docker Compose es la manera más rápida de recuperar el control de tu información montando tu propio lector de feeds RSS y Atom self-hosted. En lugar de depender de algoritmos que deciden qué ves, agregas tus fuentes favoritas en un único panel, ligero y privado, accesible desde el navegador o desde apps móviles. En esta guía lo desplegarás con Docker, lo conectarás a una base de datos y lo publicarás con HTTPS.

En este artículo aprenderás a:

  • Desplegar FreshRSS Docker Compose con PostgreSQL en minutos.
  • Configurar la actualización automática de feeds con cron.
  • Publicarlo de forma segura tras un proxy inverso con HTTPS.
  • Conectar apps móviles mediante la API de Google Reader y Fever.

¿Qué es FreshRSS y por qué usar Docker Compose?

FreshRSS es un agregador de noticias RSS y Atom de código abierto, escrito en PHP y conocido por su ligereza: funciona sin problemas incluso en una Raspberry Pi. Reúne en un solo lugar los artículos de blogs, medios, canales de YouTube y cualquier sitio que publique un feed, para que los leas cuando quieras y sin distracciones. Desplegarlo con FreshRSS Docker Compose te da un despliegue reproducible, aislado y fácil de actualizar.

Frente a servicios en la nube como Feedly, alojar tu propio lector aporta ventajas claras que encajan con la filosofía del self-hosting:

  • Privacidad: tus lecturas y suscripciones no alimentan el perfil publicitario de nadie.
  • Sin límites: agregas tantos feeds y categorías como quieras, sin muros de pago.
  • Control total: tus datos viven en tu servidor y se respaldan con tus copias de seguridad.
  • Extensible: soporta extensiones y filtros para automatizar tu flujo de lectura.

Los casos de uso de FreshRSS Docker Compose son muy variados: desde un profesional que sigue decenas de blogs técnicos y publicaciones del sector, hasta quien centraliza los canales de YouTube de sus creadores favoritos o vigila las notas de prensa de la competencia. Al agrupar todas esas fuentes en un panel propio, dejas de saltar entre pestañas y de depender de que cada plataforma te notifique. Es, en esencia, volver a un consumo de información intencional, donde tú decides qué sigues y en qué orden lo lees.

Si te gusta vigilar cambios en páginas que no ofrecen feed, FreshRSS combina de maravilla con herramientas como la que vimos en nuestra guía de Changedetection para monitorizar cambios web, que puede generar un RSS a partir de cualquier web.


Cómo funciona una instalación de FreshRSS Docker Compose

Antes de desplegar conviene entender las piezas que orquesta FreshRSS Docker Compose, porque saber qué hace cada contenedor facilita el mantenimiento y la resolución de problemas. Nuestra arquitectura se compone de dos servicios que trabajan juntos dentro de la misma red de Docker.

  • El contenedor de FreshRSS: sirve la interfaz web en PHP, gestiona las suscripciones y ejecuta el cron interno que refresca los feeds.
  • El contenedor de base de datos: PostgreSQL almacena tus feeds, categorías y el estado de lectura de cada artículo.
  • Los volúmenes: mantienen los datos a salvo aunque recrees o actualices los contenedores.
  • El cron integrado: descarga periódicamente los nuevos artículos sin intervención manual.

La belleza de este enfoque es que todo el sistema —aplicación, base de datos y tareas programadas— queda descrito en un único fichero. Levantar, mover o replicar tu lector es cuestión de copiar ese fichero y sus volúmenes a otro servidor. Esa portabilidad es precisamente lo que hace tan atractivo desplegar FreshRSS Docker Compose frente a una instalación manual.


Requisitos previos para FreshRSS Docker Compose

Antes de empezar con el despliegue de FreshRSS Docker Compose, asegúrate de contar con lo básico. El consumo de recursos es mínimo, así que casi cualquier servidor sirve.

  • Un servidor Linux con Docker Engine y el plugin Docker Compose v2.
  • Acceso por terminal con usuario en el grupo docker o con sudo.
  • Unos 512 MB de RAM libres (FreshRSS consume mucho menos en reposo).
  • Recomendado: un dominio o subdominio y un proxy inverso para servirlo con HTTPS.

Para la parte de publicación segura te resultará útil tener a mano nuestra guía de Caddy con HTTPS automático o la de Nginx Proxy Manager, que usaremos al final.

Instalar FreshRSS Docker Compose paso a paso

Vamos a crear la estructura del proyecto. Empezamos por un directorio de trabajo donde vivirán el fichero de composición y los volúmenes persistentes.

mkdir -p ~/docker/freshrss && cd ~/docker/freshrss

Aunque FreshRSS puede funcionar con SQLite, para un uso serio recomendamos PostgreSQL, que rinde mejor con muchos feeds. Crea el fichero docker-compose.yml con los dos servicios: el lector y su base de datos.

services:
  freshrss:
    image: freshrss/freshrss:1.24.3
    container_name: freshrss
    restart: unless-stopped
    depends_on:
      - db
    environment:
      TZ: Europe/Madrid
      CRON_MIN: "*/20"
      FRESHRSS_ENV: production
    volumes:
      - ./data:/var/www/FreshRSS/data
      - ./extensions:/var/www/FreshRSS/extensions
    ports:
      - "8080:80"

  db:
    image: postgres:16-alpine
    container_name: freshrss-db
    restart: unless-stopped
    environment:
      POSTGRES_USER: freshrss
      POSTGRES_PASSWORD: cambia-esta-clave
      POSTGRES_DB: freshrss
    volumes:
      - ./db:/var/lib/postgresql/data

La variable CRON_MIN es importante: define cada cuántos minutos el contenedor refresca los feeds automáticamente (aquí, cada 20). Así no dependes de tener el navegador abierto. Levanta el stack y comprueba que ambos contenedores arrancan.

docker compose up -d
docker compose ps

Con los servicios en marcha, abre http://IP-DEL-SERVIDOR:8080 en el navegador. Verás el asistente de instalación de FreshRSS Docker Compose, donde configurarás la conexión a la base de datos y tu cuenta de administrador.


Configuración inicial de FreshRSS Docker Compose

El asistente web te guía en cinco pasos. Cuando llegues a la configuración de la base de datos, introduce los datos del servicio db que definimos en el fichero de composición.

CampoValor
Tipo de base de datosPostgreSQL
Servidor (host)db
Usuariofreshrss
Contraseñala definida en POSTGRES_PASSWORD
Base de datosfreshrss

Fíjate en que el host es simplemente db: dentro de la red de Docker Compose, los contenedores se resuelven por su nombre de servicio, sin necesidad de IP. Tras crear tu usuario administrador, ya puedes entrar y empezar a añadir suscripciones pegando la URL de cualquier feed.

Un truco útil: muchos sitios no muestran el enlace del feed, pero FreshRSS suele detectarlo automáticamente si pegas la URL de la página principal. Organiza tus fuentes en categorías (tecnología, noticias, blogs) para mantener el panel ordenado a medida que crece.

Publicar FreshRSS con HTTPS y proxy inverso

Para acceder a tu lector desde fuera de casa y, sobre todo, para conectar apps móviles, necesitas servirlo con HTTPS a través de un proxy inverso. Si usas Caddy, el bloque de configuración es mínimo: apunta tu subdominio al puerto que publicamos.

rss.tudominio.com {
    reverse_proxy localhost:8080
}

Caddy solicitará y renovará automáticamente el certificado TLS de Let’s Encrypt, dejando https://rss.tudominio.com accesible y cifrado. Tras recargar el proxy, entra en los ajustes de FreshRSS y, en la sección de autenticación, marca la casilla para permitir el acceso mediante la API, imprescindible para el paso siguiente.

⚠️ Advertencia de seguridad

No expongas el puerto 8080 directamente a Internet. Publícalo siempre tras el proxy inverso con HTTPS y usa una contraseña de administrador robusta. Cambia la clave de PostgreSQL del ejemplo antes de desplegar en un servidor accesible desde fuera.

Conectar apps móviles a FreshRSS Docker Compose

Una de las grandes ventajas de FreshRSS Docker Compose es su compatibilidad con las APIs estándar de lectores, lo que te permite usar apps de terceros muy pulidas en el móvil. Soporta dos protocolos ampliamente adoptados:

  • API de Google Reader: compatible con apps como Reeder, FocusReader o Readrops.
  • API Fever: compatible con clientes clásicos como Unread o Fiery Feeds.

Para usarlas, crea en FreshRSS una contraseña de API específica (distinta de la de tu cuenta) desde el perfil de usuario. Después, en la app móvil, elige el tipo de servidor «Google Reader compatible», introduce la URL https://rss.tudominio.com/api/greader.php, tu usuario y esa contraseña de API. En segundos tendrás todos tus feeds sincronizados en el teléfono.

Este enfoque desacopla el servidor del cliente: puedes cambiar de app cuando quieras sin perder tus suscripciones, porque todo se guarda en tu instancia. Es la esencia del self-hosting bien hecho.

Extensiones y personalización de FreshRSS

Uno de los puntos fuertes de FreshRSS es su sistema de extensiones, que amplía las funciones básicas sin modificar el núcleo. Como en el fichero de composición ya montamos la carpeta ./extensions, instalarlas es tan sencillo como copiar la extensión en ese directorio y activarla desde el panel de administración.

Algunas de las extensiones y ajustes más útiles para sacar partido a tu lector son:

  • Vistas de lectura mejoradas: temas oscuros, tipografías cómodas y modos de lectura sin distracciones.
  • Filtros automáticos: marca como leído, destaca o etiqueta artículos según palabras clave, para no perderte lo importante.
  • Recuperación de contenido completo: extensiones que descargan el artículo entero cuando el feed solo ofrece un resumen.
  • Compartir e integrar: envía artículos a servicios de lectura posterior o a tus herramientas de notas.

Además, FreshRSS permite crear varias cuentas de usuario, lo que lo hace ideal para compartir la instancia con tu familia o tu equipo, cada uno con sus propias suscripciones y su estado de lectura independiente. Esta capacidad multiusuario, combinada con la ligereza del despliegue, convierte a FreshRSS Docker Compose en una solución que crece contigo, desde un uso personal hasta un pequeño grupo de lectores.

A medida que añadas fuentes, dedica un momento a organizar categorías y a configurar la frecuencia de actualización de los feeds más activos. Un panel bien estructurado marca la diferencia entre una herramienta que consultas a diario y otra que abandonas por saturación.

Mantenimiento y solución de problemas

  • Los feeds no se actualizan: revisa la variable CRON_MIN y los logs con docker compose logs freshrss.
  • Copias de seguridad: respalda las carpetas ./data y ./db; con ellas restauras todo el sistema.
  • Actualizar: cambia la etiqueta de la imagen, ejecuta docker compose pull y docker compose up -d.
  • Error de conexión a la base de datos: confirma que el host es db y que la contraseña coincide con la del servicio PostgreSQL.

Para gestionar bien tu base de datos y sus copias, te recomendamos revisar nuestra guía dedicada de PostgreSQL con Docker Compose. Y si buscas más servicios para tu servidor, explora la categoría de tutoriales de Docker Compose.

Conclusión

Montar FreshRSS Docker Compose es una de esas mejoras que cambian tu relación con la información: recuperas una lectura ordenada, privada y sin algoritmos, con tus datos bajo tu control. Hemos cubierto el despliegue con PostgreSQL, la actualización automática de feeds, la publicación segura con HTTPS y la sincronización con apps móviles. A partir de aquí, añade extensiones, crea filtros y disfruta de una web más tranquila y a tu medida. Como siguiente paso, valora automatizar las copias de seguridad de los volúmenes y programar la actualización de la imagen para mantener tu instancia siempre al día. Con un mantenimiento mínimo, este lector se convertirá en una de las herramientas que más uses en tu servidor.

Preguntas frecuentes

¿FreshRSS necesita base de datos externa?

No es obligatorio: funciona con SQLite sin configuración adicional. Sin embargo, para muchos feeds y varios usuarios, PostgreSQL o MySQL ofrecen mejor rendimiento, como en el ejemplo de esta guía.

¿Puedo importar mis feeds de otro lector?

Sí. FreshRSS importa y exporta ficheros OPML, el formato estándar de suscripciones. Exporta el OPML de tu lector actual e impórtalo desde los ajustes para migrar todas tus fuentes de golpe.

¿Cuántos recursos consume?

Muy pocos. FreshRSS está optimizado para ser ligero y funciona con soltura en una Raspberry Pi o en un VPS modesto, incluso con cientos de suscripciones activas.

¿Es realmente gratis?

Sí, FreshRSS es software libre bajo licencia AGPL-3.0. No tiene coste de licencia ni funciones de pago; solo asumes el coste del servidor donde lo alojes.

Fuentes y recursos oficiales

Avatar

Por Mid

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x