ScriptsApr 10, 2026·1 min read

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.

SC
Script Depot · Community
Quick Use

Use it first, then decide how deep to go

This block should tell both the user and the agent what to copy, install, and apply first.

docker run -d --name freshrss -p 8080:80 
  -v freshrss-data:/var/www/FreshRSS/data 
  -e CRON_MIN=*/15 
  -e TZ=Asia/Shanghai 
  freshrss/freshrss:latest

Open http://localhost:8080 — complete setup and add your first RSS feeds.

Intro

FreshRSS is a free, self-hosted RSS feed aggregator and news reader. It provides a clean, responsive web interface for following hundreds of RSS/Atom feeds, with features like full-text search, tagging, filtering, keyboard navigation, and API compatibility with popular RSS apps (Reeder, NetNewsWire, FeedMe).

With 14.7K+ GitHub stars and AGPL-3.0 license, FreshRSS is one of the most popular self-hosted RSS readers, offering a fast, feature-rich alternative to Google Reader (RIP) and commercial services like Feedly.

What FreshRSS Does

  • Feed Aggregation: Subscribe to unlimited RSS/Atom feeds with automatic refresh
  • Reading Experience: Clean article view with keyboard shortcuts, themes, and reading modes
  • Full-Text Retrieval: Fetch full article content even from partial-content feeds
  • Categories & Tags: Organize feeds into categories and tag individual articles
  • Search: Full-text search across all articles with filters
  • Fever API: Compatible with Fever API clients (Reeder, Unread, etc.)
  • Google Reader API: Compatible with Google Reader API clients (NetNewsWire, FeedMe, etc.)
  • Multi-user: Multiple accounts with independent feed lists and settings
  • Extensions: Plugin system for extending functionality
  • WebSub/PubSubHubbub: Real-time push updates from supported feeds

Architecture

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  Web UI      │────▶│  FreshRSS    │────▶│  SQLite /    │
│  (PHP)       │     │  Server      │     │  MySQL /     │
├──────────────┤     │  (PHP)       │     │  PostgreSQL  │
│ Mobile Apps  │────▶│  Fever API   │     └──────────────┘
│ (via API)    │     │  GReader API │
└──────────────┘     └──────────────┘

Self-Hosting

Docker Compose

services:
  freshrss:
    image: freshrss/freshrss:latest
    ports:
      - "8080:80"
    environment:
      TZ: Asia/Shanghai
      CRON_MIN: "*/15"        # Refresh feeds every 15 minutes
    volumes:
      - freshrss-data:/var/www/FreshRSS/data
      - freshrss-extensions:/var/www/FreshRSS/extensions
    restart: unless-stopped

volumes:
  freshrss-data:
  freshrss-extensions:

With PostgreSQL

services:
  freshrss:
    image: freshrss/freshrss:latest
    ports:
      - "8080:80"
    environment:
      TZ: Asia/Shanghai
      CRON_MIN: "*/15"
    volumes:
      - freshrss-data:/var/www/FreshRSS/data
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: freshrss
      POSTGRES_PASSWORD: freshrss
      POSTGRES_DB: freshrss
    volumes:
      - pg-data:/var/lib/postgresql/data

volumes:
  freshrss-data:
  pg-data:

Key Features

Feed Organization

Categories:
├── 📰 Tech News
│   ├── Hacker News
│   ├── The Verge
│   ├── Ars Technica
│   └── TechCrunch
├── 💻 Dev Blogs
│   ├── Rust Blog
│   ├── Go Blog
│   ├── React Blog
│   └── Cloudflare Blog
├── 🎙️ Podcasts
│   ├── Changelog
│   └── Syntax.fm
└── 📊 Finance
    ├── Bloomberg
    └── Financial Times

Reading Modes

  • Normal: Title + summary in feed list
  • Global: All articles from all feeds in one view
  • Reader: Full article content inline
  • Compact: Title-only list for fast scanning

Keyboard Shortcuts

j/kNext/Previous article
n/pNext/Previous feed
sStar/Favorite article
mMark as read/unread
vOpen original article
SpaceScroll or next article
rRefresh current feed

Mobile Apps (via API)

Configure these apps with your FreshRSS instance:

Platform App API
iOS Reeder 5 Fever/GReader
iOS NetNewsWire GReader
iOS Unread Fever
Android FeedMe GReader
Android Read You GReader
Android EasyRSS GReader
Desktop Fluent Reader Fever
CLI Newsboat GReader

Full-Text Retrieval

For feeds that only provide summaries:

Settings → Feed → Content retrieval:
  ✅ Retrieve full content
  CSS selector: article.post-content  (optional)

FreshRSS will fetch the full article from the original website.

Extensions

Available extensions:

  • YouTube: Subscribe to YouTube channels as RSS feeds
  • Reddit: Follow subreddits via RSS
  • Image Proxy: Proxy images through your server for privacy
  • Reading Time: Show estimated reading time
  • Title Wrap: Better title display for long titles
  • CustomCSS: Apply custom CSS themes

FreshRSS vs Alternatives

Feature FreshRSS Miniflux Tiny Tiny RSS Feedly
Open Source Yes (AGPL-3.0) Yes (Apache) Yes (GPL) No
Self-hosted Yes Yes Yes No
Language PHP Go PHP N/A
Multi-user Yes Yes Yes Cloud
Mobile API Fever + GReader Fever + own Own API Proprietary
Extensions Yes No Plugins No
Full-text retrieval Yes Yes Plugins AI
Resource usage Low (~30MB) Very low (~15MB) Medium N/A
Setup complexity Easy Easy Moderate N/A

常见问题

Q: FreshRSS 能订阅多少 Feed? A: 没有硬性限制。典型用户订阅 100-500 个 feed 运行良好。超过 1000 个 feed 建议使用 PostgreSQL 数据库并适当增加刷新间隔。

Q: 可以订阅没有 RSS 的网站吗? A: 可以借助第三方服务。使用 RSS-Bridge 或 RSSHub 可以为 Twitter、Instagram、YouTube、Reddit 等平台生成 RSS feed,然后订阅到 FreshRSS。

Q: 如何在手机上使用? A: 在 FreshRSS 设置中启用 Fever API 或 Google Reader API,然后在手机 RSS 阅读器中配置你的 FreshRSS 服务器地址。iOS 推荐 Reeder 或 NetNewsWire,Android 推荐 FeedMe 或 Read You。

来源与致谢

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets