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...