Héberger FreshRSS : votre agrégateur de flux RSS auto-hébergé
Suivre l'actualité et faire sa veille sans laisser un algorithme décider à votre place. FreshRSS agrège vos flux RSS dans une interface rapide. Voici comment l'héberger.
Reprendre le contrôle de sa veille commence par choisir ses sources plutôt que de laisser un réseau social décider des contenus à afficher. Les flux RSS et Atom permettent de suivre des sites d’actualité, des blogs, des publications professionnelles, des chaînes YouTube ou des journaux techniques dans un ordre clair, sans algorithme de recommandation ni fil artificiellement personnalisé.
FreshRSS est un agrégateur open source léger conçu pour centraliser ces flux dans une interface rapide. Il convient aussi bien à une veille personnelle qu’à un usage professionnel ou multi-utilisateur. Auto-hébergé sur un petit VPS, il conserve les abonnements, les favoris et l’historique sous votre contrôle.
Pourquoi choisir FreshRSS
FreshRSS collecte régulièrement les nouveaux contenus publiés par vos sources. Chaque utilisateur dispose de son propre espace et peut notamment :
- S’abonner à des flux RSS ou Atom.
- Classer les abonnements par catégories.
- Marquer des articles comme favoris.
- Rechercher dans les contenus collectés.
- Filtrer les éléments lus ou non lus.
- Importer et exporter les abonnements au format OPML.
- Installer des extensions pour enrichir l’interface ou le traitement des flux.
- Consulter ses flux depuis une application mobile compatible.
- Déclencher automatiquement l’actualisation grâce à la tâche cron intégrée.
FreshRSS peut fonctionner avec SQLite, MariaDB ou PostgreSQL. SQLite reste une option simple pour une installation personnelle avec peu de trafic. MariaDB ou PostgreSQL sont préférables pour plusieurs utilisateurs, une volumétrie importante ou une installation destinée à durer.
L’application consomme peu de ressources. Un petit VPS suffit généralement pour quelques utilisateurs et plusieurs centaines de flux, à condition de conserver une fréquence d’actualisation raisonnable.
Prérequis pour l’hébergement
Pour ce déploiement, il faut disposer des éléments suivants :
- Un VPS Linux avec Docker et le module Docker Compose (voir installer Docker sur un VPS).
- Un nom de domaine ou un sous-domaine, par exemple
rss.example.fr. - Un accès SSH au serveur.
- Un reverse proxy capable de fournir une connexion HTTPS.
- Un répertoire dédié à FreshRSS sur le serveur.
Les VPS TalCloud conviennent à ce type d’usage, à partir de 4,99 € par mois. L’infrastructure repose sur des serveurs situés en France, du stockage NVMe, une protection Anti-DDoS Netrix et un support humain. Cet hébergement français facilite également une démarche cohérente avec les exigences du RGPD.
Dans la suite, le sous-domaine rss.example.fr est utilisé comme exemple. Il doit être remplacé par votre propre domaine.
Déployer FreshRSS avec Docker Compose
Créez un répertoire de travail, puis placez-y un fichier compose.yaml. Le déploiement ci-dessous utilise l’image officielle freshrss/freshrss avec MariaDB et des répertoires persistants pour la base, les données et les extensions.
services:
db:
image: mariadb:11
container_name: freshrss-db
restart: unless-stopped
environment:
MARIADB_DATABASE: freshrss
MARIADB_USER: freshrss
MARIADB_PASSWORD: change-this-database-password
MARIADB_ROOT_PASSWORD: change-this-root-password
TZ: Europe/Paris
volumes:
- ./mariadb-data:/var/lib/mysql
networks:
- freshrss-internal
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
restart: unless-stopped
depends_on:
- db
environment:
TZ: Europe/Paris
CRON_MIN: "7,37"
volumes:
- ./freshrss-data:/var/www/FreshRSS/data
- ./freshrss-extensions:/var/www/FreshRSS/extensions
ports:
- "127.0.0.1:8080:80"
networks:
- freshrss-internal
networks:
freshrss-internal:
Remplacez les deux mots de passe avant le premier démarrage. Utilisez des valeurs longues, uniques et générées aléatoirement.
La variable TZ configure le fuseau horaire. CRON_MIN demande au conteneur d’actualiser les flux aux minutes 7 et 37 de chaque heure. Le décalage évite de lancer systématiquement les requêtes à la minute zéro, moment souvent choisi par de nombreux services automatisés.
Le port est publié uniquement sur 127.0.0.1. FreshRSS reste donc inaccessible directement depuis Internet et devra passer par le reverse proxy HTTPS.
Démarrez les services :
docker compose up -d
Vérifiez leur état et consultez les journaux si nécessaire :
docker compose ps
docker compose logs -f freshrss
Terminer l’installation dans le navigateur
Ouvrez temporairement FreshRSS à travers le reverse proxy configuré plus loin, puis suivez l’assistant d’installation.
Choisissez MySQL ou MariaDB comme type de base et saisissez les paramètres suivants :
- Hôte :
db - Base :
freshrss - Utilisateur :
freshrss - Mot de passe : la valeur de
MARIADB_PASSWORD - Port :
3306
Le nom d’hôte doit être db, car il correspond au nom du service Docker sur le réseau interne. N’utilisez pas localhost : cela désignerait le conteneur FreshRSS lui-même.
Créez ensuite le premier compte administrateur avec un mot de passe distinct de celui de la base. Une fois l’assistant terminé, l’interface principale devient accessible.
Ajouter et organiser ses sources
Pour ajouter une source, utilisez l’option d’abonnement et collez l’adresse du site ou directement celle de son flux. FreshRSS sait souvent détecter automatiquement le flux disponible sur une page.
Organisez ensuite les abonnements dans des catégories comme Actualité, Cybersécurité, Développement, Concurrence ou Presse professionnelle. Cette structure rend la veille plus lisible et permet de parcourir uniquement un thème donné.
Si vous utilisez déjà un autre lecteur RSS, exportez vos abonnements au format OPML, puis importez ce fichier dans FreshRSS. L’opération évite de recréer chaque abonnement manuellement. Une exportation OPML régulière constitue également une copie portable de la liste des sources.
Les favoris permettent de conserver les articles importants pour une lecture ultérieure. La recherche facilite ensuite la consultation des contenus archivés, sous réserve que les anciens articles soient toujours présents dans la base.
Connecter une application mobile
FreshRSS propose des API compatibles avec plusieurs applications de lecture RSS. Dans le profil utilisateur, activez l’accès API et définissez un mot de passe API si l’interface le demande. Ce secret peut être différent du mot de passe principal.
Dans Reeder ou une autre application compatible GReader ou Fever, renseignez l’adresse du serveur, le nom d’utilisateur et le mot de passe API. Selon le protocole accepté par l’application, utilisez l’un de ces points d’accès :
https://rss.example.fr/api/greader.php
https://rss.example.fr/api/fever.php
Certaines applications proposent directement FreshRSS dans leur liste de services. Dans ce cas, indiquez simplement l’adresse principale de l’instance et laissez l’application sélectionner l’API adaptée.
Protéger l’accès avec HTTPS
Le chiffrement HTTPS protège les identifiants, les sessions et les contenus synchronisés. Avec Caddy installé sur le VPS, une configuration minimale peut prendre cette forme :
rss.example.fr {
reverse_proxy 127.0.0.1:8080
}
Après avoir pointé l’enregistrement DNS du sous-domaine vers le VPS, rechargez Caddy :
sudo systemctl reload caddy
Caddy peut alors obtenir et renouveler automatiquement le certificat TLS. Avec Nginx, Traefik ou un autre reverse proxy, conservez le même principe : le proxy reçoit le trafic HTTPS public et le transmet au port local 127.0.0.1:8080.
Sécuriser et mettre à jour FreshRSS
N’exposez jamais le port MariaDB sur l’hôte. Dans cette configuration, la base reste uniquement joignable depuis le réseau Docker interne.
Appliquez également ces mesures :
- Désactivez les inscriptions publiques si elles ne sont pas nécessaires.
- Utilisez des mots de passe uniques pour l’administration, l’API et la base.
- Limitez les comptes administrateurs.
- Protégez l’accès SSH au VPS et le pare-feu.
- Surveillez les journaux du reverse proxy et des conteneurs.
- Supprimez les extensions inutilisées.
- Installez uniquement des extensions provenant de sources fiables.
Pour récupérer une nouvelle version des images et recréer les conteneurs :
docker compose pull
docker compose up -d
Effectuez cette opération régulièrement, après avoir vérifié que les sauvegardes sont exploitables.
Sauvegarder la base et les données
La base MariaDB contient notamment les utilisateurs, les abonnements et les articles. Le répertoire freshrss-data contient la configuration persistante de FreshRSS ainsi que des données utiles, dont les exports OPML générés par l’application. Les extensions sont conservées séparément dans freshrss-extensions.
Créez une sauvegarde logique de MariaDB :
mkdir -p backups
docker compose exec -T db sh -c 'mariadb-dump -u"$MARIADB_USER" -p"$MARIADB_PASSWORD" "$MARIADB_DATABASE"' > backups/freshrss-db.sql
Archivez ensuite les données et les extensions :
tar -czf backups/freshrss-files.tar.gz freshrss-data freshrss-extensions
Copiez ces sauvegardes vers un emplacement distinct du VPS et testez périodiquement leur restauration. Notre guide sur les sauvegardes chiffrées avec restic aide à automatiser cette copie. Une sauvegarde stockée uniquement sur le serveur FreshRSS ne protège pas contre une panne complète, une suppression accidentelle ou une compromission du système.