Installer un Tiny Tiny RSS sur un Raspberry Pi

Après avoir découvert les flux rss et son utilisation au quotidien, l’étape suivante c’est l’utilisation d’un service web en auto-hébergement. En effet, après avoir testé ce service sur une plateforme libre ou pas, l’intérêt c’est de ne pas dépendre d’une personne/asso qui vous héberge mais qui un jour peut arrêter ou d’une entreprise qui peut aussi arrêter mais surtout utiliser vos données pour faire du ciblage publicitaire ou autre. En outre, c’est bien l’objectif de Framasoft qui propose d’essayer des services comme Framanews dans l’objectif qu’ensuite on puisse l’installer à plus petite échelle (chez nous, en famille ou dans une asso locale).

Personnellement, je n’avais pas encore goûté à l’installation d’un serveur ni à l’auto-hébergement de quoi que ce soit mais j’avais à ma disposition, une relativement longue expérience de la gestion d’une page internet, une bonne maîtrise de Debian sans crainte d’utiliser la ligne de commande et un Raspberry Pi que j’utilisais plus ou moins avec succès comme centre multimédia (la gestion des DVD n’est pas toujours au top dans XBMC/Kodi). J’avais donc tout ce qu’il me fallait pour tenter l’expérience de monter un petit serveur et auto-héberger mon service web de flux rss.

Et là, tous les podcasts ou billets de blog que j’avais parcourus de façon plus ou moins distraite m’ont servi car pour faire tout ça, j’ai dû récupérer l’image de Raspbian et la mettre sur la carte SD, installer la distribution et la paramétrer en français, apprendre à me connecter en ssh, installer un serveur, installer Tiny Tiny RSS, mettre en place l’accès depuis internet, chercher à avoir un accès en https, bref, plein de petites barrières pour celui qui n’a jamais fait mais pour finalement me retrouver après quelques soirées à tâtonner avec quelque chose qui fonctionne exactement comme Framanews mais sur lequel j’ai entièrement la main. Et ça c’est bien agréable !

Mon but ici n’est pas de mâcher le travail et de donner un mode d’emploi clés en main car il y a plein de tutos pour faire tout ça mais d’expliquer un peu les différentes étapes ou problèmes rencontrés pour y parvenir et renvoyer vers les sites que j’ai utilisés.

Le choix du Raspberry Pi (un modèle B à 512Mo) n’est peut-être pas le plus pertinent pour un usage à long terme comme serveur car même si pour l’instant mes projets ne sont pas très lourds, je risque d’être rapidement limité et la carte SD ne va peut-être pas apprécier très longtemps les multiples écritures (je suis preneur de tout retour sur une utilisation à long terme) mais pour goûter à la chose, c’est vraiment optimal puisqu’on a un serveur minuscule qui se cache derrière un meuble, ne fait aucun bruit et consomme très peu d’énergie. L’étape suivante pour répondre à ces critères, qui sont importants pour moi, en ayant plus de puissance et de fiabilité, serait probablement de passer sur un brix. Mais cela me permet de goûter au truc sans investir, de tester, d’apprendre, et de me rendre compte que ça me plaît bien.

La première étape est de récupérer l’image de la distribution que l’on veut utiliser, baignant dans Debian, je choix de Raspbian (que j’avais pu tester avec NOOBS) est pour moi une évidence, il vaut mieux utiliser la dernière version officielle et ici la Jessie Lite est la plus appropriée car on va l’utiliser en tant que serveur et non de desktop.
Pour la mettre sur la carte SD, il est de rigueur d’utiliser la commande dd, je ne sais pas bien ce que j’ai bricolé (ma première image issue d’un lien d’un tuto ne devait pas être bonne) car une fois la copie faite, j’avais une partition inconnue. Au final, j’ai utilisé le très pratique gnome-disk-utility qui permet de créer ou installer une image, de formater, etc. en mode graphique. Nul besoin de préciser, qu’il faut bien vérifier que l’on est bien sur la carte SD et que l’on ne fait pas de bétises sur le disque dur de notre système (idem pour la commande dd).

Pour faire l’installation du système, j’ai branché le Raspberry sur mon écran (c’est possible sans, mais un peu plus chaud) et suivi le tuto de Raspbian-France qui est très bien foutu et permet de tout configurer pour être en français, en Azerty, changer le mot de passe, etc. tout comme il faut.

Ensuite, il faut apprendre à se connecter en ssh, ce qui veut dire démarrer le Raspberry et pouvoir l’administrer à partir d’un autre ordinateur. Là, ma galère a été que mon Pi ne se connectait pas toujours avec la même adresse IP en local et je ne comprenais pas pourquoi je n’arrivais pas à me connecter en me demandant si mon mot de passe était foireux. Le mieux, avant de débrancher l’écran, c’est de faire un ifconfig et de prendre en note l’adresse IP de la connection ainsi que l’adresse MAC (qui correspond au HWaddr) et de figer l’adresse IP avec l’adresse MAC dans la configuration de l’accès internet (faire une recherche baux permanents DHCP fixe avec votre modèle de box, pour moi, c’était un truc de ce genre).

Ensuite, pour se connecter en ssh (en supposant qu’il ait bien été activé sur le serveur par raspi-config et sur le poste d’accès par open-ssh, installé par défaut sur Debian), il suffit de faire :
ssh user@adresseIP
Soit quelque chose comme :
ssh pi@192.168.0.11
On entre le mot de passe pour le user (ici pi, dont le mot de passe par défaut est raspberry dont on aura pris soin de modifier) et on se retrouve ainsi :
pi@raspberrypi:~ $
Et on peut agir comme si on était dessus.

On va donc faire l’installation du serveur avec Apache, php et MySQL (mais on peut aussi choisir NGINX à la place de Apache et ProsgreSQL ou MariaDB à la place de MySQL selon les besoins ou les envies) tel qu’expliqué dans l’autre bon tuto de Raspbian-France.
Ensuite, on passe à l’installation proprement dite de Tiny Tiny RSS (ou d’un autre service de notre choix). Et alors que je m’apprétais à jouer du wget, tar, mv, chmod et autres joyeusetés en ligne de commande, un apt search tt-rss m’a indiqué qu’il y avait un paquet tout prêt dans Raspbian Jessie (alors qu’il n’est que dans testing et dans Sid pour l’instant sur PC). Donc il suffit d’un apt install tt-rss et tout se met en place comme il faut, avec choix du type de serveur, de base de donnée, du mot de passe et c’est prêt à fonctionner dans un navigateur sur l’adresse (en mettant l’IP qui va bien) :
192.168.0.11/tt-rss/

A partir de là, on peut créer un profil (il n’y a que le profil root par défaut) et importer son fichier opml avec tous les flux que l’on aura exporté du précédent lecteur de rss. On configure aussi la langue et l’intervalle de rafraîchissement des flux. Je n’ai même pas dû aller jouer avec le cron pour paramétrer ça.

Tout ça est bien beau mais on n’a pour l’instant accès à ses flux que depuis le réseau local. Il va donc maintenant falloir donner un accès internet au serveur afin de pouvoir y accéder de n’importe où (un PC extérieur ou un appareil mobile par exemple). Pour cela, on va faire du nating (merci les conférences de Benjamin Bayard), globalement, on va attribuer à l’adresse IP publique du routeur une destination sur un appareil du réseau local. Là, c’est encore sur l’administration de la box d’accès internet que cela se passe, il y a aussi éventuellement moyen de donner un nom de domaine à l’adresse publique pour éviter de se trainer le nom de l’IP. Toute cette configuration dépend du fournisseur d’accès et de la version de la box que l’on a.

Voilà où j’en suis et je dois dire que depuis une bonne dizaine de jours, le petit serveur fait son boulot comme il faut.

Ensuite, il va falloir s’intéresser à la sécurisation de la connexion afin de pouvoir accéder au serveur en https et ne pas tout laisser passer en clair sur le réseau les données auxquelles on accède depuis l’extérieur, installer ou essayer d’autres services web mais je suis en plein apprentissage et expérimentations qui donneront peut-être lieu à d’autres billets quand j’aurai fini de patauger dans la configuration du hosts.

Haut de page