Necoro / feed2imap-go

A software to convert rss feeds into mails.
GNU General Public License v2.0
53 stars 7 forks source link

Go Report Card

feed2imap-go

A software to convert rss feeds into mails. feed2imap-go acts as an RSS/Atom feed aggregator. After downloading feeds (over HTTP or HTTPS), it uploads them to a specified folder of an IMAP mail server. The user can then access the feeds using their preferred client (Mutt, Evolution, Mozilla Thunderbird, webmail,...).

It is a rewrite in Go of the wonderful, but unfortunately now unmaintained, feed2imap. It also includes the features that up to now only lived on my own branch.

It aims to be compatible in functionality and configuration, and should mostly work as a drop-in replacement (but see Changes).

An example configuration can be found here with additional information in the wiki.

See the Installation section on how to install feed2imap-go. (Spoiler: It's easy ;)).

Features

Changes

Additions to feed2imap

Subtle differences

Unsupported features of feed2imap

Installation

The easiest way of installation is to head over to the releases page and get the appropriate download package. Go is all about static linking, thus for all platforms the result is a single binary which can be placed whereever you need.

Please open an issue if you are missing your platform.

Use your package manager

Arch Linux

feed2imap-go is present in the AUR.

Nix

feed2imap-go is present in nixpkgs.

Install from source

Clone the repository and, optionally, switch to the tag you want:

git clone https://github.com/Necoro/feed2imap-go
git checkout v1.7.2

The official way of building feed2imap-go is using goreleaser:

goreleaser build --single-target --snapshot --clean

The built binary is then inside the corresponding arch folder in dist.

In case you do not want to install yet another build tool, doing

go build

should also suffice, but does not embed version information in the binary (and the result is slightly larger).

If you are only interested in getting the latest build out of the master branch, do

go install github.com/Necoro/feed2imap-go@master

Using @latest instead of @master gives you the latest stable version.

Run in docker

Most times, putting feed2imap-go somewhere and adding a cron job does everything you need. For the times when it isn't, we provide docker containers for your convenience at Github Packages and at Docker Hub.

The container is configured to expect both config file and cache under /app/data/, thus needs it mounted there. When both are stored in ~/feed, you can do:

docker run -v ~/feed:/app/data necorodm/feed2imap-go:latest

Alternatively, build the docker image yourself (requires the feed2imap-go binary at toplevel):

docker build -t feed2imap-go .

Note that the supplied binary must not be linked to glibc, i.e. has to be built with CGO_ENABLED=0. When using goreleaser, you'll find this in dist/docker_linux_amd64.

Or you can roll your own Dockerfile, supplying a glibc...

NB: feed2imap-go employs no server-mode. Thus, each run terminates directly after a couple seconds. Therefore, the docker container in itself is not that useful, and you have to have a mechanism in place to spin up the container regularly.