[TUTO] Agrégateur de flux RSS "FreshRSS".

Nous allons mettre en place dans ce tutoriel un agrégateur de flux RSS dénommé "FreshRSS", accessible par un sous-domaine. Pour ce tutoriel, nous utiliserons la branche beta disponible. Libre à vous d'utiliser la release stable, si vous le préférez.
FreshRSS est un agrégateur de flux RSS à auto-héberger à l’image de Kriss Feed ou Leed. Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable.
Vous trouverez des compléments d'information sur le site officiel, ainsi que sur github et sur la documentation affiliée.
Nous partons du principe que votre installation répond aux pré-requis suivants :

- Nginx
- Php
- Mysql

1°) Mise à jour du système :
aptitude update && aptitude safe-upgrade -y
2°) Installation de FreshRSS :
cd /var/www/
git clone git://github.com/marienfressinaud/FreshRSS.git
3°) Affectation des droits :
chown -R www-data:www-data FreshRSS
4°) Configuration du vhost Nginx en sous-domaine (à adapter selon vos besoins) :
server {
    listen 80;
    server_name freshrss.mondomain.tld;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name freshrss.mondomain.tld;

    ssl on;
    ssl_certificate /etc/nginx/keys/freshrss.mondomain.tld.crt-unified;
    ssl_certificate_key /etc/nginx/keys/freshrss.mondomain.tld.key;

   root /var/www/FreshRSS/p/;

   index index.php index.html;

  access_log /var/log/nginx/freshrss-access.log;
  error_log /var/log/nginx/freshrss-error.log;

  location ^~ /data {
      deny all;
   }

   location / {
      try_files $uri $uri/ index.php;
   }

   location ~* \.php$ {
        include       /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}
Une fois le vhost renseigné, on redémarre Nginx :
service nginx restart
6°) Création de la base de données :
mysql -u root -p

mysql > CREATE DATABASE freshrss;
mysql > CREATE USER 'freshrss'@'localhost' IDENTIFIED BY 'votre_mot_de_passe';
mysql > GRANT USAGE ON *.* TO 'freshrss'@'localhost';
mysql > GRANT ALL PRIVILEGES ON freshrss.* TO 'freshrss'@'localhost';
mysql > FLUSH PRIVILEGES;
mysql > exit
7°) Configuration de FreshRSS :

On se rend à l'adresse de notre sous-domaine (freshrss.mondomaine.tld) et l'on suit les étapes indiquées :

- Choix de la langue :



- Vérifications de la configuration :



- Création de l'utilisateur :



Plusieurs méthodes d'authentifications sont disponibles, à savoir :
Formulaire (traditionnel, requiert javascript)
Mozilla Persona (moderne, requiert javascript)
Aucune (dangereuse)
Choisissez celle qui vous convient. Personnellement, j'ai opté pour "Formulaire".

- Configuration de la base de données :

On renseigne les paramètres mysql renseignés plus-haut :



Puis on finalise l'installation et vérifie que tout est correctement configuré :



8°) Configuration de FreshRSS :

Vous n'avez plus qu'à vous rendre dans les paramètres et importer vos flux RSS préférés !

L'interface est vraiment agréable et bourrée de fonctionnalités intéressantes (notification, plusieurs thèmes, différentes listes de vue, etc.) que je vous laisse le soin de découvrir. Ayant testé auparavant Selfoss, je suis éminemment convaincu par FreshRSS.

Une petite capture d'écran du résultat :



9°) BONUS :

Afin de gérer le rafraîchissement de vos flux, nous allons ajouter une tâche cron :
crontab -e
# Mise à jour FreshRSS
*/15 * * * * /usr/bin/php /var/www/FreshRSS/app/actualize_script.php >>/tmp/FreshRSS.log
Ici, les flux seront mis à jour toutes les 15 minutes, et le résultat sera écrit dans le fichier "/tmp/FreshRSS.log" afin de vérifier que cette dernière s'exécute correctement.

Toutefois, j'ai l'impression que le rafraîchissement ne se déroule pas toujours correctement. Ce point est donc à creuser.


Si vous avez des questions, des suggestions, n'hésitez pas à m'en faire part sur le sujet de discussion.
Répondre…