FeedFetcher is a small utility that aggregates RSS/Atom/JSON feeds in a PostgreSQL database and dispatches them to Mattermost channels.


To build FeedFetcher, you will need a Go 1.17 compiler or newer. Clone or unpack the source and run go build -o feed-fetcher .. The resulting executable is self-contained and can be deployed anywhere you like.


Create a PostgreSQL database for FeedFetcher and pass the -db=postgres://... option to every invocation. Create a Mattermost Incoming Webhook for FeedFetcher and pass the -mattermost=http://... option to any invocation that dispatches messages.

Run feed-fetcher -category=<NAME> -channel=<ID> -refresh=<INTERVAL> sub ... to subscribe to feeds.

Use feed-fetcher -expire=<INTERVAL> get command to update the database with new feeds whose refresh intervals have been exceeded. Then run feed-fetcher dispatch to send unseen items to Mattermost and mark them as seen.

Run feed-fetcher -expire=<INTERVAL> clean to remove seen items older than <INTERVAL> from the database.