Giter Club home page Giter Club logo

freshrss's Introduction

Liberapay donations

FreshRSS

FreshRSS is a self-hosted RSS feed aggregator.

It is lightweight, easy to work with, powerful, and customizable.

It is a multi-user application with an anonymous reading mode. It supports custom tags. There is an API for (mobile) clients, and a Command-Line Interface.

Thanks to the WebSub standard, FreshRSS is able to receive instant push notifications from compatible sources, such as Friendica, WordPress, Blogger, Medium, etc.

FreshRSS natively supports basic Web scraping, based on XPath, for Web sites not providing any RSS / Atom feed. Also supports JSON documents.

FreshRSS offers the ability to reshare selections of articles by HTML, RSS, and OPML.

Different login methods are supported: Web form (including an anonymous option), HTTP Authentication (compatible with proxy delegation), OpenID Connect.

Finally, FreshRSS supports extensions for further tuning.

FreshRSS logo

Feedback and contributions

Feature requests, bug reports, and other contributions are welcome. The best way is to open an issue on GitHub. We are a friendly community.

To facilitate contributions, the following option is available:

Open in GitHub Codespaces

Screenshot

FreshRSS screenshot

Disclaimer

FreshRSS comes with absolutely no warranty.

Requirements

  • A recent browser like Firefox / IceCat, Edge, Chromium / Chrome, Opera, Safari.
    • Works on mobile (except a few features)
  • Light server running Linux or Windows
    • It even works on Raspberry Pi 1 with response time under a second (tested with 150 feeds, 22k articles)
  • A web server: Apache2.4+ (recommended), nginx, lighttpd (not tested on others)
  • PHP 7.4+
  • PostgreSQL 9.5+ or SQLite or MySQL 5.5.3+ or MariaDB 5.5+

The latest stable release can be found here. New versions are released every two to three months.

If you want a rolling release with the newest features, or want to help testing or developing the next stable version, you can use the edge branch.

Automated install

  • Docker
  • YunoHost
  • Cloudron
  • PikaPods

Manual install

  1. Get FreshRSS with git or by downloading the archive
  2. Put the application somewhere on your server (expose only the ./p/ folder to the Web)
  3. Add write access to the ./data/ folder for the webserver user
  4. Access FreshRSS with your browser and follow the installation process
  5. Everything should be working :) If you encounter any problems, feel free to contact us.
  6. Advanced configuration settings can be found in config.default.php and modified in data/config.php.
  7. When using Apache, enable AllowEncodedSlashes for better compatibility with mobile clients.

More detailed information about installation and server configuration can be found in our documentation.

Advice

  • For better security, expose only the ./p/ folder to the Web.
    • Be aware that the ./data/ folder contains all personal data, so it is a bad idea to expose it.
  • The ./constants.php file defines access to the application folder. If you want to customize your installation, look here first.
  • If you encounter any problem, logs are accessible from the interface or manually in ./data/users/*/log*.txt files.
    • The special folder ./data/users/_/ contains the part of the logs that are shared by all users.

FAQ

  • The date and time in the right-hand column is the date declared by the feed, not the time at which the article was received by FreshRSS, and it is not used for sorting.
    • In particular, when importing a new feed, all of its articles will appear at the top of the feed list regardless of their declared date.

Extensions

FreshRSS supports further customizations by adding extensions on top of its core functionality. See the repository dedicated to those extensions.

APIs & native apps

FreshRSS supports access from mobile / native apps for Linux, Android, iOS, Windows and macOS, via two distinct APIs: Google Reader API (best), and Fever API (limited features and less efficient).

App Platform Free Software Maintained & Developed API Works offline Fast sync Fetch more in individual views Fetch read articles Favourites Labels Podcasts Manage feeds
News+ with Google Reader extension Android Partially 2015 GReader ✔️ ⭐⭐⭐ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
FeedMe* Android ✔️✔️ GReader ✔️ ⭐⭐ ✔️ ✔️ ✔️
EasyRSS Android ✔️ ✔️ GReader Bug ⭐⭐ ✔️
Readrops Android ✔️ ✔️✔️ GReader ✔️ ⭐⭐⭐ ✔️
Fluent Reader Lite Android, iOS ✔️ ✔️✔️ GReader, Fever ✔️ ⭐⭐⭐
FocusReader Android ✔️✔️ GReader ✔️ ⭐⭐⭐ ✔️ ✔️
Read You Android ✔️ Work in progress GReader, Fever ⭐⭐ ✔️ ✔️ ✔️
ChristopheHenry Android ✔️ Work in progress GReader ✔️ ⭐⭐ ✔️ ✔️
Fluent Reader Windows, Linux, macOS ✔️ ✔️✔️ GReader, Fever ✔️ ✔️
RSS Guard Windows, GNU/Linux, macOS, OS/2 ✔️ ✔️✔️ GReader ✔️ ⭐⭐ ✔️ ✔️ ✔️ ✔️ ✔️
NewsFlash GNU/Linux ✔️ ✔️✔️ GReader, Fever ⭐⭐ ✔️ ✔️ ✔️
Newsboat 2.24+ GNU/Linux, macOS, FreeBSD ✔️ ✔️✔️ GReader ✔️ ✔️ ✔️
Vienna RSS macOS ✔️ ✔️✔️ GReader
Readkit iOS, macOS ✔️✔️ GReader ✔️ ⭐⭐⭐ ✔️ ✔️ 💲
Reeder* iOS, macOS ✔️✔️ GReader, Fever ✔️ ⭐⭐⭐ ✔️ ✔️ ✔️
lire iOS, macOS ✔️✔️ GReader
Unread iOS ✔️✔️ Fever ✔️ ✔️
Fiery Feeds iOS ✔️✔️ Fever
Netnewswire iOS, macOS ✔️ Work in progress GReader ✔️ ✔️ ✔️

* Install and enable the GReader Redate extension to have the correct publication date for feed articles if you are using Reeder 4 or FeedMe. (No longer required for Reeder 5)

Included libraries

Only for some options or configurations

Alternatives

If FreshRSS does not suit you for one reason or another, here are alternative solutions to consider:

freshrss's People

Contributors

aledeg avatar alkarex avatar alwaysin avatar amaurycarrade avatar brookedot avatar colonelmoutarde avatar danc avatar dependabot[bot] avatar frenzie avatar hckweb avatar hoilc avatar javerous avatar kasimircash avatar kevinpapst avatar marapavelka avatar marcomrc avatar marienfressinaud avatar martinrotter avatar math-gh avatar mejans avatar myuki avatar pattems avatar quenty31 avatar renzo38 avatar rom-1 avatar sad270 avatar somidad avatar supersandro2000 avatar tiborepcek avatar twilek-de avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freshrss's Issues

Priorisation des flux

Certains sites publient beaucoup. Il serait bien de pouvoir les rendre moins prioritaires que d'autres sites. Le système de RSSLounge était très bien et très apprécié.

Feed.php

mod_fcgid: stderr: PHP Notice: Undefined index: pathEntries in app/models/Feed.php on line 337, referer: /freshrss/public/?c=configure&a=feed&id=GXEL5w
mod_fcgid: stderr: PHP Notice: Undefined index: httpAuth in app/models/Feed.php on line 338, referer: /freshrss/public/?c=configure&a=feed&id=GXEL5w

Liens de retour à l'accueil

Lors de l'édition d'un flux par exemple, il faudrait un lien pour revenir en arrière (système de fil d’Ariane ?)

Aucun retour utilisateur

Il faudrait rajouter des retours utilisateurs sous la forme de notifications (bas de l'écran) pour indiquer si les choses se sont bien passées ou non

Ajout flux RSS

Lors de l'ajout d'un flux RSS/XML il serait pratique de pouvoir ajouter directement la catégorie. Je trouve contraignant le fait de c/c le lien du flux xml, cliquer sur le '+' puis sélectionner la catégorie, et cliquer sur 'Valider'

Import des flux RSS OPML non opérationnel

J'ai vidé ma BDD afin de repartir de zero ensuite j'ai importé mon fichier OPML avec deux comportements différents en résultat.
Premier coup :

Fatal error: Uncaught exception 'Exception' in /var/www/FreshRSS/app/models/Feed.php:49 Stack trace: #0 /var/www/FreshRSS/app/models/Feed.php(12): Feed->_url('planet.archlinu...') #1 /var/www/FreshRSS/lib/lib_rss.php(163): Feed->__construct('planet.archlinu...') #2 /var/www/FreshRSS/lib/lib_rss.php(149): getFeed(Object(SimpleXMLElement), 'UX9CJg') #3 /var/www/FreshRSS/lib/lib_rss.php(130): getFeedsOutline(Object(SimpleXMLElement), 'UX9CJg') #4 /var/www/FreshRSS/app/controllers/configureController.php(170): opml_import('<?xml version="...') #5 [internal function]: configureController->importExportAction() #6 /var/www/FreshRSS/lib/Dispatcher.php(141): call_user_func(Array) #7 /var/www/FreshRSS/lib/Dispatcher.php(65): Dispatcher->launchAction('importExportAct...') #8 /var/www/FreshRSS/lib/FrontController.php(89): Dispatcher->run() #9 /var/www/FreshRSS/public/index.php(38): FrontController->run() #10 {main} thrown in /var/www/FreshRSS/app/models/Feed.php on line 49

Deuxième coup : l'application me dit que les flux sont importés mais rien n'est fait !

Merci d'avance.

Refactorisation du code

Certaines parties commencent à être très sales (la récupération des articles par exemple commence à être ignoble et incompréhensible par exemple). Il faudrait déterminer les parties à reprendre et revoir ce code.

API

Créer une api

"Charger plus d'articles" buggué

Lorsque la page n'affiche que des articles non lus sur plusieurs pages, si l'on marque un article en tant que lu, le "Charger plus d'articles" ne va pas charger les bons articles.

Si on considère que les articles U, V et W sont sur la page 1 et les articles X, Y et Z sur la page 2 (on affiche donc 3 articles par page). Tous ces articles sont non lus et on affiche que les non lus. Si l'on marque l'article U comme lu et que l'on clique sur "Charger plus d'articles", on voudrait récupérer les 3 articles suivants non lus qui ne sont pas affichés (càd X, Y et Z). En fait, on va récupérer seulement Y et Z car lors du chargement, on considère que l'article X est déjà sur la page 1. Et effectivement, en rechargeant la page, X est bien sur la page 1 (puisque U a été marqué comme lu).

C'est pas très clair mais assez facile à corriger... mais de toutes manières avec la révision de l'interface, il n'y aura plus ce bouton donc on s'en fiche :)

Système de partage

À rajouter éventuellement, un système de partage via une url paramétrée lorsque les articles sont mis en favoris (vers quelque chose type Shaarli)

Mise à jour des articles

Lorsqu'un article est mis à jour, il serait bien de le mettre à jour aussi en BDD et remettre en non lu.

Attention, une demande a été faite pour rendre cette mise à jour facultative pour certains flux (youtube par exemple)

Permettre de configurer FreshRSS en vue mobile

Il manque éventuellement la possibilité d'ajouter un flux et de gérer son installation depuis un mobile, ce qui peut s'avérer utile sur la vue Responsive.

Le Design responsive semble vraiment excellent (en Vue Adaptative sous Firefox en tout cas il me parait tout simplement parfait), il va être difficile de faire un choix ergonomique pour cette requête.

Internationalisation ?

Minz fournit déjà toutes les briques nécessaires, ça devrait être assez facile de mettre en place... mais est-ce nécessaire / urgent ?

Mode endless ?

Faire en sorte de charger les X articles suivants une fois arrivé vers le bas de la page

Flux RSS vides

Bug affichage lorsque "non lus par défaut"

La vue affiche alors "Il n'y a aucun flux à afficher." sans possibilité de voir les autres articles
Il faudrait charger les autres articles s'il n'y a aucun non lus dans ce cas précis

Ajouter système des commentaires

Lorsqu'on met un article en favori, il peut être intéressant de rajouter un petit commentaire. Le flux récupéré par Uniflux contiendrait ce commentaire plutôt que le "Article publié initialement sur X par Y, mis en favoris dans FreshRSS"

Actualisation de *tous* les flux

Actuellement lors du clic de rafraîchissement, on ne met à jour que 10 flux pour limiter la charge serveur (et pour que le script PHP ait le temps de finir)
Avec des requêtes Ajax on devrait pouvoir paralléliser la mise à jour et éviter les mauvaises fins de script ?

Bug affichage articles lus

Lorsque des articles sont notés "non lus" et qu'on regarde par exemple en filtrant selon un site qui n'a que des articles vus, il est affiché "Il n'y a aucun flux à afficher." -> Il faudrait afficher les articles lus par défaut dans ce cas là

Tester erreur SimplePie

Actuellement on ignore les erreurs SimplePie, une exception devrait être levée

$feed = new SimplePie ();
$feed->set_feed_url ($this->url);
$feed->set_cache_location (CACHE_PATH);
$feed->init ();

if ($feed->error()) {
    throw new FeedException ($feed->error);
} else {
    $subscribe_url = $feed->subscribe_url ();
    ...
}

Partage d'article

Il faudrait pouvoir partager un article par mail et/ou par flux RSS (un peu comme Tiny Tiny RSS)

Créer un installateur simplifiant le déploiement

L'idée serait de faire un simple formulaire généré dans un fichier type "install.php" et qui remplirait lui même les fichiers de configurations (accès à la base de données, url, etc).

nb : Penser aussi au déploiement sur des hébergement mutualisés qui n'offrent qu'un accès Web ou ftp sans console.

Affichage SVG

Bonjour,

Je viens d'installer FreshRSS sur mon server mutualisé!
Tout fonctionne plutot bien, et je découvre avec plaisir ce système!
cependant, je rencontre un petit problème d'affichage des icones en svg.

Sur des navigateurs desktop (Firefox 20.0 et Chrome 25.0.1364.172, sous Windows 7, et Firefox et Chromiun sous Linux Mint (Je n'ai pas les versions précises, mais elles ce sont au pire les avant dernières!)), Je ne parvient pas à afficher les icones en svg. Les emplacements sont bien définis, les icones accessibles....
Je peux cliquer sur les liens, et ils fonctionnent sans problème!

Je pensais donc que cela venait de mon serveur, mais sur Navigateur Mobile (sous android) j'affiche ces icones sans aucun problèmes.

Bug mise à jour des flux

Si le délai d'attente est trop long, il se peut que de vieux articles soient ajoutés au flux, et pas supprimés (car le système n'a pas le temps de passer dans la boucle de suppression des vieux articles.

C'est lié au bug #17 mais il y a peu-être une meilleure façon de faire encore (séparer la suppression dans une tâche à part par exemple)

Il n'y a aucun flux/article à afficher

Bonjour,

Je viens de faire une installation d'une Debian wheezy avec Apache2, mysql (5.5.24) et php (5.4.4.9).
Mon serveur est derrière un proxy, j'ai exporté les variables proxy pour root.

J'ai réalisé un git clone dans mon /var/www après avoir configuré l'application et l'index.php (au passage il serait souhaitable de créer des répertoires vides de caches et log car cela me faisait des erreurs).

Possédant une instance de RSSlounge tournant depuis un an ou deux, j'ai exporté le flux opml et importé dans fressrss.
Apparemment, cela s'est bien passé car ils sont bien listés dans Configurer/Flux Rss.
Cependant cela s'arrete là, j'ai beau mettre à jour les flux en cliquant sur le bouton, je ne vois rien se mettre à jour.
Pas d'erreurs dans aucune logs n'est affiché suite à cette action.

Pour aider, j'ai cherché un bug à mettre sous la dent, le seul que j'ai vu est la suite d'action suivante :
Configurer /Flux RSS/ Prendre un flux au hasard / Visualiser sa config et valider

Cela déclenche la page suivante

 Application problem ### See logs files

Ce qui donne :
[Fri, 09 Nov 2012 16:05:58 +0000] [error] indexAction cannot be invoked on configureController

Merci d'avance de ton aide et bonne continuation

Indiquer le nombre d'entrées non lues de chaque flux

L'idée serait d'afficher entre parenthèse combien il reste d'entrées non lues en bout de ligne lorsqu'on déplie une catégorie, pour différencier les flux sans actu des flux où il y a quelque chose à lire.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.