speedrr

speedrr

Docker app from grtgbln's Repository

Overview

Dynamically manage speeds on torrent clients, with Plex/Jellyfin/Emby intergration.

speedrr

speedrr - Dynamic Upload and Download Speed Manager for Torrenting

Change your torrent client's upload speed dynamically, on certain events such as:

  • When a Plex/Jellyfin/Emby stream starts
  • Time of day and day of the week
  • More coming soon!

Change your torrent client's download speed dynamically, on certain events such as:

  • Time of day and day of the week
  • More coming soon!

This script is ideal for users with limited upload speed, however anyone can use it to maximise their upload speed, whilst keeping their Plex/Jellyfin/Emby streams buffer-free! Also great to adjust the download rate during the day, in case the bandwidth is needed for something else!

Features

  • Multi-server support for Plex, Jellyfin, Emby, and Tautulli.
  • Supports qBittorrent and Transmission.
  • Multi-torrent-client support.
    • Bandwidth is split between them, by number of downloading/uploading torrents.
  • Schedule a time/day when upload speed should be lowered.

Setup

Docker

Pull the image with:

docker pull itschasa/speedrr

Your config file should be stored outside of the container, for easy editing.

You can then add a volume to the container (like /data/), which points to a folder where your config is stored.

Example docker run command:

docker run -d
    -e SPEEDRR_CONFIG=/data/config.yaml
    -v /folder_with_config/:/data/
    --name speedrr
    --network host
    itschasa/speedrr

Unraid

  1. Open your console and run the following command:
cd /boot/config/plugins/dockerMan/templates-user && touch my-speedrr.xml && nano my-speedrr.xml
  1. Go to speedrr-unraid.xml, and copy and paste it into your console.
  2. Press Ctrl+O, then Enter, then Ctrl+X (to save the file and exit).
  3. Open your WebUI > Docker > Add Container.
  4. Click Select a template, and select speedrr.
  5. The options should be fine as they are defaulted. Apply changes.
  6. Using the template, create config.yaml in your /appdata/speedrr/ folder, and fill out the config.
  7. Start/Restart the container in the WebUI.
  8. Check everything is working in the logs (Docker Logs).

Source

  1. Download the source code.
  2. Install Python 3.10 (other versions should work).
  3. Install the required modules with python -m pip install -r requirements.txt.
  4. Edit the config to your liking.
  5. Run python main.py --config_path config.yaml to start.

Contributing

Anyone is welcome to contribute! Feel free to open pull requests.

Issues and Bugs

Please report any bugs in the Issues section.

Feature Suggestions

Got an idea for the project? Suggest it here!

Install Speedrr on Unraid in a few clicks.

Find Speedrr in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Speedrr Review the template variables and paths Click Install

Requirements


        Expects a "config.yaml" file in the Config Folder BEFORE the container starts. See documentation: https://github.com/itschasa/speedrr/blob/main/config.yaml
    

Download Statistics

29,715
Total Downloads
2,493
This Month
2,884
Avg / Month

Total Downloads Over Time

Loading chart...

Details

Repository
itschasa/speedrr:latest
Last Updated2025-07-17
First Seen2025-05-29

Runtime arguments

Network
bridge
Privileged
false

Template configuration

Config FolderPathrw

Path to config files

Target
/data
Default
/mnt/user/appdata/speedrr/config
Value
/mnt/user/appdata/speedrr/config
Internal Config FileVariable

Internal path to config file. Not recommended to change.

Target
SPEEDRR_CONFIG
Default
/data/config.yaml
Value
/data/config.yaml
Console Log LevelVariable

Log level in console

Target
SPEEDRR_LOG_LEVEL
Default
20
Value
20
File Log LevelVariable

Log level in file

Target
SPEEDRR_LOG_FILE_LEVEL
Default
30
Value
20