Generate filtered RSS feeds based on your own filter criteria

speckx1 pts0 comments

IFIN/rss-filter: Generate filtered RSS feeds based on your own filter criteria. Keep the signal, lose the noise! - Codeberg.org

This website requires JavaScript.

IFIN/rss-filter

Watch

Star

Fork

You've already forked rss-filter

Code

Issues

Pull requests

Projects

Releases

Activity

Generate filtered RSS feeds based on your own filter criteria. Keep the signal, lose the noise!

47 commits

4 branches

2 tags

27 MiB

Rust

97.2%

Dockerfile

2.8%

main

Find a file

HTTPS

Download ZIP<br>Download TAR.GZ<br>Download BUNDLE

Open with VS Code

Open with VSCodium

Open with Intellij IDEA

Taggart

5fc7600e88

Update logging for containerfile

2026-06-24 06:40:21 -07:00

src

Author filter back to contains

2026-06-23 21:14:55 -07:00

.dockerignore

Ignore target folder for container builds

2026-06-11 14:34:57 -07:00

.gitignore

Ignore compose file that may have modifications

2026-06-12 06:37:24 -07:00

Caddyfile.example

Use example files

2026-06-12 08:25:39 -07:00

Cargo.lock

Author filter back to contains

2026-06-23 21:14:55 -07:00

Cargo.toml

Cargo to v0.2.0

2026-06-23 16:27:55 -07:00

Containerfile

Update logging for containerfile

2026-06-24 06:40:21 -07:00

crontab

Fix crontab

2026-06-24 06:37:54 -07:00

docker-compose.example.yml

Add caddy_data volume for certs

2026-06-12 12:21:43 -07:00

filters.example.yml

Working filter pipelines

2026-06-23 16:11:04 -07:00

LICENSE

Initial commit

2026-06-09 17:23:12 +02:00

README.md

Update Readme

2026-06-23 16:27:25 -07:00

README.md

RSS-Filter

Generate filtered RSS feeds based on your own filter criteria. Keep the signal, lose the noise!

About

RSS-Filter is a very simple tool. It takes a config file, filters.yml, with a list of feeds to pull. For each feed, a list of filters is defined.

Usage

Create filters.yml

Using filters.example.yml as a guide, build your feed and filter configs in filters.yml. Each feed can accept a list of filters which will be applied sequentially, generating a filter "pipeline" for your feed.

CLI

Create filtered RSS feeds based on YAML pipelines

Usage: rss-filter [OPTIONS]

Options:<br>-f, --filters-file Filters file [default: filters.yml]<br>-o, --out-dir Output Directory [default: feeds]<br>-h, --help Print help<br>-V, --version Print version<br>Deployment

This tool simply produces the feeds on demand. It does not handling scheduling, nor is it a web server. In the spirit of the Unix philosophy, it was built to do one thing well. But we have deployment recommendations and resources.

We provide both server install and containerized recommendations.

Server Install

Install an HTTP server to a web-facing server (or one generally accessible via private networking). We recommend Caddy.

Download the latest appropriate rss-filter binary from Releases. Install the binary so it is available at least to the user that runs the HTTP server.

Create a folder to store generated feeds and the filters.yml file.

mkdir -p /path/to/rss-filter/feeds<br>touch /path/to/rss-filter/filters.yml<br>chown -R caddy: /path/to/rss-filter<br>We make the folder owned by caddy (or your webserver of choice) to the files may be accessed.

Point the server, however you want to access it, at the feeds folder as the web root. Here's an example Caddyfile:

https://example.com {<br>root /path/to/rss-filter/feed<br>file_server<br>Create the filters.yml file as described above.

Configure a scheduled job or task to run as the HTTP server user that regenerates the feeds on a given interval. Here's an example cronjob that runs every 10 minutes.

0,10,20,30,40,50 * * * * caddy /usr/local/bin/filter-rss -c /path/to/rss-filter/filters.yml -o /path/to/rss-filter/feeds<br>And if you prefer systemd timers (why?)

rss-filter.timer

[Unit]<br>Description=Runs rss-filter ever 10 minutes

[Timer]<br>OnCalendar=*:0/10<br>Persistent=true

[Install]<br>WantedBy=timers.target<br>rss-filter.service

[Unit]<br>Description=My scheduled task

[Service]<br>Type=oneshot<br>ExecStart=/usr/local/bin/rss-filter -c /path/to/rss-filter/filters.yml -o /path/to/rss-filter/feeds<br>User=caddy<br>Container Install

We also provide the means to install via Podman/Docker.

First, make the necessary config files from the examples.

cp Caddyfile.example Caddyfile<br>cp docker-compose.example.yml docker-compose.yml<br>cp filters.example.yml filters.yml<br>Edit your filters.yml as desired.

Build the rss-filter image.

docker compose build rss-filter<br>In the Caddyfile, modify the site entry for the URL you'll host on.

Modify the ports section of docker-compose.yml as necessary for your deployment.

Deploy! If you're running on an internet-facing server, the Caddy container will handle certificates from LetsEncrypt by default (you can change this in the Caddyfile).

docker compose up -d<br>That's it; you're live!

Filters and Filter Configs

filter.yml is a list of filter configs. Each filter config contains:

- url: https://ifin-intel.org/feed.xml # The URL of the feed<br>name: IFIN RSS Feed # Descriptive name<br>default_include: true # Whether to include...

filter filters feeds example server feed

Related Articles