Deploy Miniflux | Open Source Feedly Alternative
Self Host Miniflux on Railway. RSS + Atom + JSON feeds.
Just deployed
/var/lib/postgresql/data
Miniflux
Just deployed
Deploy and Host Miniflux on Railway
Miniflux is a minimalist, open-source RSS and Atom feed reader written in Go that lets you self-host a clean, privacy-respecting alternative to Feedly, Inoreader, or NewsBlur. Self-hosting Miniflux on Railway gives you full ownership of your reading list — no trackers, no ads, no algorithm — backed by a single Go binary and a PostgreSQL database.
This Railway template deploys the official miniflux/miniflux Docker image alongside a managed PostgreSQL database, automatically runs schema migrations, bootstraps the first admin user, and exposes the web UI on a Railway-generated HTTPS domain.

Getting Started with Miniflux on Railway
After the deploy completes, open your Railway-generated public URL in a browser. You will land on the Miniflux sign-in screen. Log in with the username and password you set as ADMIN_USERNAME and ADMIN_PASSWORD during deploy — these were read once at first boot to create the initial admin account.
Once signed in, click Add a subscription in the top navigation to paste a feed URL or import an OPML file exported from another reader. After your first poll cycle (default every 60 minutes), new entries appear in the Unread view. Configure keyboard shortcuts, integrations (Pocket, Wallabag, Telegram, etc.), and API tokens from Settings. As a one-time security cleanup, delete the CREATE_ADMIN, ADMIN_USERNAME, and ADMIN_PASSWORD environment variables from the Railway service — Miniflux only reads them on the very first boot and they are not needed afterward.

About Hosting Miniflux
Miniflux is a self-contained Go server with no external runtime dependencies beyond PostgreSQL. It fetches RSS/Atom/JSON feeds on a configurable schedule, dedupes entries, optionally scrapes full article content, strips tracking pixels, and serves a fast keyboard-driven web UI plus a REST API and Fever-compatible API.
Key features:
- Reads RSS, Atom, RDF, and JSON feeds
- Built-in integrations: Pocket, Wallabag, Instapaper, Pinboard, Telegram, Matrix, Apprise, and 15+ more
- Mobile and PWA-friendly with offline reading
- Full-text article scraping and reader-mode rendering
- REST API plus Fever API compatibility for third-party clients (Reeder, FeedMe, etc.)
- OAuth2 / OpenID Connect single sign-on (Google, Generic OIDC)
- Per-feed rules for blocking, keeping, rewriting, and content filtering
The architecture is intentionally simple: a single stateless Miniflux container talks to a single PostgreSQL database. No Redis, no message broker, no background worker pool to babysit.
Why Deploy Miniflux on Railway
Self-hosting Miniflux on Railway pairs the simplest possible RSS stack with zero-DevOps infrastructure:
- One-click managed PostgreSQL — no manual DB provisioning
- Automatic HTTPS on a generated
*.up.railway.appdomain - Built-in migrations run on every deploy with
RUN_MIGRATIONS=1 - Vertical scaling without container rebuilds
- Persistent volumes are managed by Railway on the Postgres service
Common Use Cases
- A personal, ad-free RSS reader replacing Feedly or Inoreader
- A team news aggregator with shared admin-managed feeds and per-user accounts
- A privacy-first reading hub that strips trackers and exposes a clean API for mobile clients
- A research archive that scrapes full article content and integrates with Wallabag/Pocket for permanent storage
Dependencies for Miniflux on Railway
This template provisions two services:
- Miniflux —
miniflux/miniflux:2.2.19(the Go web server) - Postgres — Railway-managed PostgreSQL (the only state store)
Environment Variables Reference
| Variable | Purpose |
|---|---|
DATABASE_URL | Connection string to the Postgres service with ?sslmode=disable appended |
RUN_MIGRATIONS | 1 runs SQL migrations idempotently on every boot |
PORT | Forces Miniflux to bind to 0.0.0.0:$PORT instead of loopback |
BASE_URL | Public-facing HTTPS URL used for absolute links and OAuth redirects |
HTTPS | 1 enables secure cookies and HSTS behind Railway's TLS proxy |
CREATE_ADMIN | 1 triggers one-time admin user creation on first boot |
ADMIN_USERNAME | Username for the bootstrap admin account |
ADMIN_PASSWORD | Password for the bootstrap admin account (static value, not ${{secret}}) |
LOG_FORMAT | json produces structured logs for Railway log ingestion |
Deployment Dependencies
- Runtime: Go (compiled binary, distributed via Docker)
- Docker Hub: miniflux/miniflux
- GitHub: miniflux/v2
- Docs: miniflux.app/docs
- Configuration reference: miniflux.app/docs/configuration.html
Hardware Requirements for Self-Hosting Miniflux
Miniflux is one of the lightest self-hosted apps in its category — a few hundred lines of Go talking to Postgres.
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 0.25 vCPU | 0.5 vCPU |
| RAM | 128 MB | 256–512 MB |
| Storage | 1 GB Postgres volume | 5–10 GB Postgres volume |
| Runtime | Docker (Go binary) | Docker (Go binary) |
For a single user with a few hundred feeds, the recommended row is comfortable. Storage scales mostly with retained entries and cached article content — bump the Postgres volume if you keep entries longer than the default CLEANUP_ARCHIVE_READ_DAYS=60.
Self-Hosting Miniflux
The fastest way to run Miniflux locally with Docker:
docker run -d --name miniflux \
-p 8080:8080 \
-e DATABASE_URL="postgres://miniflux:secret@db/miniflux?sslmode=disable" \
-e RUN_MIGRATIONS=1 \
-e CREATE_ADMIN=1 \
-e ADMIN_USERNAME=admin \
-e ADMIN_PASSWORD=changeme \
miniflux/miniflux:2.2.19
A minimal docker-compose.yml for production-like local development:
services:
miniflux:
image: miniflux/miniflux:2.2.19
ports: ["8080:8080"]
environment:
DATABASE_URL: postgres://miniflux:secret@db/miniflux?sslmode=disable
RUN_MIGRATIONS: "1"
CREATE_ADMIN: "1"
ADMIN_USERNAME: admin
ADMIN_PASSWORD: changeme
depends_on: { db: { condition: service_healthy } }
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: miniflux
POSTGRES_PASSWORD: secret
POSTGRES_DB: miniflux
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
volumes: ["db:/var/lib/postgresql/data"]
volumes:
db:
Source builds from github.com/miniflux/v2 work via go build if you prefer not to use Docker.
How Much Does Miniflux Cost to Self-Host?
Miniflux is 100% free and open source under the Apache 2.0 license. There is no paid tier and no upsell — the entire feature set ships in the single Docker image. On Railway you pay only for the underlying compute and PostgreSQL usage. A typical single-user deployment with a few hundred feeds fits comfortably inside Railway's Hobby plan free monthly credit.
Miniflux vs Feedly vs Inoreader
| Feature | Miniflux (self-hosted) | Feedly | Inoreader |
|---|---|---|---|
| License | Apache 2.0 OSS | Proprietary SaaS | Proprietary SaaS |
| Hosting | Self-host on Railway | SaaS only | SaaS only |
| Ads / trackers | None | Yes on free tier | Yes on free tier |
| Full-text scraping | Built-in | Paid tier | Paid tier |
| API access | REST + Fever API | Paid tier | Paid tier |
| Cost | Infra only | $8–18/mo | $10–20/mo |
Miniflux trades polished mobile apps for full data ownership, no algorithmic ranking, and a complete API on every feature.
FAQ
What is Miniflux and why self-host it? Miniflux is a minimalist open-source RSS/Atom/JSON feed reader written in Go. Self-hosting it on Railway gives you a privacy-first, ad-free reading hub that you fully own — no third-party tracks what you read.
What does this Railway template deploy?
Two services: the official miniflux/miniflux Docker image and a Railway-managed PostgreSQL database. Migrations run automatically and a first admin user is bootstrapped from the ADMIN_USERNAME/ADMIN_PASSWORD env vars on first boot.
Why does Miniflux need PostgreSQL on Railway? PostgreSQL is Miniflux's only persistent state — users, feeds, entries, sessions, integrations, and cached icons all live in the database. There is no SQLite or filesystem-based storage mode.
How do I import my feeds from another RSS reader into self-hosted Miniflux? Export an OPML file from your current reader (Feedly, Inoreader, NewsBlur, NetNewsWire all support OPML export), then go to Settings → Import in Miniflux and upload the file. All feeds and categories are recreated on import.
Can I use mobile RSS apps like Reeder with self-hosted Miniflux? Yes — Miniflux implements both its own REST API and the Fever API, which is supported by Reeder, FeedMe, Fiery Feeds, Unread, and most third-party RSS clients.
How do I enable Google or generic OIDC SSO in self-hosted Miniflux on Railway?
Set OAUTH2_PROVIDER=google (or oidc), OAUTH2_CLIENT_ID, OAUTH2_CLIENT_SECRET, and OAUTH2_REDIRECT_URL=https://${{RAILWAY_PUBLIC_DOMAIN}}/oauth2/google/callback. Then create new users via the Settings panel — they will be auto-linked on first SSO sign-in.
Why should I delete CREATE_ADMIN after the first deploy?
CREATE_ADMIN, ADMIN_USERNAME, and ADMIN_PASSWORD are only read during the first boot to seed the admin row in PostgreSQL. After that they are ignored, so leaving them in the env panel just keeps a plaintext password visible.
Template Content
