A multiplexer for qBittorrent backends
Find a file
2025-02-07 02:24:23 +05:30
.github/workflows github: Tweak workflow. 2025-02-06 20:40:22 +05:30
multiplexer Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
qbittorrent fix: Remove forwarding headers to fix remote connection. 2025-02-06 21:44:39 +05:30
util init: First prototype. Basic loading of torrent list works, but not interactions. 2025-02-03 18:02:05 +05:30
.dockerignore Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
.env Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
.gitignore Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
config.go Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
config.yaml.example docs: Add some more example. 2025-02-06 19:29:30 +05:30
docker-compose.yaml fix: Remove forwarding headers to fix remote connection. 2025-02-06 21:44:39 +05:30
Dockerfile Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
go.mod Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
go.sum Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
handlers.go fix: handle empty response request. 2025-02-07 02:24:23 +05:30
main.go Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
qbittorrent-docker-compose.yaml Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30
README.md docs: Add README.md 2025-02-06 19:59:56 +05:30
vpn-docker-compose.yaml Update all, now a reasonably usable software. 2025-02-06 19:24:54 +05:30

qBittorrent Multiplexer

Combine multiple qBittorrent instances

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:

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.