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

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
catalogue
feed-reader
rss
social
ml
django
python
self-hosted
high false
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)

# 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

🔗 Pages Liées