17/11/2024

ApacheInternetLinux

Installer FreshRSS sur Debian 11 avec un serveur Web Apache2

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+
FreshRSS - Exemples flux RSS
Aperçu de FreshRSS

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
FreshRSS - Télécharger source GitHub

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.

Installer FreshRSS sur Debian 11

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.

FreshRSS - Base de données MySQL

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 !

FreshRSS - Création d'un compte admin

Cliquez sur "Terminer l'installation" si tout s'est bien passé !

Synology - Installation de FreshRSS - Etape 5

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.

Synology - Installation de FreshRSS - Tableau de bord

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.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.