EN
en direct

Miniflux, le lecteur RSS de 20 Mo qui lit plus vite que votre navigateur

Miniflux est un lecteur RSS écrit en Go, distribué en binaire unique de moins de 20 Mo, qui ne tourne qu’avec PostgreSQL. En juillet 2026, sa version 2.3.3 cumule 9 500 étoiles GitHub — voici pourquoi ce minimaliste auto-hébergé écrase FreshRSS sur le seul terrain qui compte : la vitesse.

Miniflux, le lecteur RSS de 20 Mo qui lit plus vite que votre navigateur — illustration ETTAYEB

Le 24 juillet 2026, Frédéric Guillot publie Miniflux 2.3.3, une release de maintenance qui corrige 17 bugs et ajoute la détection de langue des flux. Le binaire fait toujours moins de 20 Mo, ne dépend que de PostgreSQL, et tourne sur un Raspberry Pi sans transpirer. Pendant ce temps, FreshRSS — l’autre grand lecteur RSS auto-hébergé — requiert PHP 8.1+, une extension GMP, et pèse plusieurs centaines de mégaoctets une fois les dépendances installées. La question n’est pas « lequel a le plus de fonctionnalités ». C’est : votre lecteur RSS devrait-il vraiment être plus lourd que les articles qu’il lit ?

Miniflux répond non. Et il le prouve depuis 2013.

Un binaire, une base, zéro framework JavaScript

Le pari technique de Miniflux tient en une phrase : tout le code — backend, templates HTML, CSS, JavaScript vanilla, fichiers statiques — est compilé dans un seul binaire Go via le package embed. Pas de node_modules à 200 Mo. Pas de PHP-FPM à configurer. Pas de Redis. Pas de migration de schéma ORM qui casse à chaque mise à jour.

L’exécutable final pèse moins de 20 Mo sur Linux amd64. À titre de comparaison, le seul package symfony/framework-bundle de FreshRSS dépasse cette taille avant même l’installation des autres dépendances. Miniflux démarre en moins d’une seconde sur un VPS à 5 €/mois, et sa consommation mémoire oscille entre 50 et 100 Mo RAM pour plusieurs centaines de flux.

L’unique dépendance externe est PostgreSQL. Pas SQLite, pas MySQL, pas MariaDB — PostgreSQL, point. Le projet assume ce choix dans sa page Opinionated : supporter plusieurs bases de données complexifie le code, et PostgreSQL fournit des types natifs (jsonb, inet, tsvector) que Miniflux exploite directement, sans ORM.

yaml
services:
  miniflux:
    image: miniflux/miniflux:2.3.3
    ports:
      - "8080:8080"
    depends_on:
      db:
        condition: service_healthy
    environment:
      - DATABASE_URL=postgres://miniflux:${DB_PASS}@db/miniflux?sslmode=disable
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=${ADMIN_PASS}

  db:
    image: postgres:16
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=${DB_PASS}
    volumes:
      - miniflux_db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "miniflux"]
      interval: 10s
      start_period: 30s

volumes:
  miniflux_db:
bash
# Premier lancement
docker compose up -d

L’interface est accessible sur http://votre-serveur:8080. Les identifiants sont ceux définis dans ADMIN_USERNAME et ADMIN_PASSWORD. Le paramètre RUN_MIGRATIONS=1 exécute automatiquement les migrations de schéma au démarrage — mettez-le à 0 après le premier lancement, sauf lors des mises à jour.

Ce que Miniflux choisit de NE PAS faire

La philosophie de Miniflux est documentée noir sur blanc sur miniflux.app/opinionated.html : « The purpose of this application is to read feeds. Nothing else. » Cette phrase n’est pas un slogan — c’est un filtre. Chaque fonctionnalité qui ne sert pas directement la lecture de flux est refusée.

Résultat : Miniflux n’a pas de dossiers imbriqués, pas de multi-utilisateurs avec permissions granulaires, pas de thème drag-and-drop, pas de dashboard personnalisable, pas de statistiques de lecture. Il a des catégories (un niveau, pas deux), des favoris (appelés stars), un historique, et une recherche plein texte propulsée par PostgreSQL. C’est tout.

Ce minimalisme est un atout pour trois profils :

  • Le lecteur qui traite 200+ articles par jour. L’interface est optimisée pour le balayage visuel rapide — titres en liste, résumé d’une ligne, navigation entièrement au clavier. Les touches j/k descendent et montent, v ouvre l’article dans un nouvel onglet, m le marque comme lu. Aucune animation ne ralentit le défilement.
  • L’administrateur qui maintient une dizaine de services. Miniflux se met à jour en un docker compose pull && docker compose up -d. Pas de composer update, pas de php bin/console doctrine:migrations:migrate, pas de cache à vider. Le binaire embarque tout.
  • Le paranoïaque de la vie privée. Miniflux supprime les pixels trackers, retire les paramètres de tracking des URLs (utm_source, fbclid), bloque le JavaScript externe, et proxyfie les médias pour éviter les fuites de référent. Même les vidéos YouTube passent par youtube-nocookie.com.

Scraping de contenu : quand le flux RSS ne suffit pas

Beaucoup de sites ne publient qu’un résumé tronqué dans leur flux RSS. Miniflux contourne cette limite avec un parseur Readability intégré — il va chercher l’article original, extrait le contenu pertinent, et l’affiche directement dans l’interface, sans publicité ni barre latérale.

Mieux : vous pouvez écrire des règles de scraping personnalisées en CSS. Un site qui cache son contenu derrière une div.article-body hors du flux standard ? Ajoutez une règle dans les paramètres du flux :

plaintext
div.article-body
article .content
main .post

Miniflux exécute ces sélecteurs et extrait le contenu correspondant. Pour les cas complexes, les rewrite rules permettent de modifier le DOM avant affichage — supprimer un bandeau de cookie, remplacer des images basse résolution, injecter une feuille de style personnalisée.

Cette fonction existait dans FreshRSS via l’extension XPath, mais nécessitait de manipuler du XPath manuellement. Miniflux utilise des sélecteurs CSS natifs, plus lisibles et plus faciles à tester dans les DevTools du navigateur.

FreshRSS contre Miniflux : le choix n’est pas philosophique, il est mécanique

FreshRSS et Miniflux sont les deux lecteurs RSS auto-hébergés de référence en juillet 2026. Ils ne jouent pas dans la même catégorie.

Miniflux 2.3.3FreshRSSLangageGo — binaire compilé statiquementPHP — interprété, nécessite PHP-FPMBase de donnéesPostgreSQL uniquementSQLite, MySQL, MariaDB, PostgreSQLTaille du binaire\u003C 20 MoN/A (plusieurs centaines de Mo avec dépendances)Mémoire au repos50–100 Mo150–300 Mo (PHP-FPM + base)Démarrage\u003C 1 seconde3–10 secondes (cache froid)Dépendances systèmeAucune (binaire statique)PHP 8.1+, extensions GMP, iconv, mbstringInterfaceHTML + Vanilla JS, navigation clavierThèmes multiples, JS framework optionnelMulti-utilisateursOui, basiqueOui, avec permissions granulairesDossiers imbriquésNon (catégories plates)OuiScraping de contenuReadability natif + CSS selectorsExtensions XPathAPIREST native + Fever + Google ReaderREST native + Google Reader via extensionApplications mobilesPWA + apps tierces via APIPWA + apps tierces via APIIntégrations25+ (Telegram, Discord, Wallabag, etc.)Extensions communautairesÉtoiles GitHub9 50010 200LicenceApache 2.0AGPL 3.0

Les nombres d’étoiles GitHub sont proches, mais les trajectoires divergent. Miniflux croît plus vite (+800 étoiles depuis janvier 2026) que FreshRSS (+400). La raison est simple : la communauté self-hosted se détourne progressivement des stacks LAMP au profit d’architectures à binaire unique.

FreshRSS reste un excellent choix si vous avez besoin de dossiers imbriqués, de partage multi-utilisateurs avancé, ou si votre infrastructure existante est en PHP. Pour tout le reste, Miniflux gagne sur les trois métriques qui comptent en production : vitesse de déploiement, consommation de ressources, et surface de maintenance.

L’API qui transforme Miniflux en backend universel

Miniflux expose une API REST complète, documentée sur miniflux.app/docs/api.html, avec des clients officiels en Go et Python. Elle couvre l’intégralité des opérations : flux, entrées, catégories, utilisateurs, favoris, historique.

L’API est également compatible avec les protocoles Fever et Google Reader, ce qui permet d’utiliser n’importe quelle application mobile existante :

  • Reeder (iOS/macOS) — via Fever API
  • NetNewsWire (iOS/macOS) — via Fever API
  • Lire (iOS) — via Fever API
  • FeedMe (Android) — via Fever API
  • News+ (Android) — via Google Reader API

Vous configurez l’URL de votre instance Miniflux dans l’application, et elle synchronise automatiquement les flux, les articles lus et les favoris. Miniflux n’a pas besoin d’application native : son API fait le pont avec toutes celles qui existent déjà.

Côté intégrations, les 25+ services couvrent les cas d’usage courants du self-hosting : envoi vers Wallabag pour la lecture différée, notifications Telegram et Discord pour les flux critiques, sauvegarde dans Linkding ou LinkWarden pour l’archivage.

Verdict : si votre RSS pèse plus de 20 Mo, vous lisez le mauvais lecteur

Le choix entre Miniflux et FreshRSS n’est pas une question de goût. C’est une question d’infrastructure et de tolérance à la maintenance.

  • Vous avez un petit serveur, un Raspberry Pi, ou un VPS à 5 €/mois. Prenez Miniflux. Le binaire de 20 Mo démarre instantanément, consomme 50 Mo de RAM, et ne nécessite aucune maintenance en dehors de docker compose pull. L’interface au clavier vous fera lire 200 articles en 20 minutes.
  • Vous gérez une instance partagée pour votre famille ou votre entreprise, avec des dizaines d’utilisateurs et des permissions granulaires. FreshRSS reste plus adapté grâce à son système de profils multi-niveaux et ses dossiers imbriqués.
  • Vous voulez le meilleur des deux mondes sans compromis. Déployez Miniflux comme moteur de collecte et utilisez un client mobile via l’API Fever — vous combinez la légèreté du backend Go avec l’ergonomie d’une application native.

Dans tous les cas, ne déployez pas un lecteur RSS qui pèse plus lourd que les 200 articles qu’il va ingérer chaque matin. Miniflux a prouvé en dix ans qu’un binaire unique, une base PostgreSQL, et une interface pilotée au clavier suffisent à couvrir 95 % des besoins. Le reste, c’est du gras.

Références

Le brief cyber, chaque mardi

Les failles qui comptent, les correctifs à appliquer, en dix minutes de lecture.

Pas de spam. Désinscription en un clic.
à lire ensuite

Sur le même sujet

Immich remplace Google Photos dès qu’on a un NAS et une sauvegarde hors site

Immich publie sa version 3.0 le 2 juillet 2026, neuf mois après sa première version stable et un mois après le bilan de ses deux ans sous l’aile de FUTO. Il remplace Google Photos à condition d’investir dans un mini PC et d’organiser une vraie sauvegarde hors site : sans cette discipline, la bascule est un pari perdant.

Coolify met un Vercel gratuit sur votre serveur en une commande

Coolify publie sa version 4.2.0 le 21 juillet 2026, trois jours avant cet article. Ce PaaS open-source déploie vos apps, vos bases de données et 280 services en un clic sur n’importe quel serveur Linux — sans facture au Go ni limite de bande passante.

← Retour au fil

Tapez au moins deux caractères.

naviguer ouvrir esc fermer