--- title: NewsBlur created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, feed-reader, rss, social, ml, django, python, self-hosted] confidence: high contested: false sources: - https://selfh.st/apps/?tag=Feed+Readers - https://github.com/samuelclay/NewsBlur - https://www.newsblur.com/ --- # 🟢 NewsBlur > Agrégateur de flux RSS intelligent et social, écrit en Python/Django — il apprend vos centres d'intérêt et classe automatiquement les articles. ## 📋 Informations Générales | Attribut | Valeur | |----------|--------| | **Nom** | NewsBlur | | **Slug** | app-newsblur | | **Description** | Lecteur de flux RSS/Atom avec intelligence artificielle de classement, dimension sociale et architecture distribuée | | **Site officiel** | https://www.newsblur.com/ | | **Repository** | https://github.com/samuelclay/NewsBlur | | **Stars** | 10 390 ⭐ | | **Licence** | MIT | | **Langage principal** | Python / Django | | **Catégorie** | Feed Reader | | **Tags** | [catalogue, feed-reader, rss, social, ml, django, python, self-hosted] | ## 📝 Description NewsBlur est un agrégateur de flux créé en 2009 par Samuel Clay. Sa particularité est d'afficher pour chaque site suivi un compteur d'articles « positifs » (qui correspondent à vos intérêts), « négatifs » et « neutres », calculé par un classifieur naïf bayésien entraîné sur vos lectures. Plus vous lisez, plus le tri devient pertinent. C'est aussi un lecteur social : on peut suivre les abonnements publics d'autres utilisateurs, partager des articles, et commenter. L'architecture est techniquement passionnante : un serveur Django principal, des workers Celery pour la collecte, MongoDB pour les flux et les stories, Redis pour le cache, PostgreSQL pour les comptes, et `haproxy` pour le load-balancing. Cette stack explique pourquoi NewsBlur est le plus gourmand des lecteurs de flux. Cas d'usage typique : utilisateur avancé qui veut un lecteur de flux type Feedly/Inoreader mais auto-hébergé, avec de la classification automatique et une dimension communautaire. Limites : la doc d'auto-hébergement est succincte, le projet est très orienté service SaaS, et la consommation mémoire est élevée (2-4 Go de RAM minimum). À réserver à un serveur dédié ou à un homelab costaud. ## 🚀 Installation ### Via Docker (non officiel mais fonctionnel) ```yaml # docker-compose.yml version: "3.8" services: newsblur: image: sunxh/NewsBlur:latest container_name: newsblur restart: unless-stopped ports: - "8000:80" environment: DJANGO_SETTINGS_MODULE: newsblur_web.settings DATABASE_URL: postgres://newsblur:ChangeM3_NB@db/newsblur MONGO_HOST: mongo REDIS_HOST: redis volumes: - ./data:/srv/newsblur/data depends_on: - db - mongo - redis db: image: postgres:16 container_name: newsblur-db restart: unless-stopped environment: POSTGRES_DB: newsblur POSTGRES_USER: newsblur POSTGRES_PASSWORD: ChangeM3_NB volumes: - ./pgdata:/var/lib/postgresql/data mongo: image: mongo:7 container_name: newsblur-mongo restart: unless-stopped volumes: - ./mongodata:/data/db redis: image: redis:7-alpine container_name: newsblur-redis restart: unless-stopped ``` ### Installation manuelle L'installation officielle repose sur `fabric` : cloner le dépôt, exécuter `fab -H user@host deploy` après configuration. Pré-requis : Python 3.10+, Node.js, PostgreSQL 14+, MongoDB 6+, Redis 7+, et un reverse proxy. La procédure est largement plus complexe que pour [[app-freshrss]] ou [[app-miniflux]]. ## ⚙️ Configuration - **Compte administrateur** : créé lors du `bootstrap.py` initial, à modifier immédiatement. - **Worker count** : ajuster le nombre de workers Celery en fonction du nombre de flux à collecter (règle empirique : 1 worker par tranche de 500 flux). - **Feeds par utilisateur** : la limite gratuite SaaS est 64 flux ; en self-hosted on peut monter beaucoup plus haut. - **OAuth / SSO** : paramétrable dans `newsblur_web/settings.py`. - **Sauvegarde** : exporter régulièrement MongoDB (les flux) et PostgreSQL (utilisateurs), c'est la double base qui complexifie les backups. ## 🔗 Alternatives - [[app-freshrss]] — Beaucoup plus léger, plus simple à auto-héberger, sans ML ni social. - [[app-miniflux]] — Minimaliste Go, mono-utilisateur, RAM < 50 Mo. - [[app-commafeed]] — UI type Feedly sans dimension sociale ni ML. - [[app-feedbin]] — Ruby on Rails, sans ML non plus, mais excellent écosystème mobile. - [[app-yarr]] — Go minimaliste, mono-utilisateur. - [[app-nextcloud-news]] — Module intégré à Nextcloud. - **Feedly** (propriétaire SaaS) — Référence du marché avec abonnement Pro pour le ML avancé. - **Inoreader** (propriétaire SaaS) — Très complet, règles et filtres poussés. ## 🔒 Sécurité - HTTPS obligatoire via [[app-traefik]] ou [[app-caddy]] — l'authentification et les cookies de session doivent voyager chiffrés. - Changer `SECRET_KEY` Django dans `settings.py` pour une valeur aléatoire longue. - MongoDB et Redis doivent écouter uniquement sur le réseau interne Docker (driver `internal`). - Surveiller l'espace disque : MongoDB gonfle vite avec beaucoup de flux et d'historique. - Mettre à jour régulièrement Celery et Django pour les correctifs de sérialisation (historiquement sensibles). ## 📚 Ressources - Site officiel : https://www.newsblur.com/ - Repository : https://github.com/samuelclay/NewsBlur - Doc self-hosting : https://github.com/samuelclay/NewsBlur/blob/master/INSTALL.md - Wiki technique : https://github.com/samuelclay/NewsBlur/wiki - Apps mobiles : iOS et Android officiels + clients tiers ## 🔗 Pages Liées - [[cat-feed-reader]] (catégorie parente) - [[app-freshrss]] — Concurrent PHP plus léger - [[app-miniflux]] — Concurrent Go minimaliste - [[app-commafeed]] — Fork de The Old Reader - [[app-feedbin]] — Solution Ruby on Rails - [[app-yarr]] — Lecteur Go minimaliste - [[app-nextcloud-news]] — Module intégré Nextcloud - [[recettes-docker-compose]] — Templates Compose - [[securisation-home-lab]] — Bonnes pratiques