← Self-Hosting · Home & Life · Replaces: Feedly, Inoreader, algorithmic social feeds
What You'll Build
RSS lets you follow websites, blogs, news sites, YouTube channels, and more in one chronological list — no algorithm, no ads injected, nothing missed. FreshRSS collects the feeds on your server around the clock and syncs read/unread status to every device.
Port: 8084 · RAM: tiny · Time: 15 minutes · Difficulty: Easy
What You Need
- Your home server from Foundations 1 (Docker installed,
~/stacksfolder). - Nginx Proxy Manager with your
*.home.example.comcertificate (recommended). - Nothing special.
Step 1: Start FreshRSS
mkdir -p ~/stacks/freshrss && cd ~/stacks/freshrss
nano compose.yaml
services:
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
restart: unless-stopped
ports:
- "8084:80"
environment:
TZ: "America/New_York"
CRON_MIN: "3,33" # fetch new articles at :03 and :33 every hour
volumes:
- ./data:/var/www/FreshRSS/data
- ./extensions:/var/www/FreshRSS/extensions
docker compose up -d
Step 2: The Install Wizard
- Open
http://192.168.1.50:8084and choose your language. - The checks page should be all green → next.
- Database type: SQLite (no extra setup).
- Create your admin user and password → finish.
Step 3: Add Feeds
- Any website: click + Subscription management → Add a feed and paste the site's address — FreshRSS finds the feed automatically for most blogs and news sites.
- Import from another reader: Subscription management → Import/export → import an OPML file.
- A YouTube channel:
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID(the channel ID is in the channel's "Share → Copy channel ID"). - A subreddit:
https://www.reddit.com/r/selfhosted/.rss
Group feeds into categories (Tech, News, Security…) to read them in batches.
Step 4: Phone and Desktop Apps
- Settings → Authentication → tick Allow API access → Save.
- Settings → Profile → set an API password (separate from your login).
- In an app that supports FreshRSS or the "Google Reader API" — e.g. Readrops or FeedMe (Android), NetNewsWire or Reeder (Apple) — enter
https://rss.home.example.com/api/greader.php, your username, and the API password.
Add It to Your Proxy, Dashboard, and Backups
- Nginx Proxy Manager: new proxy host
rss.home.example.com→ schemehttp,192.168.1.50, port8084, Websockets on, your wildcard certificate, Force SSL. - Homepage: add a tile in
services.yaml(how). - Uptime Kuma: add an HTTP monitor for the new address (how).
- Backups:
~/stacks/freshrssis already covered by the restic script.
Troubleshooting
- "Feed not found" — the site has no RSS feed. Try adding
/feedor/rssto the address, or look for an RSS icon on the site. - Articles never update — check
CRON_MINis set, anddocker compose logsfor fetch errors. - App login fails — use the API password, not your normal password, and include
/api/greader.php.