Miniflux (Minimal RSS Reader) on Debian 12 (PostgreSQL + Nginx + SSL)
Miniflux is a fast, lightweight, and opinionated self-hosted RSS reader built for users who value simplicity, performance, and reliability over visual clutter and social features. It delivers a clean, distraction-free reading experience with excellent keyboard navigation, powerful feed filtering rules, and full support for RSS, Atom, and JSON feeds. Miniflux also exposes a robust REST API, making it compatible with many mobile and desktop feed-reader clients.
Running Miniflux on Debian 12 (Bookworm) provides a stable, secure, and long-term supported foundation. Debian 12 ships with systemd 252, OpenSSL 3, and mature PostgreSQL and Nginx packages, making it an excellent choice for a production-grade Miniflux deployment secured with HTTPS.
Architecture Overview
| Layer | Component | Role |
|---|---|---|
| OS | Debian 12 (Bookworm) | Stable, long-term supported Linux base |
| Application | Miniflux (Go binary) | Core RSS reader and feed processing engine |
| Database | PostgreSQL 15 | Stores users, feeds, entries, and metadata |
| Reverse Proxy | Nginx | HTTPS termination, compression, routing |
| TLS | Let’s Encrypt / PKI | Secure HTTPS access to the web interface |
Miniflux runs as a single static Go binary, which makes it extremely efficient, easy to maintain, and well-suited for servers with limited resources.
Why Use Miniflux?
- Minimalist by design – no ads, no tracking, no unnecessary UI elements
- Very fast and efficient – written in Go, low CPU and memory usage
- Self-hosted and private – your reading data never leaves your server
- Advanced filtering rules – auto-tag, auto-remove, or rewrite feed content
- Keyboard-first workflow – ideal for power users and developers
- REST API support – integrates with mobile apps and automation tools
- Reliable feed parsing – handles broken or non-standard feeds gracefully
Miniflux vs Other RSS Readers
| Feature / Capability | Miniflux | FreshRSS | Tiny Tiny RSS | Feedly |
|---|---|---|---|---|
| Hosting | Self-hosted | Self-hosted | Self-hosted | Cloud only |
| Backend | Go + PostgreSQL | PHP + MySQL | PHP + PostgreSQL | Proprietary |
| Resource usage | Very low | Medium | Medium–High | N/A |
| Ads / tracking | ❌ None | ❌ None | ❌ None | ✅ Yes |
| API access | ✅ Yes | ✅ Yes | ✅ Yes | Limited |
| Philosophy | Minimal & fast | Feature-rich | Feature-rich | SaaS |
Miniflux is best suited for users who prefer a focused, efficient reading experience and value speed and stability over advanced social or visual features.
Security & Best Practices
- Run Miniflux behind Nginx with HTTPS enabled.
- Store database credentials using environment variables, not in config files.
- Bind Miniflux to 127.0.0.1 and expose only Nginx publicly.
- Use strong admin credentials and rotate API tokens regularly.
- Schedule PostgreSQL backups and vacuum jobs.
- Use UFW or nftables to allow only ports 80 and 443.
- Automate SSL certificate renewal with Certbot.
- Keep Miniflux and system packages up to date for security fixes.
Typical Use Cases
- Personal RSS reader replacing Feedly or old Google Reader workflows
- Developers and DevOps engineers tracking blogs, changelogs, and CVE feeds
- Journalists and researchers monitoring multiple news and information sources
- Privacy-focused users avoiding cloud-based feed readers
- Automation pipelines consuming feeds via Miniflux API
Deploying Miniflux on Debian 12 with PostgreSQL, Nginx, and SSL gives you a fast, secure, and distraction-free RSS reading platform that is easy to maintain, extremely efficient, and fully under your control.
Create a Cloud Server Instance on Shape.Host
Before installing Miniflux, you need a clean Debian 12 VPS.
Go to https://shape.host and log in.
Click Create.
Select Instance.

Choose a data center close to your users.

Select Debian 12 (64-bit) as the operating system.
Choose a plan (recommended minimum):
2 vCPUs
4 GB RAM
20 GB NVMe SSD

Click Create Instance.

Copy the public IP address of the instance.
Your server is now ready.

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 are now logged in as root.
Step 2: Update the System
apt update
apt upgrade -y
This updates the package index and upgrades all 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
These packages provide:
- Download tools (curl, wget)
- Security and verification (ca-certificates, gnupg2)
- Web server (Nginx)
- Database server (PostgreSQL)

Step 4: Verify PostgreSQL Installation
psql --version
Confirms that PostgreSQL is installed correctly.

Step 5: Create Miniflux Database and User
Switch to the PostgreSQL system user:
su - postgres
Enter 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;
\q
Exit back to root:
exit
This ensures Miniflux has its own isolated database.

Step 6: Download Miniflux Binary
cd /usr/local/bin
wget https://github.com/miniflux/v2/releases/latest/download/miniflux-linux-amd64
Downloads the official Miniflux binary.
Step 7: Make Miniflux Executable
chmod +x miniflux-linux-amd64
mv miniflux-linux-amd64 miniflux
Moves Miniflux into your system PATH.

Step 8: Verify Miniflux Installation
miniflux -version
Confirms Miniflux runs correctly.

Step 9: Create Miniflux System User
useradd -r -s /usr/sbin/nologin miniflux
id miniflux
Creates a dedicated, non-login system user for security.

Step 10: Create Configuration Directory
mkdir /etc/miniflux
Step 11: Create Miniflux Configuration File
nano /etc/miniflux/miniflux.conf
Paste the configuration from your history:
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
Save and exit.

Step 12: Secure Configuration File
chown -R miniflux:miniflux /etc/miniflux
chmod 600 /etc/miniflux/miniflux.conf
Restricts access to sensitive credentials.

Step 13: Create systemd Service
nano /etc/systemd/system/miniflux.service
Paste:
[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

Step 14: Enable and Start Miniflux
systemctl daemon-reload
systemctl enable miniflux
systemctl start miniflux
systemctl status miniflux
Confirms Miniflux is running as a system service.

Step 15: Manual Test as Miniflux User (Optional)
su -s /bin/sh miniflux -c "miniflux -config-file /etc/miniflux/miniflux.conf"
Useful for debugging configuration issues.

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.
Step 17: Configure Nginx Reverse Proxy
nano /etc/nginx/sites-available/miniflux
Paste:
server {
listen 80;
server_name rss.example.com;
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;
}
}

Step 18: Enable Nginx Site
ln -s /etc/nginx/sites-available/miniflux /etc/nginx/sites-enabled/miniflux
rm /etc/nginx/sites-enabled/default
Step 19: Test and Reload Nginx
nginx -t
systemctl reload nginx

Step 20: Install Certbot and Enable SSL
apt install certbot python3-certbot-nginx
certbot --nginx -d debian-tutorials.shape.host
Certbot automatically issues and configures an SSL certificate.


Access Miniflux Securely
https://your-domain.com
Miniflux is now fully installed and secured on Debian 12.


Miniflux, Ghostfolio, NocoDB, HedgeDoc, Paperless-ngx, and similar applications benefit from fast, reliable infrastructure.
Shape.Host offers:
- Linux SSD VPS
- Instant provisioning
- Clean OS images
- High uptime
- Easy scalability
Visit https://shape.host to deploy your next application with confidence.