This post is mostly reference for a future self but explains what to do to have a working Miniflux installation on your Raspberry Pi on your local network.
I used a Raspberry Pi 4 (4GB) that is doing some file-serving and managing TV recordings TVHeadend on my network. Standard Raspbian lite, nothing fancy.
PostgreSQL installation and setup
You need a working installation of PostgreSQL to use Miniflux. When installing, we can directly setup the postgres user and the miniflux user and database.
$ apt update ... $ apt install postgresql
Set a password for the postgres user:
$ passwd postgres
Follow the instructions for setting up the miniflux database user and the miniflux database:
# Switch to the postgres user # (this is what you need an active postgres password for) $ su - postgres # Create a database user for Miniflux $ createuser -P miniflux Enter password for new role: ****** Enter it again: ****** # Create a database for miniflux that belongs to our user # (call it miniflux2 because this is somehow predefined in the configs.) $ createdb -O miniflux miniflux2 # Create the extension hstore as superuser $ psql miniflux -c 'create extension hstore' CREATE EXTENSION
Miniflux installation and setup
I set up the miniflux installation via its APT repository to enable global updates via apt (stolen from the miniflux website):
$ echo "deb [trusted=yes] https://repo.miniflux.app/apt/ /" | sudo tee /etc/apt/sources.list.d/miniflux.list > /dev/null $ apt update # finally: $ apt install miniflux
I checked the installation and connection via systemctl:
$ systemctl status miniflux.service ● miniflux.service - Miniflux Loaded: loaded (/lib/systemd/system/miniflux.service; enabled; vendor preset: en Active: active (running) since Sun 2023-01-15 22:06:56 CET; 2s ago Docs: man:miniflux(1) https://miniflux.app/docs/index.html Main PID: 10322 (miniflux) Tasks: 10 (limit: 4915) CGroup: /system.slice/miniflux.service └─10322 /usr/bin/miniflux Jan 15 22:06:55 lithium systemd: Starting Miniflux... Jan 15 22:06:55 lithium miniflux: -> Current schema version: 62 Jan 15 22:06:55 lithium miniflux: -> Latest schema version: 62 Jan 15 22:06:55 lithium miniflux: [INFO] Starting Miniflux... Jan 15 22:06:55 lithium miniflux: [INFO] Starting scheduler... Jan 15 22:06:56 lithium miniflux: [INFO] Sending readiness notification to S Jan 15 22:06:56 lithium miniflux: [INFO] Listening on "192.168.178.96:8472" Jan 15 22:06:56 lithium miniflux: [INFO] Activating Systemd watchdog Jan 15 22:06:56 lithium systemd: Started Miniflux.
I made some updates to the config file, to enable local network access and connect to the correct database with the correct user. The most important bit here was, to restart everything after the update to the configuration to actually enable it.
$ cat /etc/miniflux.cfg # See https://miniflux.app/docs/configuration.html DATABASE_URL=user=miniflux password=****** dbname=miniflux2 sslmode=disable LISTEN_ADDR=192.168.178.96:8472 RUN_MIGRATIONS=1 # Set up an admin user to get into the web-application $ miniflux -create-admin
If you want to try out an updated configuration, a good approach is to disable the service and run it in debug mode:
$ systemctl stop miniflux.service # start miniflux with a specific config-file: $ miniflux -debug -c /etc/miniflux.cfg
While the webapp is great especially on a desktop browser (and fast), I prefer native apps on my phone. There are two services you can activate in settings to enable some third party apps: Google Reader API and Fever API. This allows you to use apps like Reeder or Unread in iOS. Other options are also available. I personally also like the option to directly save an article to Instapaper.