Files
wiki/Catalogue-Self-Hosted/apps/app-miniflux.md
T
2026-06-09 18:40:21 +02:00

131 lines
6.1 KiB
Markdown

---
title: Miniflux
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, feed-reader, rss, atom, minimaliste, go, self-hosted]
confidence: high
contested: false
sources:
- https://selfh.st/apps/?tag=Feed+Readers
- https://github.com/miniflux/v2
- https://miniflux.app/
---
# ⚡ Miniflux
> Agrégateur de flux RSS/Atom ultra-léger écrit en Go — interface épurée, simple binaire, consommation mémoire minimale.
## 📋 Informations Générales
| Attribut | Valeur |
|----------|--------|
| **Nom** | Miniflux |
| **Slug** | app-miniflux |
| **Description** | Lecteur de flux RSS/Atom minimaliste écrit en Go, distribué en binaire unique, conçu pour être rapide et sobre |
| **Site officiel** | https://miniflux.app/ |
| **Repository** | https://github.com/miniflux/v2 |
| **Stars** | 8 880 ⭐ |
| **Licence** | Apache-2.0 |
| **Langage principal** | Go |
| **Catégorie** | Feed Reader |
| **Tags** | [catalogue, feed-reader, rss, atom, minimaliste, go, self-hosted] |
## 📝 Description
Miniflux est un lecteur de flux nouvelle génération, entièrement réécrit en Go à partir de la version 2. Son objectif est simple : faire une seule chose (lire des flux) mais la faire extrêmement bien, sans fioritures. Le résultat est un binaire statique d'environ 15 Mo, qui consomme moins de 50 Mo de RAM au repos, avec une UI web claire, rapide, au clavier-friendly.
Le projet supporte les flux RSS, Atom, JSON Feed et RDF ; il intègre un nettoyeur automatique de HTML (lecteur de type Readability), un mode « read later » par article, des règles de filtrage par regex, des catégories, des proxys d'images, l'authentification OAuth (Google, GitHub, generic OpenID), LDAP, et une API REST complète utilisée par les apps mobiles (Reeder, NetNewsWire, FeedMe, Fluent Reader, Read You, etc.).
Cas d'usage typique : remplacer [[app-freshrss]] quand on veut quelque chose de plus simple, plus rapide, sans PHP ni extensions, et qu'on a un seul compte utilisateur (multi-utilisateurs supporté mais moins convivial). C'est le choix par défaut sur homelab minimaliste (Raspberry Pi, VPS à 2 €/mois). Limites : pas d'extensions tierces, pas de plugins, configuration par variables d'environnement ou fichier unique.
## 🚀 Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
version: "3.8"
services:
miniflux:
image: miniflux/miniflux:latest
container_name: miniflux
restart: unless-stopped
ports:
- "8080:8080"
environment:
DATABASE_URL: postgres://miniflux:ChangeM3_MFX@db/miniflux?sslmode=disable
RUN_MIGRATIONS: "true"
CREATE_ADMIN: "true"
ADMIN_USERNAME: admin
ADMIN_PASSWORD: ChangeM3_MFX
POLLING_FREQUENCY: 30
FETCH_VIA_PROXY: "false"
depends_on:
- db
db:
image: postgres:16-alpine
container_name: miniflux-db
restart: unless-stopped
environment:
POSTGRES_DB: miniflux
POSTGRES_USER: miniflux
POSTGRES_PASSWORD: ChangeM3_MFX
volumes:
- ./pgdata:/var/lib/postgresql/data
```
### Installation manuelle
Télécharger le binaire statique pour son architecture depuis la page Releases GitHub, créer un utilisateur système dédié, créer la base PostgreSQL, exécuter `miniflux -migrate`, et lancer le service via `systemd`. Un fichier `miniflux.conf` peut remplacer les variables d'environnement. Configuration Nginx type reverse proxy documentée sur le site officiel.
## ⚙️ Configuration
- **Variables d'environnement** : plus de 80 options documentées (`DATABASE_URL`, `BASE_URL`, `OAUTH_*`, `CLEANUP_*`, `POLLING_FREQUENCY`, `FETCH_VIA_PROXY`, etc.).
- **Fréquence de collecte** : `POLLING_FREQUENCY` en minutes (par défaut 60), avec un scheduler interne qui étale les requêtes.
- **Rétention** : `CLEANUP_ARCHIVE_UNREAD_DAYS`, `CLEANUP_REMOVE_SESSIONS_DAYS` pour purger automatiquement.
- **OAuth** : renseigner les `OAUTH_*` permet d'activer « Se connecter avec Google/GitHub/OpenID » sur la page de login.
- **API** : générer un token par utilisateur dans Profil → API, à fournir à l'app mobile.
## 🔗 Alternatives
- [[app-freshrss]] — Concurrent PHP plus riche fonctionnellement (extensions, multi-utilisateurs avancé), mais plus lourd.
- [[app-newsblur]] — Concurrent Python/Django avec ML et social, nettement plus gourmand.
- [[app-commafeed]] — Fork Java/Angular de The Old Reader, UI plus moderne mais plus lourd.
- [[app-feedbin]] — Ruby on Rails, écosystème mobile de qualité.
- [[app-yarr]] — Concurrent Go encore plus minimaliste, sans comptes utilisateurs.
- [[app-nextcloud-news]] — Module Nextcloud, idéal si on a déjà Nextcloud.
- **NetNewsWire** (iOS/macOS, gratuit) — Client natif Miniflux via API.
- **Reeder** (iOS/macOS, payant) — Client premium, intégration Miniflux impeccable.
- **Feedly** (propriétaire SaaS) — Référence du marché, UI proche de Miniflux.
## 🔒 Sécurité
- Imposer HTTPS via [[app-traefik]] ou [[app-caddy]] — même sobre, le binaire ne fait pas de TLS natif.
- Changer le mot de passe administrateur par défaut (`CREATE_ADMIN` n'est utile qu'au premier démarrage).
- PostgreSQL doit être sur le réseau interne Docker (driver `internal`).
- Activer les migrations automatiques (`RUN_MIGRATIONS: "true"`) au déploiement, sans exécuter de `CREATE_ADMIN` récurrent.
- Surveiller les CVE sur les dépendances Go : pas de framework web, surface d'attaque faible, mais mises à jour importantes.
## 📚 Ressources
- Site officiel : https://miniflux.app/
- Repository : https://github.com/miniflux/v2
- Documentation : https://miniflux.app/docs/
- Liste des variables : https://miniflux.app/docs/configuration.html
- Apps mobiles compatibles : https://miniflux.app/docs/apps.html
## 🔗 Pages Liées
- [[cat-feed-reader]] (catégorie parente)
- [[app-freshrss]] — Concurrent PHP plus riche
- [[app-newsblur]] — Concurrent Python avec ML
- [[app-commafeed]] — Fork de The Old Reader
- [[app-feedbin]] — Solution Ruby on Rails
- [[app-yarr]] — Concurrent Go minimaliste
- [[app-nextcloud-news]] — Module Nextcloud
- [[recettes-docker-compose]] — Templates Compose
- [[securisation-home-lab]] — Bonnes pratiques