/fetcharr

Fetch loot from a seedbox

Primary LanguageGo

fetcharr

Go Report Card test-workflow release-workflow golangci-lint-workflow

Fetcharr is a daemon running on your local fileserver to fetch data from a remote seedbox.

Features

🪆 A powerful wrapper around rsync (or any other command) to fetch data from remote systems
🔌 Multiple pluggable event notifiers that invoke sync process (Kafka, RabbitMQ, webhooks, time-based)
🪝 Support for defining multiple pre- and post-hooks
🔭 Observability through Prometheus metrics

Why would I need this?

🔨 You want to fetch data from a seedbox as soon as data has been downloaded successfully
📊 You want to get alerted on errors and look at dashboards rather than logs

Deployment Overview

bla

Installation

Requirements

  • You need to have a seedbox / remote system that you can access via SSH. Authentication via ssh keys is required.
  • The remote system needs to have rsync installed
  • (If you want to use the example webhook script below, you also need to have curl installed. This should be the default on almost all distros.)

Docker / Podman

$ git clone https://github.com/soerenschneider/fetcharr
$ cd fetcharr
$ docker run -v $(pwd)/contrib:/config ghcr.io/soerenschneider/fetcharr -config /config/fetcharr.yaml

Binaries

Head over to the prebuilt binaries and download the correct binary for your system. Use the example systemd service file to run it at boot.

From Source

As a prerequesite, you need to have Golang SDK installed. After that, you can install fetcharr from source by invoking:

$ go install github.com/soerenschneider/fetcharr@latest

Configuration

Head over to the configuration section to see more details.

Observability

Head over to the metrics to see more details.

Adding a webhook to Transmission

A guide that explains how to make Transmission call fetcharr's webhook endpoint can be found here.

Changelog

The changelog can be found here