Skip to content

W-Floyd/qbittorrent-multiplexer

Repository files navigation

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 intelligently 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.

About

A multiplexer for qBittorrent backends

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages