Files
MajorWiki/03-opensource/alternatives/freshrss.md
MajorLinux 9490781740 wiki: remove Obsidian-style hashtag tags from 12 articles
These #hashtag tag lines render as plain text on MkDocs. All articles
already have tags in YAML frontmatter, so the inline tags were redundant.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:03:28 -04:00

2.5 KiB

FreshRSS — Self-Hosted RSS Reader

Problem

RSS is the best way to follow websites, blogs, and podcasts without algorithmic feeds, engagement bait, or data harvesting. But hosted RSS services like Feedly gate features behind subscriptions and still have access to your reading habits. Google killed Google Reader in 2013 and has been trying to kill RSS ever since.

Solution

FreshRSS is a self-hosted RSS aggregator. It fetches and stores your feeds on your own server, presents a clean reading interface, and syncs with mobile apps via standard APIs (Fever, Google Reader, Nextcloud News). No subscription, no tracking, no feed limits.


Deployment (Docker)

services:
  freshrss:
    image: freshrss/freshrss:latest
    container_name: freshrss
    restart: unless-stopped
    ports:
      - "8086:80"
    volumes:
      - ./freshrss/data:/var/www/FreshRSS/data
      - ./freshrss/extensions:/var/www/FreshRSS/extensions
    environment:
      - TZ=America/New_York
      - CRON_MIN=*/15   # fetch feeds every 15 minutes

Caddy reverse proxy

rss.yourdomain.com {
    reverse_proxy localhost:8086
}

Initial Setup

  1. Browse to your FreshRSS URL and run through the setup wizard
  2. Create an admin account
  3. Go to Settings → Authentication — enable API access if you want mobile app sync
  4. Start adding feeds under Subscriptions → Add a feed

Mobile App Sync

FreshRSS exposes a Google Reader-compatible API that most RSS apps support:

App Platform Protocol
NetNewsWire iOS / macOS Fever or GReader
Reeder iOS / macOS GReader
ReadYou Android GReader
FeedMe Android GReader / Fever

API URL format: https://rss.yourdomain.com/api/greader.php

Enable the API in FreshRSS: Settings → Authentication → Allow API access


Feed Auto-Refresh

The CRON_MIN=*/15 environment variable runs feed fetching every 15 minutes inside the container. For more control, add a host-level cron job:

# Fetch all feeds every 10 minutes
*/10 * * * * docker exec freshrss php /var/www/FreshRSS/app/actualize_script.php

Why RSS Over Social Media

  • You control the feed — no algorithm decides what you see or in what order
  • No engagement optimization — content ranked by publish date, not outrage potential
  • Portable — OPML export lets you move your subscriptions to any reader
  • Works forever — RSS has been around since 1999 and isn't going anywhere