How to Self-Host FreshRSS with Docker Compose
What is FreshRSS?
FreshRSS is a self-hosted RSS feed reader. Subscribe to any website, blog, or news source and read everything in one place — like Feedly, but on your own server. It supports multiple users, Google Reader API (for mobile apps), keyboard shortcuts, and full-text content retrieval.
Prerequisites
- Docker and Docker Compose installed (Docker Compose basics)
- Any server — FreshRSS is very lightweight
Docker Compose Configuration
# docker-compose.yml for FreshRSS# Tested with FreshRSS 1.24+
services: freshrss: container_name: freshrss image: freshrss/freshrss:latest ports: - "8080:80" volumes: - ./data:/var/www/FreshRSS/data - ./extensions:/var/www/FreshRSS/extensions environment: - TZ=America/New_York - CRON_MIN=2,32 # Refresh feeds every 30 minutes restart: unless-stoppedStep-by-Step Setup
-
Create a directory:
Terminal window mkdir ~/freshrss && cd ~/freshrss -
Create the
docker-compose.ymlwith the config above. -
Start the container:
Terminal window docker compose up -d -
Run the setup wizard at
http://your-server-ip:8080 -
Create your admin account and configure the database (SQLite is fine for personal use).
-
Add your feeds — paste RSS URLs or use the built-in feed discovery.
-
Connect a mobile app — enable the Google Reader API in settings, then connect with apps like NetNewsWire, Reeder, or FeedMe.
Configuration Tips
- Google Reader API: Enable at Administration → Authentication → Allow API access. This lets you use polished mobile RSS apps.
- Full-text retrieval: Install the Full-Text RSS extension to fetch full article content for feeds that only provide summaries.
- OPML import: Import your existing feed subscriptions from Feedly or any other reader via OPML file.
- Keyboard shortcuts: FreshRSS has extensive keyboard shortcuts for fast reading — press
?to see them. - Reverse proxy: Access from anywhere over HTTPS. See our reverse proxy guide.
Backup & Migration
- Backup: The
datafolder contains your database, configuration, and feed data. - Export: Export your feeds as OPML from the settings page for portability.
Troubleshooting
- Feeds not updating: Check that
CRON_MINis set in the environment variables. Verify cron is running inside the container. - Mobile app can’t connect: Ensure API access is enabled and test with the correct URL (usually
https://your-domain/api/greader.php).
Alternatives
Miniflux is a minimalist alternative with a cleaner interface and built-in integrations. See our FreshRSS vs Miniflux comparison or the full Best Self-Hosted RSS Readers roundup.
Verdict
FreshRSS is the most capable self-hosted RSS reader. It handles thousands of feeds without breaking a sweat, supports every major mobile RSS app through its API, and uses minimal resources. Take back control of what you read — no algorithmic feeds, no ads, just the content you chose.