Problem

Needed to monitor multiple RSS feeds for specific topics (ZTNA, CVEs, cybersecurity) without manually checking each one, with filtering to surface only relevant articles from high-volume feeds.

Approach

Built a lightweight self-hosted service that fetches all configured feeds hourly, applies inclusive ANY-match filtering (keyword or regex) against title, summary, and content, deduplicates by link, keeps the newest N items (default 15), and serves a clean RSS 2.0 feed over HTTP. Configuration is driven entirely by a static config.json file mounted into the container - no database required. Runs on separate ports for the public RSS feed and an internal-only status/diagnostics page showing uptime, hit count, last refresh, and currently aggregated articles.

Outcome

A focused, self-hosted feed aggregator that supports both keyword and regex filters at global and per-feed levels. Compatible with feed readers, Slack/Discord integrations, FreshRSS, or SIEM ingestion. Runs on the homelab with zero external dependencies.

Tech Stack

Python Docker GHCR RSS 2.0