Multi-device RSS reading
Sunday, 16 Jul 2023
I see a lot of questions about how one can keep RSS readers synced across devices in a self-hosted way. Here is a description and a step by step process of how I have set this up for myself.
Rather than keeping devices and/or desktops in sync, the approach I am using is to set up a central source of truth, then point readers across multiple devices at that server. The server I chose was Miniflux than I am running in Docker on a spare laptop.
Miniflux has its own minimal web interface for managing feeds and catagories, for searching, as well as for reading. There is also support for filtering, rewriting, and scraping, which I have not used at all yet, but I like the potential.
Miniflux also supports acces via multiple APIs, most notably the Reader API, but also includes its own (which includes endpoints for creating miniflux users, and searching). API authentication can be with username/password, or with API tokens, both of which are set up on a per-user basis.
Once Miniflux is set up (which we’ll get into below), you need to log into miniflux with a browser (http://localhost:80 by default) as the admin user you set up in the steps that follow, and create an actual user for reading feeds. As admin, navigate to the Users tab, then fill out the form. You can decide whether that user also has admin privileges.
Now log out, then log back in as the user you just created. You can add some feeds before the next step. To enable apps to talk to Miniflux, Navigate to Settings>Integrations. I am using an iPad with Reeder 5 which supports the Reader API, so I would go to the Google Reader section, tick the Activate Google Reader API, and supply a username and password that you’ll use to log in from the app.
Miniflux does the work of periodically polling and fetching the RSS feeds, as well as performing any filtering or scraping you have configured, and building a full text search. Each feed in miniflux can be configured to fetch the original article as well. You can use the Miniflux UI (or API) to manage feeds, or, you can use your APP to di it. The result is the same. Marking articles as read or starring them is stored in Miniflux, so if you connect with a different app, all those things are the same across apps.