Railway

Deploy Miniflux

Feedly alternative. Minimalist self-hosted RSS/Atom feed reader

Deploy Miniflux

miniflux-scheduler

miniflux/miniflux:latest

Just deployed

Just deployed

/var/lib/postgresql/data

Deploy and Host Miniflux on Railway

Miniflux is a minimalist, opinionated feed reader written in Go: subscribe to RSS, Atom, JSON Feed or RDF sources and get a fast, distraction-free reading list with keyboard shortcuts, full-text search, article scraping, filter rules and a tracker-stripping media proxy. It is what you reach for when Feedly or Inoreader feel heavy, ad-supported or too interested in what you read — everything lives in your own PostgreSQL database.

Deploy Miniflux on Railway in the production shape rather than the demo shape. The template runs three services: a Miniflux web service on a public HTTPS domain serving the UI, the REST API and the Fever and Google Reader compatible APIs; a private Miniflux scheduler service from the same image, owning background feed polling, the worker pool and the nightly cleanup job; and a managed PostgreSQL 18 database holding feeds, entries, sessions and settings. Splitting the background tier out lets you scale the web tier without every replica polling the same feeds twice, and the first administrator is created on boot from the username and password you supply.

Miniflux Railway architecture

Getting Started with Miniflux on Railway

Deploy the template, set ADMIN_USERNAME and ADMIN_PASSWORD, and wait for the three services to go green. Open the public URL of the miniflux service and sign in — there is no registration form, so this is the only account until you add more under Settings → Users. Click Feeds (+) and paste a feed or site URL (https://go.dev/blog finds the feed itself), or Import an OPML file from Feedly. The first fetch is immediate: entries appear under Unread, where you read an article inline, press s to star it or m to toggle read state. Later refreshes come from the scheduler service — watch "Last check" advance on the Feeds page on its own. Settings → Integrations wires up Wallabag, Readeck, Telegram and webhooks; API Keys issues tokens for clients such as Reeder or NetNewsWire.

Miniflux unread list showing Go Blog articles Miniflux article view of a starred Go Blog post Miniflux feeds page listing three subscribed feeds

About Hosting Miniflux

Miniflux solves one problem well: following hundreds of sources without handing your reading history to an ad network. Self-host it when you want subscriptions and read state to outlive any vendor.

  • Fetches full article content from truncated feeds using per-feed scraper rules
  • Blocklist, keeplist and rewrite rules that filter entries on arrival
  • PostgreSQL-backed full-text search, plus Fever and Google Reader API compatibility
  • Media proxy that strips referrers and trackers from images
  • Passkeys/WebAuthn, OIDC single sign-on and API keys beside password login

The two Miniflux services are one image in different roles: the web service answers requests, while the scheduler picks feeds whose next check has expired, hands them to its worker pool and archives old entries daily. Both reach PostgreSQL over the private network.

Why Deploy Miniflux on Railway

Railway removes the parts of self-hosting that are not about reading feeds:

  • One-click deploy with database, scheduler and web tier already wired together
  • Managed PostgreSQL with backups — no volume or initdb management
  • Free HTTPS on a generated domain, plus custom domains when you want one
  • Private networking between app, scheduler and database out of the box
  • Health checks and restart policies preconfigured on both services

Common Use Cases for Self-Hosted Miniflux

  • A personal news hub syncing read state across desktop and phone over the Google Reader API
  • A team watchlist of release feeds, changelogs and security advisories
  • Filtered feeds that drop noise with blocklist rules and push the rest to a webhook

Dependencies for Miniflux

  • Minifluxminiflux/miniflux:latest (Alpine, Apache 2.0), deployed twice: public web service and private scheduler
  • PostgreSQL 18 — Railway's managed database holding feeds, entries, users, sessions and settings. Miniflux keeps nothing on disk, so no volume is needed

Environment Variables Reference

VariableDescriptionRequired
DATABASE_URLPostgreSQL connection string, wired to ${{Postgres.DATABASE_URL}}Yes
ADMIN_USERNAMEUsername of the first administrator, created on first bootYes
ADMIN_PASSWORDPassword for that administrator (minimum 6 characters)Yes
CREATE_ADMIN1 creates the admin account from the two variables aboveYes
BASE_URLPublic URL used in generated links: https://${{RAILWAY_PUBLIC_DOMAIN}}Yes
PORTListening port; overrides LISTEN_ADDR to 0.0.0.0:$PORTYes
HTTPS1 enables secure cookies and the HSTS headerRecommended
TRUSTED_REVERSE_PROXY_NETWORKS100.64.0.0/10,fd00::/8 trusts Railway's edge for X-Forwarded-ForRecommended
DISABLE_SCHEDULER_SERVICE1 on the web service so only the scheduler pollsYes (web)
POLLING_FREQUENCYMinutes between scheduler batches (default 60)No
POLLING_SCHEDULERround_robin or entry_frequency (adaptive)No
OAUTH2_PROVIDERoidc or google for single sign-onNo

Deployment Dependencies

  • Source: ; docs at
  • Images: miniflux/miniflux on Docker Hub, mirrored to ghcr.io/miniflux/miniflux and quay.io/miniflux/miniflux
  • Runtime: nothing to install — one static Go binary; PostgreSQL is the only dependency

Hardware Requirements for Self-Hosting Miniflux

Miniflux is famously light: idle memory sits in the tens of megabytes; the database is what grows.

ResourceMinimumRecommended
CPU0.5 vCPU per service1 vCPU per service
RAM128 MB per service256–512 MB per service
Storage1 GB PostgreSQL5–10 GB for hundreds of feeds
RuntimePostgreSQL 12+PostgreSQL 18

Storage tracks entry retention, not feed count — lower CLEANUP_ARCHIVE_READ_DAYS if the database grows fast.

How to Self-Host Miniflux Outside Railway

On your own server, Docker Compose is the shortest path — this runs Miniflux against PostgreSQL and creates the first administrator on boot:

services:
  miniflux:
    image: miniflux/miniflux:latest
    ports:
      - "80:8080"
    depends_on:
      - db
    environment:
      - DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=change-me
  db:
    image: postgres:18
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=miniflux
    volumes:
      - miniflux-db:/var/lib/postgresql
volumes:
  miniflux-db:

To split the roles as this template does, run a second container from the same image with DISABLE_HTTP_SERVICE=1 and set DISABLE_SCHEDULER_SERVICE=1 on the web container. The binary also exposes maintenance commands:

docker compose exec miniflux /usr/bin/miniflux -migrate
docker compose exec miniflux /usr/bin/miniflux -refresh-feeds

Miniflux vs FreshRSS vs Feedly

MinifluxFreshRSSFeedly
LicenceApache 2.0AGPL-3.0Proprietary
StackGo binary + PostgreSQLPHP + MySQL/PostgreSQL/SQLiteSaaS only
Google Reader APIYesYesNo
PriceFree self-hosted, $15/year hostedFree self-hostedPro from ~$8/month

Pick Miniflux for the smallest, fastest reader; FreshRSS for extensions and themes.

How Much Does Miniflux Cost to Self-Host?

Miniflux is free and open source under the Apache 2.0 licence, so the software costs nothing however you run it — on Railway you pay only for the infrastructure the three services use, and a personal instance is among the cheaper things you can host. The maintainer also sells a managed instance at miniflux.app for $15 a year.

FAQ

What is Miniflux and why self-host it? An open source RSS, Atom and JSON Feed reader written in Go. Self-hosting keeps subscriptions, read history and starred articles in a database you control.

What does this Railway template deploy? Three services: a public Miniflux web service, a private scheduler service that refreshes feeds in the background, and a managed PostgreSQL 18 database shared by both.

Why does the Miniflux template include PostgreSQL? It is Miniflux's only storage backend — feeds, entries, search, users and sessions all live there. There is no SQLite option, which is also why no volume is needed.

Are there default credentials for self-hosted Miniflux? No. The administrator is created on first boot from ADMIN_USERNAME and ADMIN_PASSWORD, and there is no public sign-up page, so nobody can register behind your back.

Can I use self-hosted Miniflux with mobile apps like Reeder or NetNewsWire? Yes. Miniflux implements the Google Reader and Fever APIs plus its own REST API, so most readers connect with your instance URL and an API key from Settings → API Keys.

Can I run more than one Miniflux web replica on Railway? Yes — the web service has the scheduler disabled, so extra replicas serve traffic without duplicating feed polling. Keep the scheduler at one replica.


Template Content

More templates in this category

View Template
Rocky Linux
[Jul'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
42
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
52