https://archlinux.org/packages/community/x86_64/miniflux/
You can download precompiled binaries and packages on the GitHub Releases page. You could also build the application from the source code.
Here an example from the command line:
# Switch to the postgres user
$ 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
$ createdb -O miniflux miniflux
# Create the extension hstore as superuser
$ psql miniflux -c 'create extension hstore'
CREATE EXTENSION
Creating Postgresql extensions requires the SUPERUSER
privilege.
Several solutions are available:
SUPERUSER
privileges to the miniflux user only during the schema migration:ALTER USER miniflux WITH SUPERUSER;
-- Run the migrations (miniflux -migrate)
ALTER USER miniflux WITH NOSUPERUSER;
SUPERUSER
privileges before running the migrations.sudo -u postgres psql $MINIFLUX_DATABASE
> CREATE EXTENSION hstore;
Note that if you use Debian or Ubuntu, you might have to install the postgresql-contrib
package to activate the HSTORE
extension.
/usr/local/bin
chmod +x miniflux
DATABASE_URL
if necessaryminiflux -migrate
miniflux -create-admin
miniflux
You should configure a process manager like systemd or supervisord to supervise the Miniflux daemon.
You must have Debian >= 8 or Ubuntu >= 16.04. When using the Debian package, the Miniflux daemon is supervised by systemd.
dpkg -i miniflux_2.0.13_amd64.deb
DATABASE_URL
if necessaryminiflux -migrate
miniflux -create-admin
/etc/miniflux.conf
if necessarysystemctl restart miniflux
systemctl status miniflux
Note that you could also use the Miniflux APT repository instead of downloading manually the Debian package.
Since Miniflux v2.0.25, the Debian package is available for multiple architectures: amd64
, arm64
, and armhf
.
This way, it’s very easy to install Miniflux on a Raspberry Pi.
If you don’t want to run the SQL migrations manually each time you upgrade Miniflux, set the environment variable: RUN_MIGRATIONS=1
in /etc/miniflux.conf
.
Systemd reads the environment variables from the file /etc/miniflux.conf
.
You must restart the service to take the new values into consideration.
You must have Fedora or Centos/Redhat >= 7. When you use the RPM package, the Miniflux daemon is supervised by systemd.
rpm -ivh miniflux-2.0.13-1.0.x86_64.rpm
DATABASE_URL
if necessaryminiflux -migrate
miniflux -create-admin
/etc/miniflux.conf
if necessarysystemctl enable miniflux
systemctl start miniflux
systemctl status miniflux
Note that you could also use the Miniflux RPM repository instead of downloading manually the RPM package.
Systemd reads the environment variables from the file /etc/miniflux.conf
.
You must restart the service to take the new values into consideration.
Alpine Linux is a lightweight Linux distribution that is perfectly suited for running Miniflux.
An APK package is available from the Edge community repository (it was in testing before).
Edit the file /etc/apk/repositories
to enable the Edge repository: http://dl-cdn.alpinelinux.org/alpine/edge/community
. And then run apk update
.
The Miniflux installation is simple as running:
apk add miniflux miniflux-openrc miniflux-doc
Do not forget to install Postgresql:
apk add postgresql postgresql-contrib
Configure the database and enable the HSTORE
extension as mentioned previously.
On Alpine Linux, the Miniflux process is supervised by supervise-daemon
from OpenRC (there is no Systemd).
The log file /var/log/miniflux.log
is rotated with logrotate
.
In this context, the configuration file /etc/miniflux.conf
is used instead of environment variables:
# /etc/miniflux.conf
LOG_DATE_TIME=yes
LISTEN_ADDR=127.0.0.1:8080
DATABASE_URL=user=postgres password=secret dbname=miniflux sslmode=disable
# Run SQL migrations automatically:
# RUN_MIGRATIONS=1
To finalize the installation, create the database schema and a first user:
miniflux -c /etc/miniflux.conf -migrate
miniflux -c /etc/miniflux.conf -create-admin
And finally, start the application:
service miniflux start
Docker Registries:
docker.io/miniflux/miniflux
ghcr.io/miniflux/miniflux
quay.io/miniflux/miniflux
Docker Architectures:
amd64
arm64
arm/v7
arm/v6
Docker Tags:
latest
: Latest stable version2.0.25
: Specific versionnightly
: Development versionPull the image and run the container:
docker run -d \
-p 80:8080 \
--name miniflux \
-e "DATABASE_URL=postgres://miniflux:*password*@*dbhost*/miniflux?sslmode=disable" \
-e "RUN_MIGRATIONS=1" \
-e "CREATE_ADMIN=1" \
-e "ADMIN_USERNAME=*username*" \
-e "ADMIN_PASSWORD=*password*" \
miniflux/miniflux:latest
Running the command above will run the migrations and sets up a new admin account with the chosen username and password.
You could also use Docker Compose. Here is an example of a Compose file:
services:
miniflux:
image: miniflux/miniflux:latest
ports:
- "80:8080"
depends_on:
db:
condition: service_healthy
environment:
- DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
db:
image: postgres:15
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret
volumes:
- miniflux-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
volumes:
miniflux-db:
Start the application by running docker compose up -d
.
Remember that you still need to run the database migrations and create the first user:
# Run database migrations
docker compose exec miniflux /usr/bin/miniflux -migrate
# Create the first user
docker compose exec miniflux /usr/bin/miniflux -create-admin
Another way of doing the same thing is to populate the variables RUN_MIGRATIONS
, CREATE_ADMIN
, ADMIN_USERNAME
and ADMIN_PASSWORD
. For example:
services:
miniflux:
image: miniflux/miniflux:latest
ports:
- "80:8080"
depends_on:
db:
condition: service_healthy
environment:
- DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=test123
db:
image: postgres:15
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret
volumes:
- miniflux-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
volumes:
miniflux-db:
There are more examples in the Git repository with Traefik and Caddy: https://github.com/miniflux/v2/tree/master/contrib/docker-compose
You could also configure an optional health check in your Docker Compose file:
miniflux:
image: miniflux/miniflux:latest
healthcheck:
test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]