How to Install Miniflux (Minimal RSS Reader) on Debian 12

Estimated reading: 5 minutes 411 views

Introduction

This guide explains how to install Miniflux, a lightweight and efficient RSS reader, on Debian 12.
Miniflux runs as a single binary and stores feed data in PostgreSQL. In this setup, Nginx will be used as a reverse proxy to provide web access to the application.

This tutorial follows a structured step-by-step process including installing dependencies, configuring the database, running Miniflux as a system service, and setting up the Nginx reverse proxy.


Step 1: Connect to the Server via SSH

Linux / macOS

ssh root@YOUR_SERVER_IP

Windows (PowerShell or Windows Terminal)

ssh root@YOUR_SERVER_IP

Accept the SSH fingerprint when prompted. You will then be logged in as the root user.


Step 2: Update the System

apt update
apt upgrade -y

These commands refresh the package index and upgrade installed packages to the latest versions.


Step 3: Install Required Packages

apt install curl wget ca-certificates gnupg2 lsb-release unzip nginx postgresql postgresql-contrib

This installs the required tools, Nginx web server, and the PostgreSQL database server needed by Miniflux.


Step 4: Verify PostgreSQL Installation

psql --version

This command confirms that PostgreSQL is installed correctly.


Step 5: Create Miniflux Database and User

Switch to the PostgreSQL system user:

su - postgres

Open the PostgreSQL shell:

psql

Create the database and user:

CREATE DATABASE miniflux;
CREATE USER miniflux WITH PASSWORD 'STRONG_DB_PASSWORD';
ALTER DATABASE miniflux OWNER TO miniflux;
GRANT ALL PRIVILEGES ON DATABASE miniflux TO miniflux;

Exit PostgreSQL:

\q

Return to the root shell:

exit

This creates a dedicated database for Miniflux.


Step 6: Download Miniflux Binary

cd /usr/local/bin
wget https://github.com/miniflux/v2/releases/latest/download/miniflux-linux-amd64

This downloads the official Miniflux binary from GitHub.


Step 7: Make Miniflux Executable

chmod +x miniflux-linux-amd64
mv miniflux-linux-amd64 miniflux

These commands make the binary executable and rename it to miniflux.


Step 8: Verify Miniflux Installation

miniflux -version

This verifies that the Miniflux binary works correctly.


Step 9: Create Miniflux System User

useradd -r -s /usr/sbin/nologin miniflux
id miniflux

Creates a dedicated system user that will run the Miniflux service.


Step 10: Create Configuration Directory

mkdir /etc/miniflux

This directory will store the Miniflux configuration file.


Step 11: Create Miniflux Configuration File

nano /etc/miniflux/miniflux.conf

Paste the configuration:

DATABASE_URL=postgres://miniflux:STRONG_DB_PASSWORD@localhost/miniflux?sslmode=disable
LISTEN_ADDR=127.0.0.1:8080

# MUST MATCH NGINX DOMAIN
BASE_URL=https://rss.example.com

RUN_MIGRATIONS=1
CREATE_ADMIN=1
ADMIN_USERNAME=admin
ADMIN_PASSWORD=STRONG_ADMIN_PASSWORD

This file defines the database connection, listening address, and initial admin credentials.


Step 12: Secure Configuration File

chown -R miniflux:miniflux /etc/miniflux
chmod 600 /etc/miniflux/miniflux.conf

These commands restrict access to the configuration file since it contains sensitive credentials.


Step 13: Create systemd Service

nano /etc/systemd/system/miniflux.service

Paste the following service configuration:

[Unit]
Description=Miniflux RSS Reader
After=network.target postgresql.service

[Service]
User=miniflux
Group=miniflux
ExecStart=/usr/local/bin/miniflux -config-file /etc/miniflux/miniflux.conf
Restart=always
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

This allows Miniflux to run as a managed systemd service.


Step 14: Enable and Start Miniflux

systemctl daemon-reload
systemctl enable miniflux
systemctl start miniflux
systemctl status miniflux

These commands reload systemd, enable the service at boot, start the service, and check its status.


Step 15: Manual Test as Miniflux User (Optional)

su -s /bin/sh miniflux -c "miniflux -config-file /etc/miniflux/miniflux.conf"

This runs Miniflux manually as the service user for troubleshooting.


Step 16: Test Miniflux from Browser (Before Nginx)

Open your browser and visit:

http://YOUR_SERVER_IP:8080

You should see the Miniflux login page if the application is running correctly.


Step 17: Configure Nginx Reverse Proxy

nano /etc/nginx/sites-available/miniflux

Paste the configuration:

server {
listen 80;
server_name _;

location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

This config forwards web traffic from Nginx to the Miniflux application.


Step 18: Enable Nginx Site

ln -s /etc/nginx/sites-available/miniflux /etc/nginx/sites-enabled/miniflux
rm /etc/nginx/sites-enabled/default

This enables the Miniflux Nginx site and disables the default configuration.


Step 19: Test and Reload Nginx

nginx -t
systemctl reload nginx

These commands verify the Nginx configuration and reload the web server so the changes take effect.

Step 20: Access Miniflux Securely

https://your-domain.com

Miniflux is now fully installed and secured on Debian 12.

Conclusion

You have successfully installed Miniflux on Debian 12 and configured it to run as a managed systemd service. The application is connected to a dedicated PostgreSQL database and served through Nginx as a reverse proxy.

Your Miniflux instance should now be accessible through the configured domain, allowing you to log in with the admin account created during the initial setup and begin subscribing to RSS feeds.

This deployment method ensures the service runs automatically on system boot, keeps configuration and credentials secured, and provides a reliable foundation for running Miniflux in a production environment.

Share this Doc

How to Install Miniflux (Minimal RSS Reader) on Debian 12

Or copy link

CONTENTS