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
- Personalizar
nginx.conf
para tu dominio y HTTPS (ver ejemplo en la wiki oficial). - Instalar el plugin Fever arrastrando la carpeta a
plugins
antes de levantar los servicios. - Levanta todo con
docker compose up -d
- Haz la instalación inicial accediendo a https://rss.tudominio.com
- 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 quenginx
apunta a la ruta correcta. - Actualizaciones de FreshRSS/plug-ins: detén el servicio, actualiza los volúmenes
freshrss_data
yfreshrss_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!