Proxy that allows put.io to be used as a download client for sonarr/radarr/whisparr. The proxy uses the Transmission protocol.
There are a few ways to install putioarr:
Make sure you have a proper rust installation
cargo install putioarr
First, generate a config using putio generate-config
. This will generate a config file in ~/.config/putioarr/config.toml
. Use -c
to override the configuration file location.
Edit the configuration file and make sure you configure the username and password, as well as the sonarr/radarr/whisparr details.
putioarr run
Docker images are based on linuxserver.io images.
The first time you run your docker container, run it without the -d
option, since you'll need a put.io API key. When no configuration is found, it will present you a link and a code that will generate an API key. After the key is generated, putioarr will write a default config in your config volume (see docker compose
and docker cli
below). Modify the config (like username, password and sonarr/radarr/whisparr configuration) in order to properly use putioarr.
We utilise the docker manifest for multi-platform awareness.
Simply pulling ghcr.io/wouterdebie/putioarr:latest
should retrieve the correct image for your arch (amd64 or arm64).
version: "2.1" services: putioarr: image: ghcr.io/wouterdebie/putioarr:latest container_name: putioarr environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - /path/to/putioarr/config:/config - /path/to/your/downloads:/downloads ports: - 9091:9091 restart: unless-stopped ```
```bash docker run -d \ --name=putioarr \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -p 9091:9091 \ -v /path/to/deluge/config:/config \ -v /path/to/your/downloads:/downloads \ --restart unless-stopped \ ghcr.io/wouterdebie/putioarr:latest
```
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal>
respectively. For example, -p 8080:80
would expose port 80
from inside the container to be accessible from the host's IP on port 8080
outside the container.
| Parameter | Function |
| :----: | --- |
| -p 9091
| Port connecting to putioarr |
| -e PUID=1000
| for UserID - see below for explanation |
| -e PGID=1000
| for GroupID - see below for explanation |
| -e TZ=Etc/UTC
| specify a timezone to use, see this list. |
| -v /config
| putioarr configs |
| -v /downloads
| torrent download directory |
The proxy will upload torrents or magnet links to put.io. It will then continue to monitor transfers. When a transfer is completed, all files belonging to the transfer will be downloaded to the specified download directory. The proxy will remove the files after sonarr/radarr/whisparr has imported them and put.io is done seeding. The proxy will skip directories named "Sample".
A configuration file can be specified using -c
, but the default configuration file location is:
- Linux: ~/.config/putioarr/config.toml
- MacOS: ~/Library/Application Support/nl.evenflow.putioarr
TOML is used as the configuration format: ```
username = "myusername" password = "mypassword"
download_directory = "/path/to/downloads"
bind_address = "0.0.0.0"
port = 9091
loglevel = "info"
uid = 1000
polling_interval = 10
skip_directories = ["sample", "extras"]
orchestration_workers = 10
download_workers = 4
[putio]
putioarr get-token
api_key = "MYPUTIOKEY"
[sonarr] url = "http://mysonarrhost:8989/sonarr"
api_key = "MYSONARRAPIKEY"
[radarr] url = "http://myradarrhost:7878/radarr"
api_key = "MYRADARRAPIKEY" ```
skip_directories
list, which works, but might be tedious.Thanks to davidchalifoux for borrowed code from kaput-cli.