Installer FreshRSS sur Debian 11 avec un serveur Web Apache2
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à installer FreshRSS sur une machine sous Debian 11 où nous allons déployer le serveur Web Apache 2, le moteur de scripts PHP ainsi que MariaDB pour la base de données de l'application.
Pour rappel, FreshRSS est un agrégateur de flux open source que vous pouvez installer sur un NAS, un Raspberry Pi, un serveur Web Linux, etc... Il y a plusieurs façons différentes de déployer cette application. Il existe également un container Docker.
Pour en savoir plus sur cette application et la configuration, je vous recommande de lire l'article suivant (ce qui m'évitera de me répéter) :
Si l'on se réfère aux prérequis listés sur le GitHub officiel de FreshRSS, nous avons besoin des éléments suivants pour réaliser une installation manuelle :
- Serveur Web : Apache2 (recommandé), Nginx ou Lighttpd
- Version de PHP : 7.0+ ainsi que plusieurs extensions (cURL, XML, JSON, MySQL, GMP)
- Serveur de bases de données : MySQL 5.5.3+ ou MariaDB, ou SQLite 3.7.4+, ou PostgreSQL 9.5+
II. Installation du serveur Web : Apache, PHP, base de données
Je ne vais pas détailler pas à pas cette partie, car j'ai déjà mis en ligne un article sur la mise en place d'un serveur LAMP sous Debian 11, dont voici le lien :
Toutefois, voici les commandes à exécuter pour mettre en place le socle nécessaire à l'installation de FreshRSS.
A. Installation d'Apache2
Mise à jour du cache des paquets :
sudo apt-get update
Installation d'Apache2 et activation du démarrage automatique :
sudo apt-get install -y apache2 sudo systemctl enable apache2
Activation des modules essentiels d'Apache2 : rewrite, deflate, headers, ssl (pour passer le site en HTTPS)
sudo a2enmod rewrite sudo a2enmod deflate sudo a2enmod headers sudo a2enmod ssl
Redémarrage Apache2 :
sudo systemctl restart apache2
B. Installation de PHP 7.4
Installation de la dernière version de PHP 7.4 disponible dans les dépôts de Debian 11 :
sudo apt-get install -y php
Installation de modules supplémentaires :
sudo apt-get install -y php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-gmp
Redémarrage Apache2 :
sudo systemctl restart apache2
C. Installation de MariaDB
Installation d'un serveur MariaDB pour stocker la base de données SQL de l'application. Vous pouvez aussi utiliser MySQL ou pourquoi pas SQLite.
sudo apt-get install -y mariadb-server
Sécurisation de base du serveur MariaDB, notamment pour définir le mot de passe "root" :
sudo mariadb-secure-installation
À partir de là, Apache2, PHP et MariaDB sont installés sur notre serveur Debian 11 !
III. Installation pas-à-pas de FreshRSS
A. Créer une base de données pour FreshRSS
Nous devons créer une base de données spécifique à FreshRSS. En complément, un utilisateur dédié à FreshRSS sera créé et il aura des droits uniquement sur cette base de données. Commençons par nous connecter à notre instance MariaDB :
sudo mariadb -u root -p
Saisissez le mot de passe "root". Ensuite, on crée une base de données pour FreshRSS. Dans cet exemple, elle s'appelle "web_freshrss".
CREATE DATABASE web_freshrss;
Puis, on crée un utilisateur nommé "admbdd_freshrss" avec le mot de passe "Votre-Super-Mot-De-Passe" :
CREATE USER 'admbdd_freshrss'@'localhost' IDENTIFIED BY 'Votre-Super-Mot-De-Passe';
Ensuite, on ajoute les droits à ce nouvel utilisateur sur la base de données que l'on a créée précédemment et on nettoie les droits :
GRANT ALL PRIVILEGES ON web_freshrss.* TO admbdd_freshrss@localhost; FLUSH PRIVILEGES;
Enfin, on quitte le shell MariaDB, car nous avons terminé :
EXIT;
B. Télécharger et installer FreshRSS
Nous allons récupérer les sources d'installation de FreshRSS directement à partir du GitHub en clonant le projet. Pour cela, nous avons besoin du paquet Git :
sudo apt-get install -y git
Une fois que c'est fait, nous pouvons cloner le projet avec la commande "git clone" en précisant le chemin du projet. On va télécharger les données dans "/tmp" puisque ce n'est que temporaire.
cd /tmp
git clone https://github.com/FreshRSS/FreshRSS
Puis, on va déplacer le dossier "FreshRSS" à la racine de notre serveur Web avec la commande "mv" :
sudo mv /tmp/FreshRSS /var/www/html/
Cela signifie que pour accéder à FreshRSS, il sera nécessaire d'utiliser une URL comme celle-ci :
http://<adresse IP du serveur>/FreshRSS
Cela s'explique par le fait que la racine du site par défaut d'Apache2 est "/var/www/html" et que notre applicatif est stocké dans un sous-dossier. Pour ajuster cette configuration, vous pouvez modifier le fichier "/etc/apache2/sites-enabled/000-default.conf" et changer la valeur de la directive DocumentRoot.
Les données sont déplacées à la racine du site Web par défaut d'Apache2 mais il nous reste à ajuster les droits.
Tout d'abord, nous devons définir l'utilisateur d'Apache2 comme propriétaire :
sudo chown -R www-data:www-data /var/www/html/FreshRSS
Puis, appliquer les permissions "644" sur les fichiers et "755" sur les dossiers. Je ne veux pas voir de permissions style "777" ... Cela s'effectue avec les commandes ci-dessous.
Pour les fichiers, exécutez cette commande :
sudo find /var/www/html/FreshRSS -type f -exec chmod 644 {} \;
Pour les dossiers, exécutez cette commande :
sudo find /var/www/html/FreshRSS -type d -exec chmod 755 {} \;
Voilà, passons à la finalisation de l'installation !
C. Finaliser l'installation de FreshRSS
La suite et fin de l'installation s'effectue en mode web avec le navigateur ! Connectez-vous à votre FreshRSS de cette façon :
http://<adresse IP du serveur>/FreshRSS http://<nom de domaine>/FreshRSS
La première étape consiste à choisir la langue.
Ensuite, l'étape "Vérifications" s'affiche : tout doit être vert afin de pouvoir continuer. Si ce n'est pas le cas, c'est probablement qu'il vous manque une extension pour PHP (voir la liste commande précédente). Sinon, poursuivez.
L'étape n°3 consiste à indiquer les informations pour se connecter à la base de données : hôte (localhost car c'est le serveur local), nom de l'utilisateur pour se connecter, son mot de passe, le nom de la base de données et un préfixe pour les tables (utilisez autre chose que "freshrss" ou "rss"). Réutilisez les valeurs choisies lors de la création de la base de données.
Enfin, l'étape n°4 consiste à créer un compte utilisateur qui sera administrateur de l'instance FreshRSS. Définissez un nom d'utilisateur et un mot de passe !
Cliquez sur "Terminer l'installation" si tout s'est bien passé !
IV. Conclusion
Voilà, FreshRSS est installé sur votre serveur Debian ! Par défaut, le flux RSS du GitHub correspondant aux versions de FreshRSS est intégré. Il ne vous reste plus qu'à ajouter vos premiers flux RSS ! Consultez l'article d'installation de FreshRSS sur un NAS Synology (lien en début d'article) pour en savoir plus sur l'utilisation et la configuration post-installation.
Pour aller plus loin, vous pouvez mettre en place un certificat SSL sur votre serveur Web pour passer sur une connexion HTTPS avec un certificat vérifié. Vous pouvez utiliser Let's Encryt, par exemple.