FreshRSS is a lightweight, self-hosted RSS/Atom feed reader — keeping you independent from third-party RSS services while giving you full control over your reading data and feed subscriptions.
Why Self-Host an RSS Reader
- No dependency on a third-party service that could shut down or change terms
- Full privacy over your reading habits and subscriptions
- Access from any device via the web interface or compatible mobile apps
Prerequisites
- Docker installed
Step 1 — Run FreshRSS with Docker
docker run -d \
--name freshrss \
--restart unless-stopped \
-p 8080:80 \
-v freshrss-data:/var/www/FreshRSS/data \
-v freshrss-extensions:/var/www/FreshRSS/extensions \
-e TZ=America/New_York \
freshrss/freshrss:latest
Step 2 — Access the Setup Wizard
http://YOUR_SERVER_IP:8080
Step 3 — Complete Initial Configuration
Choose your database type (SQLite is simplest for personal use), create your admin account, and configure basic settings.
Step 4 — Add Your First Feed Subscriptions
Under Subscription Management, add RSS/Atom feed URLs individually, or import an existing subscription list (OPML format) if migrating from another RSS reader.
Step 5 — Organize Feeds into Categories
Group related feeds into categories for easier browsing — particularly useful once you've subscribed to more than a handful of sources.
Step 6 — Add HTTPS
See How to Install Nginx Proxy Manager with Docker to route a domain with SSL.
Using the API with Mobile Apps
FreshRSS implements the Google Reader API (a long-standing de facto standard many RSS mobile apps support) — connect your preferred mobile RSS app using your FreshRSS server URL and credentials for reading on the go.
Setting Up Automatic Feed Refresh
docker exec freshrss su -s /bin/sh www-data -c 'php ./app/actualize_script.php'
sudo crontab -e
*/30 * * * * docker exec freshrss su -s /bin/sh www-data -c 'php ./app/actualize_script.php'
Runs feed refresh every 30 minutes — adjust frequency based on how current you want your feeds to be versus reducing load on the source sites.
Full-Text Extraction for Truncated Feeds
Some feeds only provide article summaries — FreshRSS supports extensions/configuration for fetching full article content, useful for sources that don't include complete text in their feed.
Exporting Your Subscription List (OPML)
Periodically export your subscriptions as OPML for backup purposes — a portable format usable to migrate to another RSS reader if ever needed.
Backing Up FreshRSS Data
docker run --rm -v freshrss-data:/data -v $(pwd):/backup alpine tar czf /backup/freshrss-backup.tar.gz /data
Common Errors
A specific feed won't refresh/update — verify the feed URL is still valid and returns properly-formatted RSS/Atom XML; some sites change their feed URLs without notice.
Continue Reading
- How to Install Wallabag (Self-Hosted Read-It-Later)
- How to Install Nginx Proxy Manager with Docker
- How to Set Up systemd Timers as a Cron Alternative
Browse more articles in Popular Self-Hosted Applications.