Servidor de RSS autoalojado con FreshRSS + Fever API y extensiones (Docker Compose avanzado)

Servidor de RSS autoalojado con FreshRSS, Fever API y extensiones: ¡Controla tus fuentes!

¿Cansado de perderte actualizaciones importantes entre mil pestañas, o de depender de servicios de terceros para tu lector de RSS? Hoy te enseño cómo desplegar FreshRSS, un completísimo lector de feeds autoalojado, en tu propio VPS, usando Docker Compose. Además, lo integraremos con la API tipo Fever (para usarlo con apps móviles premium) y añadiremos utilidades mediante extensiones.
¡Aprovecha el poder de los RSS, gratis y sin límites!

¿Por qué FreshRSS? 📰

  • Interfaz moderna y adaptable (PC y móvil)
  • Importación/exportación OPML (lleva tus feeds donde quieras)
  • Multiusuario
  • Soporte de plugins para ampliar lo que quieras (notificaciones, parsers, etc)
  • API Fever (compatible con Reeder, Unread, etc.)
  • Cero dependencia de servicios SaaS ni de Google

¿Qué vamos a desplegar?

  • FreshRSS (aplicación principal)
  • MariaDB (base de datos, más robusto que SQLite para varios usuarios/vistas avanzadas)
  • Nginx como proxy (SSL fácil y control granular, ideal si luego quieres integrar otros sitios)
  • Certbot para Let’s Encrypt (HTTPS real)
  • Extensiones: Fever API gateway y otros plugins

docker-compose.yml listo para producción

Copia y personaliza este fichero en una carpeta vacía de tu servidor. Recuerda adaptar los passwords, el dominio y las rutas de volumen a tu entorno.

version: '3.8'

services:
  db:
    image: mariadb:11
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: superseguro_root
      MYSQL_DATABASE: freshrss
      MYSQL_USER: freshrss
      MYSQL_PASSWORD: superseguro_app
    volumes:
      - db_data:/var/lib/mysql

  freshrss:
    image: freshrss/freshrss:latest
    restart: unless-stopped
    depends_on:
      - db
    environment:
      DB_TYPE: mysql
      DB_HOST: db
      DB_BASE: freshrss
      DB_USER: freshrss
      DB_PASSWORD: superseguro_app
      TZ: Europe/Madrid
    volumes:
      - freshrss_data:/var/www/FreshRSS/data
      - freshrss_extensions:/var/www/FreshRSS/extensions
      - ./plugins:/var/www/FreshRSS/extensions/extra
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.freshrss.rule=Host(`rss.tudominio.com`)"
      - "traefik.http.routers.freshrss.entrypoints=websecure"
      - "traefik.http.routers.freshrss.tls.certresolver=myresolver"
    networks:
      - traefik
      - default

  nginx:
    image: nginx:alpine
    restart: unless-stopped
    depends_on:
      - freshrss
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - freshrss_data:/var/www/FreshRSS/data:ro
      - freshrss_extensions:/var/www/FreshRSS/extensions:ro
      - ./certbot/www:/var/www/certbot
      - ./certbot/conf:/etc/letsencrypt
    ports:
      - "443:443"
      - "80:80"

  certbot:
    image: certbot/certbot
    volumes:
      - ./certbot/www:/var/www/certbot
      - ./certbot/conf:/etc/letsencrypt
    entrypoint: /bin/sh -c 'trap exit TERM; while :; do sleep 6h & wait $${!}; certbot renew --webroot -w /var/www/certbot; done;'
  
volumes:
  db_data:
  freshrss_data:
  freshrss_extensions:

networks:
  traefik:
    external: true

Explicación clave del despliegue

  • MariaDB almacena todos tus artículos, configuraciones y usuarios.
  • FreshRSS se conecta por red interna privada a la base de datos.
  • Nginx hace de proxy (tanto para servir péticiones HTTP/HTTPS, como para las websockets del API).
  • Certbot mantiene los certificados en automático; sólo tienes que hacer el primer certbot certonly inicial.
  • El volumen ./plugins permite instalar plugins (como la API Fever). Descarga estos extras de la comunidad oficial o de el plugin Fever.
  • Con labels puedes enrutar vía Traefik, o modificar para usar sólo nginx como proxy.

Primeros pasos tras el despliegue

  1. Personalizar nginx.conf para tu dominio y HTTPS (ver ejemplo en la wiki oficial).
  2. Instalar el plugin Fever arrastrando la carpeta a plugins antes de levantar los servicios.
  3. Levanta todo con docker compose up -d
  4. Haz la instalación inicial accediendo a https://rss.tudominio.com
  5. Activa el API Fever y prueba apps como Reeder o Feather.

Consejillos y troubleshooting rápido

  • ¿No carga por HTTPS? Revisa que certbot tiene permisos de escribir los certificados y que nginx apunta a la ruta correcta.
  • Actualizaciones de FreshRSS/plug-ins: detén el servicio, actualiza los volúmenes freshrss_data y freshrss_extensions, y vuelve a levantar.
  • ¿El plugin Fever no responde? Comprueba que el directorio plugins tiene el código correcto y los permisos adecuados.

¡Dale vida a tus RSS!

Con este stack tienes un lector RSS robusto, seguro, abierto a plugins y listo para móvil, escritorio y web. ¡Sé el dueño de tu información!

Avatar

Por Mid