6.1 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NewsBlur | 2026-06-07 | 2026-06-07 | app |
|
high | false |
|
🟢 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)
# 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.pyinitial, à 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_KEYDjango danssettings.pypour 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