Hosting Your Own RSS Reader With Miniflux
Deploy Miniflux on a VPS to aggregate thousands of feeds into a fast, keyboard-driven RSS reader with a Postgres backend and complete privacy.
Netbay Developer Relations
Netbay Engineering
On this page
RSS is quietly the best way to keep control of the news you read, and Miniflux is the fastest, most opinionated self-hosted reader you can run. It is a single binary in Go with a Postgres backend, a minimalist web UI, and keyboard-first navigation that feels like a terminal editor. No ads, no tracking, no algorithm choosing what you see — just the feeds you asked for.
The noise of social timelines makes a curated feed list feel almost radical. You subscribe to the sources you trust, skim items at your own pace, and never have engagement-bait reshuffling your reading order. Because the reader runs on your own box, your unread counts and reading habits also stay entirely on infrastructure you own.
Because Miniflux is so light, it is an ideal first or second service on a small VPS alongside your other self-hosted apps. This guide covers install, feed organization, and the fetch settings that keep it polite to the sites it reads.
Why Miniflux Minifies the Problem
- Single static binary, no JavaScript front end, and sub-second page loads even on thousands of articles.
- Full OPML import/export, so you are never locked in.
- Built-in fever API lets iOS readers like Reeder connect.
- Filters run on titles, content, tags, and URLs you subscribe to.
- No external JS: your reading habits never leave the box.
It pairs naturally with a reverse proxy and a Postgres database, both of which you likely already run for other apps. The minimal footprint is the point: it shares a small VPS gracefully and still handles a heavy personal reading load.
The keyboard shortcuts are the other big productivity win. Once you learn to jump between feeds, mark items as read, and star the ones worth saving without ever lifting your hands to the mouse, a full inbox review takes minutes instead of an afternoon of tab-switching. Power users often reach for Miniflux precisely because this flow is so deliberate and fast.
It also understands that not every feed deserves the same treatment. You can mute a feed temporarily, disable a noisy subscription, or set an individual feed to archive items automatically after a chosen number of days, which keeps the unread queue honest without manual cleanup.
Compose Install
Miniflux is a container plus one database. The official image makes the schema migration part of startup, so there is nothing to run by hand:
services:
miniflux:
image: miniflux/miniflux:2.2
container_name: miniflux
environment:
- DATABASE_URL=postgres://miniflux:secret-pass@db/miniflux?sslmode=disable
- BASE_URL=https://rss.example.com
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=choose-a-strong-one
depends_on:
- db
ports:
- "127.0.0.1:8080:8080"
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=secret-pass
- POSTGRES_DB=miniflux
volumes:
- ./db:/var/lib/postgresql/data
restart: unless-stoppedThe CREATE_ADMIN secret is only used on first boot; rotate it afterwards through the admin screen so a default credential is not left in place.
Because Miniflux is server-side, the feed fetches happen on the box itself rather than in your browser. That means your IP is never exposed to the sites you read, and you can point the whole thing behind a privacy proxy if you want. The trade-off is that a slow or throttled feed can block that feed's refresh cycle, so keep per-feed intervals generous for sites you know are flaky.
Importing Your Feeds
Migrate from an existing reader by exporting OPML and importing in the UI. Or script your subscription list for reproducibility:
curl -s https://rss.example.com/api/v1/export?token=YOUR_API_TOKEN -o feeds.opml
# then re-import into any Miniflux instance laterGenerate an API token from Settings -> API Keys if you want programmatic access for scripts or feed curation.
Keeping Fetches Polite
Miniflux polls every feed on its schedule. Tune per-feed intervals to avoid hammering small sites and to respect their servers:
Settings -> Feeds -> edit an individual feed
- Polling frequency: 5 minutes to 24 hours
- Ignore HTTP cache (keep disabled for hostile sites)
- Fetch via a proxy if a feed URL is geo-blockedFor very noisy feeds, add a filter rule to auto-mark or drop articles matching keywords you do not care about, keeping only what you actually want to read unread.
Takeaway
Miniflux gives you a fast, private, keyboard-driven RSS reader on infrastructure you own, with clean data exports and a tiny RAM footprint alongside your other services.
It coexists happily with other apps on a 1 GB Ubuntu VPS. Deploy one on Netbay in under 60 seconds — netbayhosts.in.
Keep reading
Follow along on a real VPS
Deploy Linux in under 60 seconds
These guides are written against Ubuntu, Debian, and RHEL-family images — the same ones on NetBay.
Deploy an instance