Add three new articles to 03-opensource/alternatives/: - SearXNG: private metasearch, Open WebUI integration - FreshRSS: self-hosted RSS, mobile app sync, OPML portability - Gitea: lightweight GitHub alternative, webhook pipeline Article count: 33 → 36. Open source section: 6 → 9. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.6 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
- Browse to your FreshRSS URL and run through the setup wizard
- Create an admin account
- Go to Settings → Authentication — enable API access if you want mobile app sync
- 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
Tags
#freshrss #rss #self-hosting #docker #linux #alternatives #privacy