Files
2026-06-09 18:40:21 +02:00

128 lines
6.2 KiB
Markdown

---
title: FreshRSS
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, feed-reader, rss, atom, agregateur, php, self-hosted]
confidence: high
contested: false
sources:
- https://selfh.st/apps/?tag=Feed+Readers
- https://github.com/FreshRSS/FreshRSS
- https://freshrss.org/
---
# 📰 FreshRSS
> Agrégateur de flux RSS/Atom libre et léger écrit en PHP — auto-hébergeable, extensible, multi-utilisateur.
## 📋 Informations Générales
| Attribut | Valeur |
|----------|--------|
| **Nom** | FreshRSS |
| **Slug** | app-freshrss |
| **Description** | Lecteur de flux RSS/Atom open-source écrit en PHP, conçu pour être léger, rapide et facile à auto-héberger |
| **Site officiel** | https://freshrss.org/ |
| **Repository** | https://github.com/FreshRSS/FreshRSS |
| **Stars** | 11 960 ⭐ |
| **Licence** | AGPL-3.0 |
| **Langage principal** | PHP |
| **Catégorie** | Feed Reader |
| **Tags** | [catalogue, feed-reader, rss, atom, agregateur, php, self-hosted] |
## 📝 Description
FreshRSS est un agrégateur de flux libre et gratuit, développé depuis 2012 par une petite communauté francophone. Il permet de centraliser la lecture de blogs, de sites d'actualités, de podcasts, de chaînes YouTube ou de flux Atom/RSS variés dans une interface web unique, accessible depuis n'importe quel navigateur ou application mobile compatible avec l'API Fever ou Google Reader.
Le projet se distingue par sa sobriété : il tourne confortablement sur un petit VPS (1 vCPU, 512 Mo de RAM) avec PHP-FPM et SQLite, ou plus classiquement avec MariaDB/MySQL. L'UI est dépouillée, mais fonctionnelle, avec un mode lecture hors-ligne, des filtres avancés, des statistiques de lecture, des catégories, des étiquettes, et un système d'extensions (API tierces, règles de rétention, nettoyeurs de HTML). Une authentification LDAP, OAuth ou par formulaire est proposée.
Cas d'usage typique : remplacer Feedly/Inoreader par une instance personnelle, synchronisée entre tous ses appareils via [[app-nextcloud-news]]-like API, avec une gestion fine des abonnements et un contrôle total sur les données. FreshRSS s'intègre nativement avec [[app-miniflux]] au sens où les deux partagent un écosystème de lecteurs mobiles, mais reste totalement indépendant. Limites : pas de clustering natif pour très gros volumes (>10 000 flux) — pour cela préférer un crawler distribué.
## 🚀 Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
version: "3.8"
services:
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
restart: unless-stopped
ports:
- "8080:80"
environment:
TZ: Europe/Paris
CRON_MIN: "*/20"
volumes:
- ./data:/var/www/FreshRSS/data
- ./extensions:/var/www/FreshRSS/extensions
depends_on:
- db
db:
image: mariadb:11
container_name: freshrss-db
restart: unless-stopped
environment:
MARIADB_DATABASE: freshrss
MARIADB_USER: freshrss
MARIADB_PASSWORD: ChangeM3_FRESHRSS
MARIADB_RANDOM_ROOT_PASSWORD: "yes"
volumes:
- ./db:/var/lib/mysql
```
### Installation manuelle
LAMP classique : PHP 8.1+ (avec extensions `curl`, `pdo_mysql` ou `pdo_sqlite`, `intl`, `mbstring`, `gd`, `zip`), Apache/Nginx + PHP-FPM, MySQL/MariaDB ou SQLite. Télécharger l'archive depuis GitHub, extraire dans `/var/www/html/FreshRSS`, pointer le vhost, suivre l'installateur web. Ajouter une crontab pour le rafraîchissement automatique : `*/20 * * * * www-data php /var/www/html/FreshRSS/app/actualize_script.php`.
## ⚙️ Configuration
- **Base de données** : SQLite par défaut (le plus simple), MariaDB recommandé en production multi-utilisateurs.
- **Authentification** : locale, LDAP, OAuth (Google, GitHub, generic OpenID), ou en-tête reverse-proxy SSO.
- **API mobiles** : activer l'API Fever ou Google Reader pour les apps comme FeedMe, Reeder, Fluent Reader, Read You.
- **Extensions** : `api` (Fever/GR), `force-https`, `markdown`, `pubsubhubbub`, `user-cSS` (personnalisation visuelle), etc.
- **Rétention** : configurer la suppression automatique des articleslus (par exemple 90 jours) pour limiter la taille de la base.
## 🔗 Alternatives
- [[app-miniflux]] — Concurrent écrit en Go, ultra-léger, Postgres uniquement, sans PHP ni extensions, parfait pour un seul utilisateur.
- [[app-newsblur]] — Agrégateur social avec entraînement des intérêts par ML, mais nettement plus lourd (Python/Django + Celery + MongoDB/Redis).
- [[app-commafeed]] — Fork moderne de The Old Reader (Java/Angular), UI proche de Feedly.
- [[app-feedbin]] — Service commercial open-source (Ruby on Rails), très propre, payant en SaaS, gratuit en self-hosted.
- [[app-yarr]] — Lecteur minimaliste Go, SQLite, sans multi-utilisateur, orienté usage personnel.
- **Feedly** (propriétaire SaaS) — Référence du marché gratuit, mais cloud-only et fermé.
- **Inoreader** (propriétaire SaaS) — Très complet, plans payants pour règles avancées.
## 🔒 Sécurité
- Imposer HTTPS via [[app-traefik]] ou [[app-caddy]] — les flux et identifiants transitent en clair sinon.
- Changer le mot de passe administrateur par défaut dès la première connexion.
- Activer le mode `production` dans `data/config.php` (`environment = production`) pour désactiver l'affichage des erreurs PHP.
- Mettre à jour régulièrement : suivre la branche `latest` Docker ou le tag release GitHub.
- Restreindre l'accès à l'API via un token personnel par client mobile.
## 📚 Ressources
- Site officiel : https://freshrss.org/
- Repository : https://github.com/FreshRSS/FreshRSS
- Documentation : https://freshrss.github.io/FreshRSS/
- Liste des extensions : https://github.com/FreshRSS/FreshRSS/tree/master/extensions
- Apps mobiles compatibles : https://github.com/FreshRSS/FreshRSS/blob/master/docs/api.md
## 🔗 Pages Liées
- [[cat-feed-reader]] (catégorie parente)
- [[app-miniflux]] — Concurrent direct, plus minimaliste
- [[app-newsblur]] — Alternative sociale
- [[app-commafeed]] — Fork de The Old Reader
- [[app-feedbin]] — Solution Ruby on Rails
- [[app-yarr]] — Lecteur minimaliste Go
- [[app-nextcloud-news]] — Lecteur intégré à Nextcloud
- [[recettes-docker-compose]] — Templates Compose
- [[securisation-home-lab]] — Bonnes pratiques