rssmonster

pietheinstrengholtMIT活跃维护

自托管的现代 RSS 阅读器,支持智能文件夹、全文搜索和三栏式阅读界面,用 Vue + Express 搭建,可 Docker 部署。

Modern, self-hosted RSS reader with smart folders, powerful search, and a clean three-pane reading experience. Built with Vue and Express.

v2.3.0发布于 2026-09-09 08:50 UTC577star +3 / 7 天52fork同步于 2026-11-10 23:56 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/pietheinstrengholt/rssmonster.git
cd rssmonster
touch .env
chmod 600 .env
openssl rand -hex 32
硬件要求按 README 说明

README 未说明具体显存或 GPU 型号要求;桌面版首次启动会下载本地 AI 模型,SQLite 快速开始可连接远程推理服务。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管 RSS 阅读器,用智能文件夹和语义事件把信息流整理成可解释的阅读视图

自托管的现代 RSS 阅读器,支持智能文件夹、全文搜索和三栏式阅读界面,用 Vue + Express 搭建,可 Docker 部署。

核心能力

  • 用 Smart Folder 把搜索表达式保存为可复用的动态筛选视图
  • Semantic Events 聚合同一事件的报道并展开多方来源
  • Recommended 与 Top Stories 排序可查看贡献信号来源
  • 支持 Reader、Expanded、Summarized 等多种阅读模式与键盘导航
  • 提供 OPML 导入导出、生成私有 RSS 及 Fever/Google Reader 兼容

容易踩的坑

MariaDB 当前被阻止,DB_DIALECT=mariadb 无法安全安装;SQLite 快速开始不含内置推理服务,需单独启动 AI worker 或配置远程推理;桌面版首次启动需下载本地模型且无定时抓取。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.3.0
  1. v2.3.0RSSMonster v2.3.0最新正式版2026-09-09 · 2026-09-09 08:50 UTC

    RSSMonster v2.3.0

    RSSMonster 2.3.0 is a major update focused on desktop availability, local AI, more flexible feed acquisition, better discovery, and stronger operational reliability.

    Highlights

    RSSMonster Desktop

    RSSMonster is now available as a standalone Electron desktop application for Windows, macOS, and Linux. The desktop edition bundles the Vue client, Express server, and SQLite database into one installable application, keeps application data in the operating system's user-data directory, and shuts down its local HTTP server and database cleanly when the final window closes.

    The release pipeline produces:

    • a Windows x64 installer;
    • macOS disk images for Intel and Apple Silicon;
    • a Linux x86-64 AppImage; and
    • a Debian amd64 package.

    The first desktop release is intentionally lightweight: feeds are refreshed manually, and scheduled crawling, background workers, Web Push, email delivery, and inference-backed AI features are not included. The installers are currently unsigned, so operating systems may display a trust warning during installation.

    Local and OpenAI-compatible inference

    • Added a standalone inference service for all model-provider calls.
    • Added local Qwen3 embeddings, Qwen3.5 generation, and ModernBERT article scoring, with persistent model caching.
    • Added support for OpenAI-compatible gateways through a configurable base URL, optional temperature omission, and configurable assistant reasoning effort.
    • Added readiness checks, bounded queues, overload responses, request cancellation, timeouts, and capability-specific circuit breakers.
    • Kept OpenAI available as an alternative provider and for the optional assistant.

    Durable background AI processing

    • Added a dedicated AI worker backed by persisted processing jobs.
    • Added leases, bounded retries, restart recovery, dead-letter handling, job history cleanup, and recovery for stranded article-analysis work.
    • Added processing-job and failure observability in Settings.
    • Added database deadlock retries and improved inference failure reporting.

    More ways to follow and share content

    • Added HTML + XPath feeds for following server-rendered websites that do not publish RSS. XPath rules can extract item titles, URLs, content, authors, dates, thumbnails, and stable identifiers, with a safe preview before saving.
    • Added per-feed regular-expression filters for title, content, URL, author, and category. Rejected entries stop before article persistence and AI processing.
    • Added persisted Generated Feeds that expose Search or Smart Folder expressions as private, token-protected RSS feeds.
    • Added an asynchronous OPML import preview with duplicate detection, reachability checks, feed selection, and category editing.

    Search, Smart Folders, and discovery

    • Added MySQL FULLTEXT article search and highlighted search matches.
    • Added a search dropdown with syntax guidance and recent searches.
    • Made Smart Folder expressions explicitly own their sorting and grouping.
    • Added per-folder mark-as-read-while-scrolling behavior for unread folders.
    • Improved new-article checks so refresh prompts only count unread arrivals that match the current selection and result window.
    • Refined personalized Recommended ranking and non-personalized Top Stories.
    • Improved FeedTrust calculation, article-quality explanations, related-story popovers, progressive tag disclosure, and behavioral-topic signals.
    • Removed the obsolete Trust and Attention sort expressions.

    Email, account recovery, and notifications

    • Added optional SMTP email delivery, email-address verification, and secure password recovery.
    • Added scheduled daily briefing emails with configurable time, timezone, and empty-briefing behavior.
    • Added optional Web Push notifications for newly crawled articles.
    • Added hard delivery deadlines for stalled push endpoints.
    • Administrator password changes now revoke existing sessions.

    Reader and integration im

  2. v2.2.0RSSMonster 2.2.02026-08-11 · 2026-08-11 14:02 UTC
    查看更新说明

    RSSMonster 2.2.0

    RSSMonster 2.2.0 focuses on faster article browsing, more reliable crawling, safer multi-user behavior, and substantially improved documentation.

    Highlights

    • Added database-backed cursor pagination for supported article views, reducing the amount of data loaded up front and making large collections faster and more stable to browse.
    • Added detection for articles that arrive while a paginated view is open, with a refresh path that keeps the current list snapshot consistent.
    • Improved article, smart-folder, tag, category, overview, and Interest Island query performance, including bounded counts and fewer repeated lookups.
    • Added a Retry crawl action to feed settings so an individual feed can be crawled again through the normal production pipeline.
    • Added crawl-run heartbeats, stale-run recovery, and richer completion statistics to make interrupted and long-running crawls easier to detect and recover.

    Reliability and correctness

    • Fixed HTTP retry attempt counting.
    • Fixed category reordering.
    • Fixed concurrent article click-count updates.
    • Fixed RSS API limit handling.
    • Fixed a race during first-user administrator assignment.
    • Improved article-list loading, refresh, selection, read-state, and stale-response handling.
    • Reduced unnecessary article-feed watchers and improved client-side state synchronization.
    • Improved empty-reader, mobile navigation, pull-to-refresh, feed refresh, and settings error handling.

    Security and hardening

    • Hardened the MCP endpoint configuration and client error handling.
    • Added safer handling for external article and assistant source links.
    • Improved frontend URL validation and browser-storage protection.
    • Added a minimum cookie-availability check to authentication startup.
    • Tightened ownership and authorization checks across article and feed operations.

    Documentation and maintenance

    • Added a new GitHub Pages documentation site using Just the Docs.
    • Added or expanded guides for installation, configuration, administration, crawling, APIs, bookmarks, tags, keyboard shortcuts, scoring, search, server jobs, and article embeddings.
    • Added in-depth documentation for Events, Interest Islands, Topics, and the semantic processing architecture.
    • Updated dependencies and project metadata for version 2.2.0.

    Upgrade notes

    • This release includes database migrations for atomic first-user administrator claiming and crawl-run heartbeat tracking. Run the normal database migration step when upgrading if your deployment does not do so automatically.
    • No intentional breaking API changes are included.

    Full comparison: https://github.com/pietheinstrengholt/rssmonster/compare/v2.1.1...v2.2.0

  3. v2.1.1RSSMonster 2.1.12026-08-10 · 2026-08-10 15:09 UTC
    查看更新说明

    Fixes the production Docker frontend API configuration. When no explicit API hostname is configured, the frontend now uses the same-origin /api path, fixing login, registration, and feed-refresh requests.

  4. v2.1.0RSSMonster 2.1.02026-08-10 · 2026-08-10 14:40 UTC
    查看更新说明

    RSSMonster 2.1.0

    RSSMonster 2.1.0 makes the application faster, more resilient, and easier to deploy, while introducing a calmer, Feedbin-inspired reading experience.

    Highlights

    • Added SQLite support for simple, single-container installations.
    • Added article recommendations and a More like this panel.
    • Replaced Bootstrap with RSSMonster's own native styling system.
    • Significantly improved feed fetching, discovery, parsing, scheduling, and recovery.
    • Added live feed-refresh progress and feed-health observability.
    • Improved mobile, tablet, landscape, dark-mode, and offline behavior.
    • Upgraded the application, Docker images, and CI environment to Node.js 22.

    Feed processing and reliability

    • Added coordinated feed requests, caching, adaptive crawl intervals, retry scheduling, and crawl leases.
    • Added bounded response handling, parser isolation, redirect convergence, and SSRF protection.
    • Improved RSS and Atom discovery, URL alias handling, and publisher self-identification.
    • Added feed reconciliation and recovery when publishers change feed URLs.
    • Improved handling of malformed XML, large responses, encodings, linkless articles, media, and publisher revisions.
    • Added feed crawl statistics, health information, and observability to the settings interface.

    Reading experience

    • Added a Feedbin-inspired content-processing and reading experience.
    • Added recommended articles and the More like this panel.
    • Added mark-as-read-on-scroll support.
    • Added clearer unread-article and refresh-progress indicators.
    • Improved article scrolling, list-position preservation, loading states, and expanded mode.
    • Refined article metadata, category tags, media presentation, and score indicators.
    • Improved keyboard navigation and article collection-state handling.

    Interface and mobile improvements

    • Replaced Bootstrap styling with RSSMonster-owned native CSS and components.
    • Added consistent buttons, dialogs, dropdowns, icons, colors, borders, and focus states.
    • Improved light and dark themes.
    • Improved mobile and iPad layouts, including landscape rotation handling.
    • Added mobile refresh controls and refined pull-to-refresh behavior.
    • Fixed toolbar overlap, dropdown positioning, scrolling, metadata wrapping, and responsive styling issues.
    • Improved settings, onboarding, sidebar, briefing, and error-state presentation.

    Performance and operations

    • Reduced the PWA footprint and improved offline behavior.
    • Added offscreen article rendering optimizations and response compression.
    • Improved login and client startup performance.
    • Added SQLite as the default Docker Compose deployment.
    • Retained a separate MySQL Compose configuration for larger installations.
    • Consolidated the Docker images and upgraded them to Node.js 22.
    • Added baseline migrations for new installations.

    Security and correctness

    • Added stricter outbound request protections for feed acquisition.
    • Improved authentication ownership checks and session lifecycle handling.
    • Prevented administrators from accidentally deleting their own account.
    • Improved safe rendering of assistant-generated HTML.
    • Expanded client and server tests, including coverage for feed acquisition, hostile feeds, authorization, migrations, recommendations, and responsive UI behavior.

    Upgrade notes

    • Node.js 22 or newer is now required for source-based installations.

    • The environment variable PARALLELPROCESSFLAG has been renamed to CRAWL_PARALLELPROCESSFLAG.

    • The default docker-compose.yml now uses SQLite. Existing MySQL installations should use:

      docker compose -f docker-compose.mysql.yml up -d
      
    • Back up your database before upgrading and allow pending migrations to complete during startup.

    • SQLite users should preserve the Docker volume mounted at /app/data.

    Full changelog: v2.0.0...v2.1.0

  5. v2.0.0RSSMonster 2.0.02026-08-01 · 2026-08-01 10:36 UTC
    查看更新说明

    RSSMonster 2.0.0 introduces the current generation of RSSMonster, including the redesigned content-processing, recommendation, deduplication, event-clustering, smart-folder, and API capabilities.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    RSSMonster

    A modern, self-hosted RSS reader that turns information overload into organized, explainable reading.

    Release CI Docker pulls GitHub stars License: MIT

    Documentation · Quick start · Features · Choose a deployment

    RSSMonster Reader Mode: navigation, article list, and selected article in a three-panel workspace

    Why RSSMonster?

    RSSMonster treats your feeds as a stream of signals rather than a pile of unread items. Keep the familiar feed inbox, then use intelligent organization to decide what deserves attention and how different reports fit together.

    • Follow a story without rereading every headline. Semantic Events collect reporting about the same occurrence and let you expand its coverage. Duplicate handling separately identifies repeated content, preserving the distinction between a syndicated copy and another publisher's reporting.
    • Understand why something ranks highly. Recommended emphasizes your personal interests; Top Stories surfaces current coverage with broad source support. Inspect the contributing signals, or choose chronological reading when you simply want to catch up.
    • Define your own reading views. Declarative Smart Folders turn advanced search expressions into reusable selections. A project watchlist, today's unread articles, and a quality-focused research inbox can each have their own rules without moving articles between collections.
    • Read comfortably throughout the day. A three-panel desktop Reader, spacious Expanded view, compact summaries, keyboard navigation, and mobile gestures support both quick scans and longer reading sessions.
    • Choose how much infrastructure you need. Start with SQLite for lightweight personal reading, or use MySQL/MariaDB and optional local inference for semantic organization and background analysis. You control storage and provider choices.

    See RSSMonster in action

    The hero shows Reader Mode. These views show other ways to read and explore your library, including features available with inference enabled. Click or tap a screenshot to view it at full resolution. See reading modes for the controls and layout differences.

    Scan or read in depth

    Follow stories and interests

    Read across devices

    Main capabilities

    Reading

    Use Reader, Expanded, or Summarized mode; Headlines offers a denser list, while Summary bullets displays generated summaries when analysis is available. Bookmark articles, open original sources, and control when articles are marked read. Keyboard shortcuts, portrait bookmark swipes, and light, dark, or system themes support everyday reading.

    Desktop Reader includes a focused article toolbar for read state, bookmarks, and opening the original. Choose Small, Medium, or Large text with Aa; the size is remembered in your browser. The headphones button reads the rendered article body using browser text-to-speech when supported, with pause/resume on subsequent clicks. Expand the article to hide the middle list while keeping the sidebar visible, then restore the normal layout with the same button. See the Reader implementation notes for layout, typography, and interaction details.

    Organization

    Arrange subscriptions into categories, label articles with tags, and keep saved articles for later. Feed item filters accept or exclude future entries per subscription. Automated actions apply regular-expression rules to bookmark, mark read, tag, hide, or override scores on matching incoming articles.

    Search combines words, dates, article state, tags, and supported score or semantic filters. Save a query such as @today unread:true sort:desc as a Smart Folder; new matches appear automatically. Inference-backed score and semantic selections need the corresponding processing to be enabled and available.

    Intelligence

    Events connect reports about an occurrence; Interest Islands learn recurring personal interests from reading feedback. Related-article recommendations use semantic evidence, while expandable story sources keep alternative coverage accessible. Sparse evidence can legitimately produce no recommendations.

    Recommended remains available for every eligible article even without an Island match: missing personal evidence is neutral. Interest uses confidence-aware direct Island paths and bounded explicit feedback; semantic labels explain results rather than establishing identity.

    Scoring and Ranking documents Recommended, Top Stories, and Quality ordering. Article quality describes writing, tone, and promotional content; FeedTrust describes a subscribed source's recent value. These remain separate signals, and neither is factual verification.

    The optional assistant supports conversational discovery and source-based answers about stored articles. It uses an OpenAI provider and is configured separately from local embeddings, summaries, tags, and scoring.

    Self-hosting and compatibility

    Run with SQLite, MySQL, or MariaDB and keep accounts, subscriptions, and reading state scoped to each user. Move subscriptions with OPML import/export, or expose saved selections as private, tokenized generated RSS feeds. Fever and Google Reader compatibility connect supported client workflows; consult their documented contracts and limitations when choosing a client.

    Choose a deployment

    Run RSSMonster as a desktop app or host a server for access across devices. Desktop downloads local AI models on first launch. The SQLite quick start can connect to remote inference.

    DeploymentBest forIncluded capabilities
    Desktop app (Electron)Reading locally on Windows, macOS, or LinuxExisting reader with a local SQLite database and manual feed refresh. No Docker or separate server setup. Local inference and AI worker; models download on first launch. No scheduled crawling.
    SQLite quick startTrying RSSMonster and lightweight personal readingWeb reader, scheduled crawling, search, subscriptions, and rule-based organization. No separate database service, bundled inference service, or AI worker. Optional remote inference via Settings or environment.
    Comprehensive MySQL deploymentLocal intelligent processing, multiple active users, and higher write concurrencyMySQL 8.4, crawl and AI workers, Qwen embeddings and generation, and ModernBERT scoring for analysis, semantic organization, and recommendations.

    The 2.4 migration runner supports MySQL 8.4 and SQLite. MariaDB is currently blocked because its native schema has no validated recognition checkpoints; DB_DIALECT=mariadb does not enable safe installation or adoption. See database configuration.

    Install the Progressive Web App on supported devices to use an existing self-hosted RSSMonster server in its own app window, with optional Web Push for new articles. The PWA caches its shell; loading articles and saving reading state still require access to that server. The Electron desktop app runs its own backend and stores its data locally.

    Saved search-based Smart Folders work in desktop mode and both server profiles. Choose the comprehensive profile for local classification, embeddings, scoring, semantic labels, Smart Folder recommendations, and feed rediscovery without an OpenAI API key. Desktop configures its own local inference service automatically (Assistant disabled). The SQLite quick start can connect to an inference service through Settings → AI / Inference or INFERENCE_BASE_URL and an optional matching INFERENCE_API_KEY. Environment URLs take precedence and hide configuration controls; discovered capabilities remain visible. The SQLite quick start needs a separately started AI worker for background enrichment. Provider/model settings remain inside inference. For model downloads, credentials, startup, and readiness checks, follow the MySQL deployment guide.

    For self-hosting, database choice and inference settings are separate configuration concerns; SQLite and MySQL are the two supplied server profiles. Read database configuration and model usage before customizing a source installation.

    Docker Quick Start

    Have Git, Docker Engine or Docker Desktop, and Docker Compose available. The commands below use a POSIX shell and start the default SQLite profile.

    1. Clone the repository.

    git clone https://github.com/pietheinstrengholt/rssmonster.git
    cd rssmonster
    

    2. Create application secrets. Create an owner-only .env in the repository root:

    touch .env
    chmod 600 .env
    openssl rand -hex 32
    

    Run the OpenSSL command twice, then add the two different generated values to .env in place of these placeholders:

    JWT_SECRET=replace-with-a-long-random-secret
    FEVER_CREDENTIAL_SECRET=replace-with-a-different-long-random-secret
    

    Keep these values private and stable across restarts; never commit the file. On systems without POSIX permissions, restrict access using the host's file access controls.

    3. Start RSSMonster and create your account.

    docker compose up -d
    

    Open http://localhost:3000. Startup initializes the SQLite database and starts the web application and dedicated crawl worker. Create your first account, then add feeds or import an OPML subscription list. The first account becomes the administrator; see First Login.

    Persistent data lives in the rssmonster-data Docker volume, mounted at /app/data. docker compose down stops the deployment while keeping data. Do not use docker compose down -v unless you intend to delete the database volume.

    The application port binds to host loopback by default. Before exposing it to other machines, follow configuration and reverse-proxy guidance and configure HTTPS. See Getting Started for complete installation instructions, health checks, logs, and production setup.

    Documentation

    Use the documentation index to explore the complete guides.

    TopicGuides
    Installation and deploymentGetting Started, manual installation, macOS, Ubuntu, production deployment
    Configuration and storageServer settings UI, Environment settings and reverse proxies, SQLite and MySQL, Backup and Restore
    Local inference and modelsInference administration, Model Usage, Assistant and MCP
    Finding and organizing articlesSearch, Smart Folders, feed item filters, Actions, Webhooks
    Semantic architecture and rankingsHow RSSMonster Works, implementation guide, Scoring, FeedTrust
    Notifications and integrationsWeb Push, Fever API, Google Reader API
    Development and maintenanceContributing, npm Commands, Server Jobs

    Contributing

    Bug reports, documentation improvements, tests, and focused feature contributions are welcome. Read Contributing for development setup, validation, and pull requests. Describe reproducible issues and include your deployment profile so others can investigate the same behavior.

    Credits and license

    Created by Piethein Strengholt and contributors. Built with Node.js, Express, Vue 3, Sequelize, SQLite/MySQL, Bootstrap Icons, and feedsmith.

    Copyright © 2026 Piethein Strengholt. Released under the MIT License.