Configurer Tiny Tiny RSS sur Debian Wheezy, et lire ses flux RSS sur Firefox OS

Il existe beaucoup de lecteurs de flux RSS, que ce soit sur ordinateur ou sur mobile.

Mais je voulais pouvoir centraliser la liste de mes flux, et synchroniser les articles lus/non lus, quel que soit l’appareil que j’utilise. Tout ça en auto-hébergement bien sûr. Pour cela, Tiny Tiny RSS (tt-rss) est parfait.

Mais son interface n’est pas bien adaptée sur un smartphone, donc j’utilise l’application FeedMonkey sur Firefox OS, qui sait s’y synchroniser.

tt-rss_logo_original_128 + feedmonkey-icon-128

Sommaire

Tiny Tiny RSS

C’est un excellent lecteur de flux RSS en mode web, que je vous recommande. Il est sous licence libre GPLv3, avec une interface web très bien léchée, et a toutes les fonctionnalités que j’attendais. Plus d’infos sur http://tt-rss.org/redmine/projects/tt-rss/wiki.

Cerise sur le gâteau : il a une option « minimiser l’usage du trafic » à la connexion, qui évite les aller-retours réseaux quand on le garde en arrière-plan (l’actualisation de la page ne se fait que quand on le demande). Pratique quand on utilise une connexion réseau dont il ne faut pas trop abuser.

Tiny Tiny RSS me parait très bien adapté à de l’auto-hébergement. Il a des concurrents plus légers en termes de consommation de ressources, mais qui ont moins de fonctionnalités. Pour mon besoin, c’est un bon compromis.  Il tourne raisonnablement bien sur mon Olinuxino A20, alors qu’il ramait un peu sur une sheevaplug.

Configuration de la mise à jour des articles

La seule difficulté d’installation est la configuration de la mise à jour des articles. La doc officielle http://tt-rss.org/redmine/projects/tt-rss/wiki/UpdatingFeeds dit d’utiliser :

php ./update.php --daemon (single process) or php ./update_daemon2.php (multi-process)

Et elle précise d’éviter de le faire sous le user root (pour des raisons de sécurité, effectivement). Mais elle n’explique pas comment faire ça facilement sous Debian Wheezy.

Heureusement, il se trouve que tt-rss a un package debian. Malheureusement pas pour la version Wheezy, mais pour la version « sid » de debian (c’est-à-dire celle qui est encore loin d’être stable). Plutôt que de réinventer la roue, j’en ai repris les scripts, en les adaptant à un tt-rss installé manuellement dans /var/www, et déjà configuré dans Apache.

En décompressant le fichier tt-rss_1.13+dfsg-1_all.deb (ou la dernière version en date), on peut y récupérer les fichiers /etc/init.d/tt-rss, /etc/default/tt-rss et /etc/logrotate.d/tt-rss

Il faut commencer par copier ces 3 fichiers tel quel dans l’arborescence de notre Debian Wheezy, puis les modifier :

/etc/init.d/tt-rss

Dans /etc/init.d/tt-rss, on ne touche pas au code, mais il faut modifier les valeurs de quelques variables en début de fichier :

Remplacer :

PIDFILE=/var/lib/tt-rss/update_daemon.lock

par :

PIDFILE=/var/www/tt-rss/lock/update_daemon.lock

et remplacer les /usr/share/tt-rss/www par /var/www/tt-rss dans les répertoires du daemon :

Remplacer :

DAEMON="/usr/share/tt-rss/www/update.php"
DAEMON_ARGS="--daemon"

if [ "$FORKING" != "0" ]; then
    DAEMON="/usr/share/tt-rss/www/update_daemon2.php"
    DAEMON_ARGS=""
fi

LOADER=/usr/bin/php
DAEMON_DIR="/usr/share/tt-rss/www"

par :

DAEMON="/var/www/tt-rss/update.php"
DAEMON_ARGS="--daemon"

if [ "$FORKING" != "0" ]; then
    DAEMON="/var/www/tt-rss/update_daemon2.php"
    DAEMON_ARGS=""
fi

LOADER=/usr/bin/php
DAEMON_DIR="/var/www/tt-rss/lock"

 /etc/default/tt-rss

Dans /etc/default/tt-rss, il faut simplement activer le daemon :

DISABLED=0

 /etc/logrotate.d/tt-rss

Rien à modifier dans ce fichier

 

Ensuite on peut installer le service :

update-rc.d tt-rss defaults

Puis le démarrer :

service tt-rss start

Et voilà! Vous pouvez surveiller les logs dans /var/log/tt-rss.log

Attention à ne pas se faire avoir avec les permissions des répertoires : il faut que tout le répertoire /var/www/tt-rss (et ses sous-répertoires) ait pour owner www-data, de sorte que le contenu puisse être accessible en mis à jour par le daemon. Si nécessaire :

chown -R www-data:www-data /var/www/tt-rss

 

Réduction de la fréquence de mise à jour

Par défaut, je trouve que tt-rss est un peu « agressif » dans sa stratégie de mise à jour. Évidemment, ça permet d’avoir les nouveaux articles au plus vite, mais c’est au détriment d’une consommation de ressources importantes : CPU sur le serveur, réseau entre le serveur et les machines qui hébergent les flux RSS, réseau entre le serveur et le client web.

Personnellement, j’ai donc préféré réduire certaines fréquences de mise à jour.

Hélas, ce ne sont pas des paramètres externalisés dans tt-rss. Donc si vous modifiez comme moi ces valeurs, il faudra le refaire à chaque mise à jour de tt-rss.

Sur le serveur

Par défaut, les flux RSS sont tous interrogés toutes les 2 minutes. On peut choisir un délai différent dans l’IHM de tt-rss, flux par flux. J’ai préféré passer ce délai par défaut à 10 minutes, qui est donc appliqué à tous mes flux automatiquement.

Ca se passe dans le fichier include/rssfuncs.php : passer la valeur DAEMON_SLEEP_INTERVAL de 120 à 600 secondes

define_default('DAEMON_SLEEP_INTERVAL', 600);

Sur le client web

Par défaut, le client web interroge le serveur toutes les minutes (sauf si on activé le mode « minimiser l’usage du trafic » : dans ce cas l’interrogation est déclenchée par l’utilisateur). J’ai préféré passer ce délai à 15 minutes.

C’est dans le fichier js/tt-rss.js :

setTimeout("timeout()", 15*60*1000);

Optimisation des performances en désactivant la détection de la langue

Par défaut, tt-rss essaie sur chaque article de détecter quelle langue est utilisée, pour configurer la césure des mots dans cet article.

Le problème, c’est que cette fonctionnalité consomme beaucoup de CPU : http://tt-rss.org/redmine/issues/779. Quand on a un serveur peu puissant, ça me semble une fonctionnalité dont on peut largement se passer.

Un paramètre a été introduit en version 1.10, qui permet de désactiver la détection de la langue des articles. Dans le fichier config.php :

define('DETECT_ARTICLE_LANGUAGE', false);

 

Lecture des flux sur Firefox OS

ttrss-mobile

J’ai longtemps utilisé le projet ttrss-mobile.  C’est une petite application PHP qui utilise l’API JSON de tt-rss, pour exposer une IHM adaptée aux smartphones.

ttrss-mobile marche très bien, mais je l’ai finalement abandonné pour plusieurs raisons :

  • il ne permet pas la lecture hors-ligne
  • la saisie du login/mdp et les fréquents aller-retours avec le serveur rendent son utilisation un peu lourde au quotidien
  • le projet ne semble plus très actif

FeedMonkey

feedmonkey-icon-128

Cette application existe depuis longtemps sur le MarketPlace de Mozilla, mais il y avait jusqu’à peu des bugs qui la rendaient inutilisable pour moi : https://github.com/jeena/FeedMonkey/issues?q=is%3Aissue+author%3Amossroy

En particulier, j’ai corrigé le bug qui était le plus gênant pour moi, car il bloquait les mises à jour d’articles au bout de 24h : https://github.com/jeena/FeedMonkey/issues/30

Bref, maintenant, ça marche bien.

Ce qu’il faut savoir, c’est que FeedMonkey ne stocke actuellement pas votre mot de passe (uniquement l’URL du serveur et le login). C’est bien pour la sécurité. Par contre, si vous ne voulez pas avoir à re-saisir le mot de passe trop souvent, je vous conseille d’augmenter la durée de vie de la session du serveur, dans le fichier config.php de tt-rss :

Remplacer la durée de 24h :

define('SESSION_COOKIE_LIFETIME', 86400);

Par une durée d’une semaine (par exemple) :

define('SESSION_COOKIE_LIFETIME', 604800);

FeedMonkey est assez minimaliste dans son interface et dans ses fonctionnalités, mais c’est ce qui le rend efficace à mon goût. Il est très rapide et va à l’essentiel.

FeedSpider

feedspider_app_icon

J’ai découvert FeedSpider à travers l’article d’Olivier Delort : http://blog.olivierdelort.net/?p=1418

Il est sur le Marketplace, et il marche très bien aussi.

FeedSpider a bien plus de fonctionnalités que FeedMonkey, en particulier l’accès par catégories, plus d’options, l’ajout de flux RSS etc.

Mais il m’a semblé plus lent (il fait apparemment + d’aller-retours serveurs), et un peu plus lourd à l’utilisation.

Techniquement, il stocke votre mot de passe dans le localStorage (cf https://github.com/OthelloVenturesLtd/FeedSpider2/blob/68f7aafb0d345a99974e4c0a94229473939ef8e3/source/data/credentials.js). Ce n’est pas gravissime mais ça aurait été bien de prévenir l’utilisateur (et de lui laisser le choix). Et puis c’est dommage qu’il soit stocké en clair. A ce propos, stocker des informations cryptées fait partie des améliorations demandées à la plateforme Firefox OS par les développeurs : https://openwebapps.uservoice.com/forums/258478-open-web-apps/suggestions/6190136-encrypted-indexeddb

Bref, pour l’instant je reste sur FeedMonkey, mais ce FeedSpider est très complet fonctionnellement. J’y passerai peut-être un jour.

TE-Reader

te-reader-icon

Je l’ai trouvé par hasard sur le Marketplace. Mais je n’ai pas trouvé le code source, ni la licence. J’ai posé la question : http://www.apps.meissel.com/?p=12#comment-13

En attendant, je n’ai pas testé donc n’ai pas encore d’avis dessus.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *