diff --git a/README.md b/README.md new file mode 100644 index 0000000..d9e8131 --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +# qBittorrent Multiplexer +## Combine multiple qBittorrent instances + +- [Introduction](#introduction) + - [Features](#features) + - [To Do](#to-do) +- [Installation](#installation) + - [Native](#native) + - [Docker](#docker) +- [Configuration](#configuration) + +# Introduction + +I run multiple instances of qBittorrent for performance reasons, but find it annoying to keep an eye on them. +This is a simple application to combine multiple instances into the same frontend. +It authenticates with the API for each instance and intelegantly passes requests through and/or combines them to allow a single view. + +## Features + +- Torrent lists and details +- Adding torrents to least busy instance +- Summed statistics + - Total transfer rates + - All time uploaded/downloaded + - Session uploaded/downloaded +- Exclude keys from torrent lists to improve client performance (e.g. remove magnets) + +### To Do + +Everything else! Notably: + +- Deleting torrents + - Need to parse and split out `hashes` field to all relevant instances +- Preferences + - May not bother, may try to inject an option into the settings page to select the instance to modify at any given time +- Client authentication + - Backend is done of course, you can use a reverse proxy instead to require authentication if needed + +# Installation + +## Native +It's a Go program, clone and install as usual. + +For example: + +```sh +git clone http://github.com/W-Floyd/qbittorrent-multiplexer && cd qbittorrent-multiplexer +go get +go build . +./qbittorrent-multiplexer +``` + +## Docker + +See the included `docker-compose.yaml` file and adjoining files (`vpn` and `qbittorrent`) for an example case + +# Configuration + +Configuration can be done environment variables and flags (in that order). +Please see example configs and docker compose files for an idea. +The Go code is pretty easy to read, check `config.go`, and the tops of `multiplexer.go` and `qbittorrent.go` for more details. \ No newline at end of file