Skip to content

About

Lecteur RSS/Atom auto-hébergé et multi-utilisateur, développé en PHP, SQLite et JavaScript natif. Il propose une interface responsive installable comme PWA et une API JSON.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

RSS Reader

CI Version License: MIT

Lecteur RSS/Atom auto-hébergé et multi-utilisateur, développé en PHP, SQLite et JavaScript natif. Il propose une interface responsive installable comme PWA et une API JSON.

Captures d’écran desktop

Vue principale de RSS Reader Vue détaillée de RSS Reader

Fonctionnalités

  • Comptes isolés, sans inscription publique (premier compte créé à l'installation, autres comptes via CLI)
  • Abonnements RSS/Atom : ajout direct ou découverte sur site web, catégories optionnelles, favicon et images des articles stockées localement
  • Actualisation automatique (cron) et manuelle, un flux ou tous, détection de doublons
  • Articles : vues Tous / Non lus / Lus / Favoris / par catégorie / par flux, recherche plein texte (FTS5)
  • Tags d'articles importés des flux, affichés en lecture seule dans le lecteur
  • « Recommandé pour vous » : suggestions locales de non-lus proches de vos favoris (aucune IA, aucun service externe)
  • Import/export OPML des abonnements et catégories
  • Paramètres : mot de passe, chargement de 25 articles, thème clair/sombre
  • Interface accessible (clavier, focus visible, contraste) et mode PWA installable avec shell hors ligne

Prérequis

PHP 8.2 ou plus récent avec les extensions suivantes : PDO SQLite, SQLite (avec FTS5, activé par défaut sur les distributions courantes), ctype, curl, dom, GD, json, mbstring, session. Les comptes PHP-FPM et cron doivent disposer d’un accès ACL partagé sur var/media et ses sous-dossiers. Composer est requis pour l'installation et la qualité. La production nécessite HTTPS et une racine web configurée sur public/.

Quand PHP-FPM et le cron utilisent des comptes distincts, accordez-leur un ACL partagé sur les médias existants et futurs avec le script d’administration :

bin/fix-media-acl

Le compte courant est utilisé par défaut pour le cron et www-data pour PHP-FPM. Pour employer d’autres comptes, passez-les dans cet ordre : bin/fix-media-acl CRON_USER PHP_FPM_USER. Le script utilise APP_MEDIA_PATH quand cette variable est définie et demande les droits sudo nécessaires.

Installation

composer install
php bin/console app:install <utilisateur>

L'installation crée la base, applique les migrations (schéma initial, recherche plein texte, thème, tags d'articles), prépare le stockage et crée le premier utilisateur. Le mot de passe est demandé dans le terminal. Pour une installation automatisée, ajoutez --password-stdin et fournissez le mot de passe sur l'entrée standard.

Configurez ensuite le serveur web pour servir le répertoire public/ et planifiez la synchronisation :

# toutes les heures, selon votre crontab
php bin/console feeds:refresh

Pour activer les recommandations par email, configurez également APP_MAILER_DSN, APP_MAIL_FROM, APP_BASE_URL et, facultativement, APP_MAIL_FROM_NAME. Exemple :

APP_MAILER_DSN='smtp://user:password@smtp.example.org:587'
APP_MAIL_FROM='rss@example.org'
APP_MAIL_FROM_NAME='RSS Reader'
APP_BASE_URL='https://rss.example.org'

Avec un relais local compatible sendmail, par exemple msmtp :

APP_MAILER_DSN='sendmail://default?command=/usr/sbin/sendmail+-t+-i'

Les identifiants inclus dans le DSN doivent être encodés comme une URL et ne doivent jamais être versionnés.

Le secret applicatif est généré dans var/app.secret à l'installation ; la variable d'environnement APP_SECRET le remplace le cas échéant. La liste des commandes CLI disponibles et les exigences de production figurent dans docs/ARCHITECTURE.md et docs/PROJECT.md.

Développement et tests

composer check   # lint + analyse statique + tests (la barre de fin de tâche)
composer audit   # vulnérabilités (accès réseau requis)
npm ci && node tests/Frontend/check.mjs && node tests/Frontend/run.mjs

Le frontend exige Node 18+. Détails et structure des tests dans docs/TESTING.md.

Documentation

Les règles de contribution destinées aux agents de développement figurent dans AGENTS.md.

Licence

Code source distribué sous licence MIT. Dépendances tierces gérées par Composer (composer show --license pour la liste des licences incluses).

About

Lecteur RSS/Atom auto-hébergé et multi-utilisateur, développé en PHP, SQLite et JavaScript natif. Il propose une interface responsive installable comme PWA et une API JSON.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages