RSS (Really Simple Syndication) is a way in which people can subscribe to a feed on a web site. Instead of visiting a web site to see what if any new articles of interest have been published, RSS may be used to detect new articles and possibly alert you when something new is available. An RSS Aggregator is a centralized system that subscribes to multiple RSS feeds and provides one place to view them all. In my case I have multiple news and humor sites to which I subscribe and want to be able to read all the articles from those feeds on multiple devices such as a computer, a phone, and a tablet. The main goals of my RSS Aggregation implementation are:

To implement this solution I am using the following technologies:

The use of unRAID, NGINX, and Let's Encrypt are discussed more in other articles. The reason I am using NGINX as a proxy is that freshrss does not have integrated SSL support. Without SSL your login and password are sent to the server without any protection so anyone listening to the connection, (think about free WiFi offerings at many restaurants, hotels, and businesses), can potentially capture your user name and password. SSL protects against this exposure by encrypting your connection so anyone capturing the data will not be able to read it.

There are a few different options for RSS readers and RSS aggregation servers, some of which I like more than what was ultimately chosen due to features or user experience, but the chosen software was the best for me that met all my goals without any major gaps or usability issues. Since there is a supported Docker container for freshrss in the unRAID Community Applications, installation was straight-forward. While using an external database is optional, I like to use one since it allows me to easily move the freshrss software to a different server and retain all the configurations and settings. For the external database I am using MariaDB in another Docker container running on an unRAID server. Finally, to allow connections from clients to be encrypted, I use NGINX with Let's Encrypt as a reverse proxy in front of the freshrss server.

On the client side I mostly use Android-based tablets and phones for reading. Unfortunately, most if not all the RSS clients I investigated that allowed for centralized control over the feeds and read status were tied to a third-party service. The FeedMe client, however, offers integration with a few different aggregation services including freshrss. The freshrss software also provides a web-based interface that may be accessed using a standard web browser on things like Windows or iOS-based devices.

After using this solution for several months, I have no major complaints or things that I would like to improve upon.