Installation d'un premier service en auto-hébergement

La première raison de vouloir m’auto-héberger est de gérer mon propre service de flux rss (les épisodes précédents en ont parlé en long, en large et en travers). J’avais d’ailleurs commencé par le faire sur le Raspberry Pi pour lequel j’avais d’ailleurs trouvé un paquet ttrss dans les dépôts de Raspbian qui m’avaient facilité la vie.

Ce paquet n’est pas présent dans Debian stable (seulement à partir de testing), mais comme on est là pour apprendre, et bien il va falloir faire ça à la main.
Je rappelle que j’ai choisi apache, php5, MariaDB et Tiny-Tiny RSS sur Debian stable, chaque choix pouvant donner lieu à de multiples débats mais correspondants à mes connaissances et besoins du moment, et disons parmi les choix les plus mainstream et documentés. Ce n’est qu’un exemple pour la démarche.

On commence donc par aller sur la page officielle du projet concernant l’installation. ça nous dit bien qu’il faut avoir une base de donnée et php > 5.4 avec si possible un accélerator comme php-apc, un petit apt search php*-apc nous renseigne sur les paquets dispo et à installer s’ils ne le sont pas.

Il est dit que la base doit déjà être créée, c’est souvent pris pour acquis dans toutes les installations de services web et la première fois, on ne sait ni pourquoi ni comment (et dans le meilleur des cas, on tombe sur un message d’erreur qui nous dit que la base n’existe pas ou que son accès est impossible), ce qui veut dire qu’il faut faire un truc du genre :
$ mysql -u root -p
ça nous fait rentrer dans la gestion des bases de données et ensuite (pour créer une table nommée ttrss en local, seul le mot de passe est à adapter) :
mysql> CREATE DATABASE ttrss;
mysql> GRANT ALL PRIVILEGES ON ttrss.* TO "ttrss"@"localhost" IDENTIFIED BY 'somepassword';
mysql> exit

La partie installation du service n’est pas ce qu’il y a de plus compliqué, ça se fait généralement par un git.
Ce qui n’est jamais expliqué, c’est où il faut coller ça parce qu’on a le choix de le faire où ça nous plaît mais ensuite il faudra que ça arrive directement ou par un lien dans /var/www/
Il faudra aussi généralement changer le propriétaire et les droits sur les fichiers sinon ils ne pourront être modifiés par l’application, à savoir dans un cas très général de base pour apache :
#chown -R www-data:www-data /var/www/tt-rss
#chmod -R 755 /var/www/tt-rss

Une fois que c’est fait, on pourra (en principe) accéder au service à partir d’un navigateur. Avant cela, il faut s’assurer que le serveur web pointe bien sur le service en question dans /etc/apache2/sites-availables/000-default.conf qui pointe par défaut sur /var/www/html (rappel, on est toujours dans le cas de la mise en place d’un premier service, quand il y en a plusieurs, ça se complique). Et donc on peut lancer dans le navigateur, l’adresse IP locale du serveur ou l’adresse IP publique si on a configuré le NAT chez son fournisseur d’accès (cf. le billet de l’installation sur Raspberry).

Si le site s’affiche bien, on peut entrer avec le user/mot de passe par défaut (admin/password) que l’on va s’empresser de changer et éventuellement créer un compte utilisateur. On peut s’amuser un peu à paramétrer le service, importer ses flux rss avec un fichier .opml, tout ça, mais ce n’est pas fini !

Il faut encore que les flux soient visités régulièrement et pour ça, il faut créer une tâche qui va s’en occuper comme le précise la partie UpdatingFeeds du guide d’installation. Encore une fois, ce service est un exemple-type car créer un daemon qui va s’occuper de choses en arrière plan, c’est assez courant et on suppose que ça ne pose aucun problème.

Il est possible de créer un cron qui va être déclenché régulièrement pour s’en occuper mais on nous dit aussi qu’un daemon SystemD peut très bien faire ça et on a le code à coller pour que ça marche.
Sauf que la première fois, on ne sait pas trop où aller coller ça. En fait, ça se passe dans /etc/systemd/system dans lequel on va créer un fichier qui se nomme par exemple ttrss-update.service et y coller ce qui nous est recommandé (ou l’adapter si c’est un exemple pour un type de serveur ou de distro). Une fois le fichier créé, pour le démarrer  :
#systemctl start ttrss-update.service
et pour lancer le service au démarrage :
#systemctl enable ttrss-update.service
Si on a des messages bizarres, ce n’est pas bon signe et il faut probablement corriger le fichier .service, on peut éventuellement vérifier l’état du service avec la commande
systemctl status ttrss-update.service

Bon, une fois passées toutes ces étapes, on a un service fonctionnel. Pas si évident quand même. Beaucoup moins qu’un paquet qui s’occupe de créer la base, de tout installer et de la mise à jour des flux.

Après, il est toujours possible de mettre tout ça en https avec letsencrypt, mais il y a pas mal de tutos qui expliquent tout ça et il va falloir aller bidouiller dans le Virtual Host, et ça c’est au programme des découvertes lors de la mise en place d’un deuxième service.

Haut de page