FreshRSS — Self-Hosted RSS News Aggregator
FreshRSS is a free, self-hosted RSS feed aggregator with a modern web interface, multi-user support, Fever/Google Reader API, and browser/mobile app compatibility.
What it is
FreshRSS is a free, self-hosted RSS feed aggregator. It provides a modern web interface for subscribing to RSS and Atom feeds, organizing them into categories, and reading articles. It supports multiple users, the Fever and Google Reader APIs (for mobile app compatibility), and extensions for additional functionality.
FreshRSS targets developers, researchers, and information workers who want to control their news consumption without relying on third-party services. Self-hosting means your reading history and subscriptions stay private.
How it saves time or tokens
Monitoring multiple news sources, blogs, and project releases manually means visiting dozens of websites daily. FreshRSS consolidates all feeds into a single interface with unread counts, search, and filters. The Google Reader API compatibility means you can use mobile RSS apps (Reeder, FeedMe, ReadYou) with your self-hosted instance, making it accessible everywhere.
How to use
- Run FreshRSS with Docker:
docker run -d --name freshrss -p 8080:80 \
-v freshrss-data:/var/www/FreshRSS/data \
-e CRON_MIN=*/15 \
-e TZ=America/New_York \
freshrss/freshrss:latest
- Open
http://localhost:8080and complete the setup wizard.
- Add your first RSS feeds from the subscription management page.
- Enable the Google Reader API in settings if you want to connect mobile RSS apps.
Example
# Docker Compose for production with PostgreSQL
version: '3'
services:
freshrss:
image: freshrss/freshrss:latest
ports:
- '8080:80'
volumes:
- freshrss-data:/var/www/FreshRSS/data
environment:
CRON_MIN: '*/15'
TZ: America/New_York
depends_on:
- db
db:
image: postgres:16
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_DB: freshrss
POSTGRES_USER: freshrss
POSTGRES_PASSWORD: changeme
volumes:
freshrss-data:
db-data:
Related on TokRepo
- Self-Hosted Solutions -- Self-hosted tools for personal infrastructure
- Research Tools -- Tools for information gathering and research
Common pitfalls
- The default SQLite database works for single users but slows down with many feeds. Switch to PostgreSQL or MySQL for multi-user setups or large feed collections.
- Feed refresh intervals affect server load. Setting CRON_MIN too aggressively (every minute) can strain both your server and the feed sources.
- Some feeds require authentication or are behind paywalls. FreshRSS supports HTTP basic auth for feeds but cannot bypass login walls.
Frequently Asked Questions
Yes. FreshRSS implements the Google Reader and Fever APIs, which are supported by most mobile RSS readers including Reeder, FeedMe, ReadYou, and NetNewsWire.
FreshRSS handles hundreds of feeds comfortably with PostgreSQL. Users report running 500+ feeds without issues on modest hardware. SQLite may struggle beyond 100 feeds.
Yes. FreshRSS is open source under the AGPL-3.0 license. There are no paid tiers. You only pay for the server hosting it.
Yes. FreshRSS supports multi-user setups with individual accounts, separate feed subscriptions, and reading states. Admins can manage users through the settings panel.
FreshRSS can extract full article content from feeds that only provide summaries using built-in content retrieval. This works for most websites but may fail on heavily JavaScript-dependent sites.
Citations (3)
- FreshRSS GitHub— Self-hosted RSS aggregator with API support
- FreshRSS Documentation— Google Reader API compatibility
- RSS 2.0 Specification— RSS syndication format
Related on TokRepo
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.