Miniflux

Miniflux is a minimalist and opinionated feed reader.


Note

For this guide you should be familiar with the basic concepts of

License

The software is licensed under Apache License 2.0. All relevant information can be found in the GitHub repository of the project.

Prerequisites

Warning

PostgreSQL has to be setup as shown in this Guide! Especially, you’ll need to know your PostgreSQL Port MyPostgreSQLPort

You’ll need to create a user and a database in PostgreSQL first.

New PostgreSQL User

To create a new database user, we consider the following option:

  • -P: To get a user name and password dialogue.

Warning

Please replace <username> with your user name!

[isabell@stardust ~]$ createuser <username> -P
Enter password for new role:
Enter it again:
[isabell@stardust ~]$

New PostgreSQL Database

The following options will be used to create the new database:

  • --encoding: Set of UTF8 encoding

  • --owner: The owner of the new database. In this example the new user of the previous step.

  • --template: PostgreSQL supports standard templates to create the database structure.

  • database name: And as last option the name of the database (e.g. miniflux2).

Warning

Please replace <username> with your user name!

[isabell@stardust ~]$ psql -d template1 -c 'create extension hstore;'
[isabell@stardust ~]$ createdb --encoding=UTF8 --owner=<username> --template=template1 miniflux2
[isabell@stardust ~]$

Setup domain

The domain you want to use must be set up:

[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$

Installation

Download binary

Check the Miniflux website or GitHub for the latest release and copy the download link to the binary file named miniflux-linux-amd64. Then cd to your ~/bin directory and use wget to download it. Replace the URL with the one you just copied.

[isabell@stardust ~]$ cd bin/
[isabell@stardust bin]$ wget https://github.com/miniflux/miniflux/releases/download/42.23.1/miniflux-linux-amd64
[…]
Saving to: ‘miniflux-linux-amd64’

100%[======================================>] 11,133,568  7.63MB/s   in 1.4s

2018-10-11 16:54:43 (7.63 MB/s) - ‘miniflux-linux-amd64’ saved [11133568/11133568]
[isabell@stardust bin]$

Make the file miniflux-linux-amd64 executable

[isabell@stardust bin]$ chmod +x miniflux-linux-amd64
[isabell@stardust bin]$

Configuration

Configure web server

Note

Miniflux is running on port 9000.

To make the application accessible from the outside, configure a web backend:

[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$

Finishing installation

Setup PostgreSQL database and admin user

Define the environment variable DATABASE_URL first for temporary usage. After that, run the SQL migrations and create an admin user.

 [isabell@stardust ~]$ export DATABASE_URL="user=isabell password=MySuperSecretPassword dbname=miniflux2 sslmode=disable host=localhost"
 [isabell@stardust ~]$ miniflux-linux-amd64 -migrate
 Current schema version: 0
 Latest schema version: 16
 Migrating to version: 1
 Migrating to version: 2
 Migrating to version: 3
 [...]
 [isabell@stardust ~]$ miniflux-linux-amd64 -create-admin
 Enter Username: isabell
 Enter Password: ******
 [isabell@stardust ~]$

Setup daemon

Create ~/etc/services.d/miniflux.ini with the following content:

[program:miniflux]
environment =
 LISTEN_ADDR="0.0.0.0:9000",
 BASE_URL="https://isabell.uber.space",
 DATABASE_URL="user=isabell password=MySuperSecretPassword dbname=miniflux2 sslmode=disable host=localhost port=MyPostgreSQLPort"
command=miniflux-linux-amd64

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

If it’s not in state RUNNING, check your configuration.

Go to https://isabell.uber.space/ and log in to your installation with the login isabell and password given above.

Best practices

Configuration

Check the Miniflux documentation for further environment variables that could be placed in ~/etc/services.d/miniflux.ini.

Updates

Note

Check the update Feed regularly to stay informed about the newest version.

Check the GitHub’s Atom Feed for any new Miniflux releases and copy the link to the miniflux-linux-amd64 binary. In this example the version is 42.23.2, which of course does not exist. So, change the version to the latest one in the highlighted line. Before that, set the database environment variable, flush all user sessions and stop the service.

[isabell@stardust ~]$ export DATABASE_URL="user=isabell password=MySuperSecretPassword dbname=miniflux2 sslmode=disable host=localhost port=MyPostgreSQLPort"
[isabell@stardust ~]$ miniflux-linux-amd64 -flush-sessions
Flushing all sessions (disconnect users)
[isabell@stardust ~]$ supervisorctl stop miniflux
miniflux: stopped
[isabell@stardust ~]$ cd bin/
[isabell@stardust bin]$ wget https://github.com/miniflux/miniflux/releases/download/42.23.2/miniflux-linux-amd64
[…]
Saving to: ‘miniflux-linux-amd64’

100%[======================================>] 11,133,568  7.63MB/s   in 1.4s

2018-10-11 16:54:43 (7.63 MB/s) - ‘miniflux-linux-amd64’ saved [11133568/11133568]
[isabell@stardust bin]$

Make the binary miniflux-linux-amd64 executable, migrate the database and start the service again.

[isabell@stardust bin]$ chmod +x miniflux-linux-amd64
[isabell@stardust bin]$ miniflux-linux-amd64 -migrate
Current schema version: 16
Latest schema version: 17
Migrating to version: 1
Migrating to version: 2
Migrating to version: 3
[...]
[isabell@stardust bin]$ supervisorctl start miniflux
miniflux: started
[isabell@stardust bin]$

Check the Miniflux website for news and/or breaking changes.


Tested with Miniflux 2.0.12, Uberspace 7.1.15.0

Written by: stratmaster <https://github.com/stratmaster>