Connexion Premium

[Tuto] Héberger un lecteur RSS et migrer depuis Feedly, avec astuces et Wallabag en bonus

[Tuto] Héberger un lecteur RSS et migrer depuis Feedly, avec astuces et Wallabag en bonus

Illustration : Flock

Installer un agrégateur de flux RSS sur un serveur maison est assez simple. Next vous détaille les étapes et vous donne quelques astuces pour en profiter au mieux, notamment avec une intégration Wallabag pour sauvegarder des articles à lire plus tard.

Dans la série je récupère la souveraineté de mes données, Next vous explique comment procéder avec un serveur privé virtuel (VPS) à quelques euros par mois. Nous avons déjà évoqué le gestionnaire de mots de passe Vaultwarden et, bien évidemment, le renforcement de la sécurité. Ou, plus récemment, l’installation d’Immich, pour héberger et gérer ses photos de façon indépendante.

Une autre application qui consomme peu de ressources est FreshRSS, un gestionnaire de flux RSS gratuit et libre. On vous explique comment l’installer pas à pas, avec en bonus, Wallabag, une alternative à Pocket en autohébergement.

Première chose, se connecter à notre VPS via PuTTY. Si vous avez suivi nos tutos, normalement pas besoin de mot de passe, c’est directement avec votre clé. Nous créons ensuite un répertoire dédié à FreshRSS et Wallabag et entrons dedans :

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

Créer un seul conteneur avec FreshRSS et Wallabag

Docker est une nouvelle fois exploité ici, avec deux conteneurs, un pour chaque application. Nous allons pour cela créer un seul fichier docker-compose.yml avec les informations suivantes :

nano docker-compose.yml

services:
  freshrss:
    image: freshrss/freshrss:latest
    container_name: freshrss
    restart: unless-stopped
    volumes:- freshrss_data:/var/www/FreshRSS/data
- freshrss_extensions:/var/www/FreshRSS/extensions
    environment:- TZ=Europe/Paris
- CRON_MIN=*/15
    ports:-"127.0.0.1:8090:80"

  wallabag:
    image: wallabag/wallabag
    container_name: wallabag
    restart: unless-stopped
    ports:-"127.0.0.1:8092:80"
    environment:- SYMFONY__ENV__DOMAIN_NAME=https://wallabag.xxx.yyy
    volumes:- wallabag_data:/var/www/wallabag/data
- wallabag_images:/var/www/wallabag/web/assets/images

volumes:
  freshrss_data:
  freshrss_extensions:
  wallabag_data:
  wallabag_images:

Quelques explications. La structure du fichier montre bien les deux services FreshRSS et Wallabag, avec leurs options. Le restart: unless-stopped permet de redémarrer le service automatiquement en cas de reboot du serveur par exemple. Pour FreshRSS, le CRON_MIN=*/20 permet de rafraîchir les flux toutes les 20 minutes (enfin en théorie).

La variable SYMFONY__ENV__DOMAIN_NAME=https://wallabag.xxx.yyy permet de donner l’URL de wallabag sur votre serveur pour que les liens envoyés par email ou autre soient au bon format, et pas avec une URL cassée avec par exemple du localhost dedans.

Maintenant, lançons les conteneurs, avec une seule ligne de commande :

sudo docker compose up -d

Deux noms de domaines, Caddy s’occupe du reste (notamment de Let’s Encrypt)

Vous avez peut-être deviné la suite si vous avez suivi nos précédents tutos : on modifie Caddy pour que notre nom de domaine renvoie vers le bon service. L’avantage étant d’avoir une version HTTPS sécurisée automatique avec Let’s Encrypt.

Avant cela, rendez-vous dans la page d’administration de votre registraire pour définir deux redirections : rss.xxx.yyy et wallabag.xxx.yyy vers l’adresse IP de votre VPS (ce sont des enregistrements DNS de type A pour être précis). Vous pouvez évidemment prendre un autre sous domaine, pensez juste à adapter la suite du tuto.

sudo nano /etc/caddy/Caddyfile

rss.xxx.yyy {
    reverse_proxy 127.0.0.1:8090
}

wallabag.xxx.yyy {
    reverse_proxy 127.0.0.1:8092
}

Maintenant il ne reste qu’à relancer Caddy pour qu’il prenne en compte les modifications :

sudo systemctl reload caddy

Exportez vos données Feedly, importez-les dans FreshRSS

FreshRSS est directement accessible via rss.xxx.yyy et Wallabag via wallabag.xxx.yyy. Allez-y et configurez les deux applications. Changez au plus vite le mot de passe du compte admin wallabag qui est par défaut… wallabag (comme l’identifiant).

Si vous utilisez Feedly, vous pouvez exporter vos données au format OPML. Rendez-vous sur l’interface et cliquez sur les « … » à côté de Feeds, puis sur Organize Feeds. À côté du gros bouton Import OPML, une petite flèche plus discrète permet d’accéder à la page d’Export, aussi directement accessible via cette adresse.

Il reste 54% de l'article à découvrir.

Cadenas en colère - Contenu premium

Soutenez un journalisme indépendant,
libre de ton, sans pub et sans reproche.

Accédez en illimité aux articles

Profitez d'un média expert et unique

Intégrez la communauté et prenez part aux débats

Partagez des articles premium à vos contacts

Commentaires (21)

votre avatar
Merci :)
J'utilise déjà un fichier similaire, mais avec une base postgres mais sans wallabag (que je connaissais pas).

Par contre, je ne vois pas la partie backup & restore du volume : y a une solution plus simple que ce que je fais (à savoir un script lancer via docker run qui se charge de faire un tar sur un nouveau conteneur ayant les mêmes volumes que le conteneur FreshRSS) ?
votre avatar
Perso, j'utilise Tiny Tiny RSS qui fait bien le boulot et très simplement configurable (si on utilise docker), et ils détaillent le process pour la mise en place de sauvegardes :
https://tt-rss.org/docs/Installation-Guide.html

Je vais investiguer le coup de l'useragent car pour tt-rss, j'ai parfois des soucis et je feinte en récupérant manuellement le flux via curl (et là ça fonctionne…) et en le mettant en ligne sur une URL que je référence dans tt-rss (c'est sale mais ça marche :D)

Par contre, y a des sites "protégés" via Cloudflare et autres dispositifs qui bloquent aussi les flux RSS et là, y a pas trop de solution, j'ai eu le cas par exemple pour les flux RSS de notif de mise à jour des plugins WordPress : https://plugins.trac.wordpress.org/
votre avatar
Pour la protection Cloudflare, faut voir s'il est possible d'interfacer Tiny Tiny RSS avec Flaresolverr. Côté FreshRSS il existe une extension permettant de le faire.
votre avatar
OoOoOooohh j'avais jamais vu cette extension pour FreshRSS.

En compensation des RSS pétés à cause de Cloudflare, j'utilisais ChangeDetector et son mode selenium justement.

À tester, merci pour le tuyau. :yes:
votre avatar
À noter que l'extension résout le blocage au moment de la récupération du flux, mais pas lorsque FreshRSS extrait le contenu (lorsqu'un sélecteur HTML est saisi dans "Récupération de contenu" → "Sélecteur CSS des articles sur le site d’origine"). Il y a un ticket ouvert sur le sujet, mais aucune réponse du mainteneur.
votre avatar
J'ai FreshRSS sur mon Synology et c'est le pied. Par contre, j'ai ajouté l'extention ThreePaneView (que j'ai un peu modifiée de mémoire, mais je ne sais plus quels fichiers j'ai touché ; je crois que c'était pour changer le ratio du panneau latéral droit)... mes lectures de fils sont vraiment hyper facilitées, comme ça.
Cf. https://framagit.org/nicofrand/xextension-threepanesview
votre avatar
Je ne suis pas sûr que ce soit une bonne idée de conseiller de changer le user agent par défaut de FreshRSS. Je conseillerai plutôt de le changer dans les paramètres du flux qui pose problème (sous "Avancé" => "Sélectionner l’agent utilisateur pour télécharger ce flux")
votre avatar
FreshRSS avec les clients NetNewsWire ici.
votre avatar
J'utilise FreshRSS depuis très longtemps (~10 ans je pense maintenant) et j'en suis très content.
Je suis passé par google reader, feedly, ttrss (instance framasoft), selfoss (auto-hebergé) avant d'en arriver et rester sur FreshRSS ^^.
Wallabag j'avais essayé mais je n'ai pas pris le réflexe.

Je n'ai jamais rencontré de problème avec l'user-agent par défaut. Changer le user-agent de cette manière est absolument overkill et je pense nuis à l'aspect tuto/vulgarisation de l'article.
Une petite note sur la possibilité que certains serveurs répondent bizarrement en fonction de l'user agent accompagné d'une explication sur comment ajuster l'user agent d'un flux serait plus adéquat (c'est possible dans les paramètres avancé du flux).

Le snippet d'illustration en php gagnerai à être fait avec de simple commande curl en bash (surtout avec les soucis d'indentation de blocs de code).




Merci de rappeler que RSS existe et d'aider plus de monde à s'y mettre.

Il me semble que mon premier usage des Flux RSS était via Opera, mais l'absence de synchronisation des flux entre appareils était peu pratique.
Si il y en a qui utilise Vivaldi, je les invite à donner une chance aux Flux RSS via cet outil, un bon lecteur de flux local. Il ne sera jamais trop tard pour basculer sur un gestionnaire de flux en ligne (et si possible auto-hebergé) à terme ;-)
votre avatar
je suis sur ttrss (lié a rssGuard en local), principalement car freshrss et consorts ne gère pas les sous-dossiers de flux (u_u )
votre avatar
Il est vrai que FreshRSS ne supporte que l'organisation par Catégorie. Le nom des catégories est libre donc on peut s'amuser à faire des noms type Level1/Level2 mais bien sur il n'y aura pas la possibilité de filtrer simplement une catégorie et ses "sous-"catégorie. Ça n'est qu'une convention de nommage.
votre avatar
Ça me paraît très compliqué.
J'ai mes flux en local avec Feedbro, et j'ai exporté le fichier opml pour l'avoir sur mobile avec Capy Reader.
Qu'est-ce que je rate ?
votre avatar
Je n'ai pas compris le but d'utiliser des rss sur un serveur? Pourquoi ne pas juste utiliser un client qui fait les requête lui-même?
votre avatar
Le principal avantage que je vois, c'est qu'on peut synchroniser la liste des flux et l'état de sa lecture sur différents clients. Dans le cas de FreshRSS et d'autres solutions auto-hébergeable, j'ajouterai la possibilité d'augmenter leur capacité avec des extensions, de récupérer le contenu complet des articles et, comme le montre l'article, d'intégrer des services externes (Wallabag, Readeck, LinkWarden) directement dans l'agrégateur de flux.
votre avatar
Tout à fait, pour moi le suivi de lecture synchronisé est la fonctionnalité la plus importante.

Après, le prochain sujet c'est l'overdose de contenus, d'abord pour le SEO et ensuite boostés à la rédaction assistée par l'IA. Perso, j'ai rajouté peu de sources ces dernières années, pourtant je suis du simple au double en termes de contenus proposés.

Plus ça va et plus il faut donc étudier des systèmes de filtres et de recoupements pour faciliter la curation quotidienne. C'est d'ailleurs un peu l'orientation que prend Feedly aujourd'hui (sur sa version payante, bien évidemment). Ce sera sûrement l'orientation des prochains outils RSS self-hosted aussi (LLM embarqué ou clé d'API)
votre avatar
Les flux rss ne contiennent que les « n » derniers articles (par exemple 10), pour un site avec pas mal d’actu, la limite peut être vite atteinte et donc il faut récupérer régulièrement le flux sinon on peut louper certains articles, le serveur, lui, tourne h24.

Et comme indiqué par d’autres, ça permet une synchronisation des lectures entre périphériques.
votre avatar
J'utilise FreshRSS depuis un bail, mais de manière moins propre (mais plus rapide) que décrite : dossier décompressé dans /var/www, action cron pour aller chercher les mises à jour, et le tour est joué. Si on a déjà un serveur web avec PHP qui tourne, faut pas se compliquer la vie ;)
votre avatar
C'était aussi ma méthode avant de migrer mon infra full-docker. Ça marche très bien.
votre avatar
Moi j'ai un TT-RSS qui tourne depuis une éternité (depuis la fin de my.yahoo, donc au moins 15 ans), mais, intrigué par FreshRSS présenté ici, j'ai regardé une comparaison des deux et, ô surprise, TT-RSS est abandonné !... Un petit tuto sur la migration TT-RSS -> FreshRSS ? :D
votre avatar
non non, il est toujours en développement, il a juste changé de main =)
votre avatar
Nextcloud app : News côté serveur
Nextcloud News côté client Android (sinon lecteur web intégré)

Chaque user à son flux et zou
Jamais regardé à partager par contre :)