Self-Hosted FreshRSS: Your Feedly Replacement on a Box You Control

Google Reader died in 2013 and we've been pretending ever since. Feedly wants money for basic features. Your "news diet" is seventeen browser tabs and a Twitter/X feed that optimizes for outrage. You follow twenty industry blogs, three municipal RSS feeds, and a GitHub releases page — but half your sources don't show up in any one app, and the other half sell your reading habits to ad networks.

FreshRSS is the boring, correct answer. ~15k GitHub stars, AGPL-3.0, and a self-hosted RSS feed aggregator that's lightweight enough for a Raspberry Pi yet feature-rich enough for power readers. Multi-user, mobile app API, WebSub push updates, and XPath scraping for sites that forgot RSS exists.

What it actually does

FreshRSS collects RSS and Atom feeds into one reading interface — mark read, star, tag, filter, search. The open web's inbox, on your server.

Feed management. Subscribe to blogs, news sites, podcasts, GitHub release feeds, government bulletins — anything publishing RSS/Atom. OPML import/export when you migrate from another reader. Custom tags and user queries to slice your library.

WebSub (PubSubHubbub). Compatible sources push updates instantly instead of waiting for the next poll — WordPress, Medium, Friendica, and others that speak the standard.

No feed? Scrape one. XPath-based web scraping for sites without RSS — JSON document support too. Not as fancy as Maxun, but enough to follow a page that never bothered with Atom.

Mobile and desktop clients. Google Reader-compatible API — Fluent Reader, NetNewsWire, Read You, RSS Guard, and dozens more sync against your instance. Read on the train; server stays canonical.

Multi-user and sharing. Separate accounts on one install, anonymous reading mode if you want a public-facing digest, reshares via HTML/RSS/OPML for curated link lists. OpenID Connect and HTTP auth for teams with existing IdP setups.

Extensions. Community plugins for further tuning — see the FreshRSS Extensions repository.

FreshRSS vs Karakeep vs changedetection

We've covered tools that touch "web content" differently:

  • Karakeep / Linkwarden — save individual links with archival; Karakeep can subscribe to RSS into a hoard, but it's not a full feed reader
  • changedetection.io — alerts when a specific page changes; not for reading 200 blog posts over coffee

FreshRSS is for routine reading — morning scan of industry news, municipal updates, homelab blogs — without algorithmic reordering. Pair changedetection for "alert me when this price changes" with FreshRSS for "show me everything Bruce Schneier published this week."

Why self-host?

Your subscriptions are a profile. Feeds reveal politics, tech stack, competitors you watch, health interests. Self-hosted on a Canadian VPS beats another US reader SaaS building an ad graph from your OPML file.

No tier limits. Follow 500 feeds on the same container. FreshRSS maintainers tested 150 feeds and 22k articles on a Pi 1 with sub-second response — you won't hit per-feed paywalls.

Data portability. OPML export anytime. SQLite, PostgreSQL, or MariaDB/MySQL for storage — your articles and read state live in files you backup, not a vendor lock-in export screen.

PIPEDA-friendly reading. Agency team sharing one FreshRSS instance on Montreal hardware — simpler story than "we use Feedly and hope their DPA covers client monitoring feeds."

What running it takes

FreshRSS is PHP — Apache/nginx, PHP 8.1+, and a database. Docker is the easy path:

docker run -d --name freshrss \
  -v freshrss_data:/var/www/FreshRSS/data \
  -e CRON_MIN='3,33' \
  -p 8080:80 \
  freshrss/freshrss:latest

Or use the official compose file from the repo's Docker/freshrss/ directory. Built-in cron fetches feeds on schedule. Expose only the ./p/ web folder in manual installs — keep ./data/ off the public internet.

Lightweight by design: no Playwright, no 6 GB Chromium container. A small Canadian VPS handles personal or small-team reading lists comfortably. Wire TLS in front, connect your phone app to https://rss.yourdomain.com, import OPML, unsubscribe from Feedly.

Who it's for (and who should skip it)

Good fit: news junkies fleeing algorithm feeds, devs tracking project releases and blogs, municipal/policy watchers on government RSS, teams curating industry reading lists, anyone who remembers Google Reader fondly.

Maybe skip it: your sources only exist on Instagram and TikTok — RSS can't help. You read three newsletters via email and nothing else — inbox zero might suffice. You need full-page archival and AI tagging — Karakeep or Linkwarden fit better alongside or instead of a reader.

Hosting it in Canada

FreshRSS is one of the lighter self-hosted apps we deploy — but feed volume and retention still grow over time. We run instances on Canadian Docker hosting with persistent volumes and TLS.

Tell us how many feeds and users you're planning — we'll size a box that stays snappy when your OPML import lands.

Tags:
  • FreshRSS
  • RSS
  • News
  • Reading
  • Self-Hosted

Need Help With Your Hosting?

Tell us about your application — we respond within 1 hour with honest recommendations.