Startup grace
Gives large transfers time to reach normal throughput before slow-speed checks begin.
Configuration guide
Configure one RR profile per app, attach the right download profile, then paste the generated Transmission values into Radarr, Sonarr, and Lidarr.
Each RR profile maps one app to a put.io destination folder, a shared local download target, and a Transmission RPC endpoint path. The app's download-client category creates the final import subfolder under that target.
Every enabled profile keeps a unique RPC endpoint, but existing
apps may continue using the shared /transmission/rpc
endpoint. On that shared endpoint, the category in
download-dir selects the profile for a new transfer;
labels are checked when supplied, and the app User-Agent scopes
later listing and removal operations. If two profiles request the
same put.io transfer, putiorr keeps one remote transfer with
separate profile associations and staging copies.
| App | put.io folder | Download folder | RPC endpoint | Category |
|---|---|---|---|---|
| Radarr | putiorr |
/downloads |
/radarr/transmission/rpc |
radarr |
| Sonarr | putiorr |
/downloads |
/sonarr/transmission/rpc |
sonarr |
| Lidarr | putiorr |
/downloads |
/lidarr/transmission/rpc |
lidarr |
| Readarr | putiorr |
/downloads |
/readarr/transmission/rpc |
readarr |
Example: Sonarr category sonarr plus download folder
/downloads means completed files appear under
/downloads/sonarr for Sonarr's importer. The same
host folder must be mounted into putiorr and Sonarr at
/downloads, for example
/volume/downloads:/downloads in both containers, so
Sonarr does not need custom Remote Path Mapping.
Download profiles tune local-copy behavior by use case. Use one profile per download shape when movies, episodes, music, or books need different reset rules.
Gives large transfers time to reach normal throughput before slow-speed checks begin.
Excludes tiny files from slow-speed reset rules so metadata does not distort behavior.
Restarts a local file download after it stays below the configured speed for the configured duration.
Add a Transmission download client in each app. When the app container shares a Docker network with putiorr, the host is the compose service name and the port is putiorr's internal RPC port.
| Field | Radarr | Sonarr | Lidarr |
|---|---|---|---|
| Name | putiorr |
putiorr |
putiorr |
| Host | putiorr |
putiorr |
putiorr |
| Port | 9091 |
9091 |
9091 |
| Use SSL | Off | Off | Off |
| Category | radarr |
sonarr |
lidarr |
| Directory | /downloads |
/downloads |
/downloads |
| URL Base | /radarr/transmission |
/sonarr/transmission |
/lidarr/transmission |
Leave username and password blank unless you configured
PUTIORR_RPC_USERNAME and PUTIORR_RPC_PASSWORD.
Keep completed-download handling enabled in the *arr app.
Prowlarr usually does not need its own putiorr profile. It connects to Radarr, Sonarr, and Lidarr, syncs indexers, and those apps send accepted grabs to putiorr through their Transmission client settings.
Radarr URL: http://radarr:7878
Sonarr URL: http://sonarr:8989
Lidarr URL: http://lidarr:8686
putiorr reports progress in two phases. The dashboard is the best view for file-level local progress and per-file speed.
0-50%: put.io remote transfer
50-100%: local download from put.io to the download target
Local downloads are written as .part files and resume
with HTTP range requests after restarts. Optional slow-speed reset
closes and resumes a local download if it stays below the selected
threshold after the startup grace window.