
Should I self-host Inoreader?
Miniflux is 20MB of Go that does the reading part of a $120/yr subscription. Bring your own opinions about minimalism.
The math (nothing hidden, including your time)
| Inoreader (Pro) | $9.99/mo |
| VPS share + storage | −$0.80/mo |
| Your maintenance: 10 min/mo at $20/h | −$3.33/mo |
| Net saving | $5.86/mo |
| Setup: 35 min measured (one-time) | $11.67 |
| Break-even | 2.0 months |
| Markup Index (price ÷ real self-host cost) | 2.4× |
Price: source, checked 2026-08-07. Inputs are stored in git; every number above is derived, never hand-written.
What you lose
- Inoreader's rules/automation engine and article monitoring
- Fancy dashboards — Miniflux is deliberately plain
What you're paying Inoreader for
- follow feeds
- read-state sync
- keyboard-driven reading
- integrations (save to wallabag/pocket-likes)

Ranked alternatives
A feed reader with nothing in it but feeds: one Go binary, one database, and a Google Reader API the phone apps already speak.
A feed reader in one container, with your subscriptions, your read history and your refresh schedule on your own disk.
Hardware
Runs comfortably on Raspberry Pi.
The tested compose file (our evidence, CI-booted)
# Miniflux — minimalist RSS reader (replaces Inoreader)
services:
miniflux:
image: miniflux/miniflux:latest
container_name: miniflux
restart: unless-stopped
depends_on:
miniflux-db:
condition: service_healthy
environment:
DATABASE_URL: postgres://miniflux:miniflux@miniflux-db/miniflux?sslmode=disable
RUN_MIGRATIONS: "1"
CREATE_ADMIN: "1"
ADMIN_USERNAME: admin
ADMIN_PASSWORD: changeme-now # throwaway test value
ports:
- "8084:8080"
healthcheck:
test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
interval: 5s
timeout: 5s
retries: 24
start_period: 15s
miniflux-db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: miniflux
POSTGRES_PASSWORD: miniflux
POSTGRES_DB: miniflux
volumes:
- miniflux-pg:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U miniflux"]
interval: 5s
timeout: 5s
retries: 12
volumes:
miniflux-pg:
Want a guided install instead? caniselfhostit.com/inoreader has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.
Verification
Protocol v1 · verified by zernonia on 2026-08-10 · setup measured at 35 min · AI assistant: claude-code (allowed & stated)
What broke
- CREATE_ADMIN only fires on first boot; set the env before, not after, or exec the CLI
Full timed log
# Timed setup log: Inoreader → miniflux **Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10 **Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 / Compose v5.1 ## Timeline | Step | Time | |---|---| | Read upstream docs, draft compose with healthcheck | ~11 min | | **Boot: all services healthy in 24 s (measured, `compose up --wait`)** | — | | Endpoint-level workflow check (login/health/API serve) + re-run from clean volumes | ~11 min | | **Total: ~35 min** | | Boot and endpoint checks are machine-verified; `setup_min` is the wall-clock total for this session including authoring, diagnosis and re-runs. Endpoint-level ≠ full human UI workflow — dispute anything that doesn't reproduce (CONTRIBUTING.md). ## What broke - CREATE_ADMIN only fires on first boot; set the env before, not after, or exec the CLI ## Verdict-relevant notes - Built-in healthcheck binary (`miniflux -healthcheck`) makes the compose gate trivial.
Verdict history
- 2026-08-10: unscored → YES — Initial verdict: Miniflux is 20MB of Go that does the reading part of a $120/yr subscription. Bring your own opinions about minimalism.
