5.7 KiB
Un agrégateur RSS personnel et auto-hébergé, avec lecture approfondie intégrée.
A personal, self-hosted RSS aggregator with a built-in reader.
Qu'est-ce que BloomFeed ?
BloomFeed centralise vos flux RSS/Atom préférés dans une interface simple. Quand un article vous intéresse, BloomFeed récupère la page source, en extrait le contenu principal et l'affiche directement dans l'application — plus besoin d'ouvrir le site d'origine.
BloomFeed est pensé pour être auto-hébergé par une personne ou un foyer : le premier compte créé devient le compte propriétaire, qui peut ensuite inviter des proches (création directe de comptes) ou ouvrir les inscriptions publiques depuis le menu Paramètres.
Fonctionnalités
- Ajout de flux RSS/Atom, suivi des non-lus, favoris.
- Lecture approfondie intégrée : extraction du contenu principal (via Readability) converti en Markdown, sans quitter BloomFeed.
- Catalogue de flux façon "market" : une sélection de flux embarquée avec l'application (resources/data/bloomflux.json), à ajouter en un clic.
- Multi-comptes : le propriétaire crée des comptes ou ouvre/ferme les inscriptions d'un clic.
- Interface disponible en français, anglais, espagnol et allemand (sélecteur en haut de page, préférence mémorisée par utilisateur).
- Récupération périodique des flux via une tâche planifiée.
- Thème clair/sombre.
Aperçu
| Tableau de bord | Lecteur intégré |
|---|---|
![]() |
![]() |
| Catalogue de flux | Mode sombre |
|---|---|
![]() |
![]() |
Stack technique
- Laravel 13 (PHP 8.4)
- MariaDB
- CSS/JS écrits à la main, sans étape de build (pas de Node/Vite/Tailwind)
- Docker Compose pour le déploiement
Installation (auto-hébergement)
Prérequis
- Un serveur Linux avec Docker et le plugin Docker Compose.
- Le port 7081 libre (modifiable dans
docker-compose.yml). - Optionnel : un nom de domaine + reverse proxy (Nginx, Caddy, Traefik…) pour le HTTPS —
l'application détecte automatiquement les en-têtes
X-Forwarded-*.
Étapes
git clone https://git.eldorianet.work/esteban/BloomFeed-RSS bloomfeed
cd bloomfeed
bash scriptsite.sh
Le script de déploiement :
- libère le port 7081 si nécessaire ;
- clone ou met à jour le code dans
/opt/bloomfeed; - crée le
.envdepuis.env.examples'il n'existe pas, et y génère les secrets manquants (APP_KEY,DB_PASSWORD,DB_ROOT_PASSWORD) — ils ne sont jamais régénérés ensuite ; - construit les images et démarre les conteneurs (application, planificateur, MariaDB) ;
- attend que les migrations de l'entrypoint soient terminées et vérifie que l'application répond.
Ouvrez ensuite http://votre-serveur:7081 et créez le compte propriétaire — les inscriptions
publiques se referment automatiquement après.
Mise à jour
Relancez simplement bash scriptsite.sh : il récupère les derniers changements et reconstruit
la stack sans toucher à vos données.
Désinstallation
bash uninstall.sh # arrête et supprime les conteneurs (données conservées)
bash uninstall.sh --purge # supprime aussi la base de données et le storage (confirmation demandée)
bash uninstall.sh --purge --purge-source # supprime aussi /opt/bloomfeed et le .env
Configuration
Comptes et inscriptions
Le compte propriétaire dispose d'un menu Paramètres dans la barre de navigation :
- Créer un compte directement (nom, e-mail, mot de passe) pour un proche, sans rien ouvrir au public ;
- Ouvrir / fermer les inscriptions publiques d'un clic — quand elles sont ouvertes, le bouton "Créer un compte" réapparaît sur la page d'accueil et la page de connexion.
Langue
Chaque visiteur ou utilisateur choisit sa langue (FR, EN, ES, DE) via le sélecteur en haut de
page. Le choix est mémorisé en session pour les visiteurs et enregistré sur le profil pour les
utilisateurs connectés. La langue par défaut de l'instance se règle avec APP_LOCALE dans .env.
Variables d'environnement principales
| Variable | Rôle | Défaut |
|---|---|---|
APP_URL |
URL publique de l'instance (importante derrière un reverse proxy HTTPS) | http://localhost:7081 |
APP_LOCALE |
Langue par défaut (fr, en, es, de) |
fr |
DB_* |
Connexion MariaDB (générés par le script) | — |
Catalogue de flux
L'onglet Catalogue propose une sélection de flux pré-faits (actualités, tech, développement, IT/sysadmin, sécurité, sciences…) à ajouter en un clic. La liste vit dans resources/data/bloomflux.json, versionnée avec le code : pour l'enrichir, éditez le fichier et redéployez — aucun service externe n'est nécessaire.
{ "title": "Nom du flux", "url": "https://exemple.com/rss.xml", "category": "Tech", "lang": "fr", "description": "Courte description." }
Développement local
Prérequis : PHP 8.3+ et Composer.
composer install
cp .env.example .env
# Passer DB_CONNECTION=sqlite dans .env pour un dev local sans MariaDB
touch database/database.sqlite
php artisan key:generate
php artisan migrate
php artisan serve
Licence
MIT.





