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 TimesReading 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/k — Next/Previous article
n/p — Next/Previous feed
s — Star/Favorite article
m — Mark as read/unread
v — Open original article
Space — Scroll or next article
r — Refresh current feedMobile 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。
来源与致谢
- GitHub: FreshRSS/FreshRSS — 14.7K+ ⭐ | AGPL-3.0
- 官网: freshrss.org