A custom extension for FreshRSS that filters incoming articles based on feed URLs and specific tags.
Instead of marking unwanted articles as read, this extension hooks into the entry_before_insert process and entirely discards articles that do not contain the specified tags. This approach prevents unwanted articles from ever reaching your database, keeping your FreshRSS instance incredibly clean, lightweight.
- Pre-database Filtering: Unmatched articles are rejected before insertion, saving database storage.
- Feed-Specific Rules: Apply tag filters only to the feeds you specify.
- Web UI Configuration: Easily manage your filtering rules directly from the FreshRSS extension settings menu.
- Download or clone this repository.
- Copy the
xExtension-TagFilterfolder into theextensionsdirectory of your FreshRSS installation:/path/to/FreshRSS/extensions/xExtension-TagFilter/ - Ensure the folder permissions match your web server user (e.g.,
www-data).
If you are running FreshRSS via Docker, you can install the extension by adding a volume mount or by building a custom image.
Option A: Volume Mount (docker-compose.yml)
volumes:
- ./extensions/xExtension-TagFilter:/var/www/FreshRSS/extensions/xExtension-TagFilterOption B: Custom Build (Dockerfile)
FROM freshrss/freshrss:latest
COPY --chown=www-data:www-data ./extensions/xExtension-TagFilter /var/www/FreshRSS/extensions/xExtension-TagFilter- Log in to your FreshRSS instance as an administrator.
- Navigate to Configuration (Settings) > Extensions.
- Locate Tag Filter in the list and toggle the switch to enable it.
- Click the Gear icon (⚙️) next to the extension to open the configuration page.
- Enter your filtering rules in the text area.
Write one rule per line using the following format:
[Part of Feed URL] | [Target Tag]
example.com/feed | tagnamewithoutsharp
example.net/rss | network
Note: If a feed matches the URL string but the article does not contain the specified tag, the article will be silently discarded.
This software is released under the MIT License.