sonarr radarr jackett transmission docker

Total
0
Shares
plex sonarr radarr jackett transmission docker

In this article we will see how to run docker containers for Plex, Sonarr, Radarr, Jackett and Transmission. Together these technologies make a complete suit. Let’s see how we can run individual docker commands for each of them as well as one docker-compose file.

Plex

It’s a free media streaming software where you can watch movies, tv serials and 100s of free tv channels. There is no need of buying any kind of subscription. You may connect your OTT accounts and get all the content at one place.

To run a docker image of plex, you can use this command –

docker run -d \
  --name=plex \
  --net=host \
  -e PUID=1000 \
  -e PGID=1000 \
  -e VERSION=docker \
  -e PLEX_CLAIM= `#optional` \
  -v /path/to/library:/config \
  -v /path/to/tvseries:/tv \
  -v /path/to/movies:/movies \
  --restart unless-stopped \
  lscr.io/linuxserver/plex:latest

In this command you need to replace data according to your use case. Like, the volume paths, claimtoken, timezone, hostipaddress etc. Here we are going to simply use the paths of container and store everything inside it. But you should always use some host directories. This is because if you delete the container, all the data will be deleted too.

On my machine, I am running plex container using this –

docker run -d \
  --name=plex \
  --net=host \
  -e PUID=1000 \
  -e PGID=1000 \
  -e VERSION=docker \
  --restart unless-stopped \
  lscr.io/linuxserver/plex:latest
running plex as docker container

Sonarr

Sonarr is a PVR for newsgroup and bittorrent users. Basically, it tracks the feeds of various media websites and manages the list. It updates the quality of media whenever a better one is available.

To run docker image of Sonarr, use this command –

docker run -d \
  --name=sonarr \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 8989:8989 \
  -v /path/to/data:/config \
  -v /path/to/tvseries:/tv `#optional` \
  -v /path/to/downloadclient-downloads:/downloads `#optional` \
  --restart unless-stopped \
  lscr.io/linuxserver/sonarr:latest

Similar to plex, you need to set the correct volume paths. I am omitting it for simplicity and using this command –

docker run -d \
  --name=sonarr \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 8989:8989 \
  --restart unless-stopped \
  lscr.io/linuxserver/sonarr:latest
running sonarr in docker container

It is running on port 8989. If we open http://localhost:8989 we can see sonarr running –

running sonarr on localhost:8989

Radarr

Just like Sonarr, we have another utility known as Radarr. To run docker image of Radarr use this code –

docker run -d \
  --name=radarr \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 7878:7878 \
  -v /path/to/data:/config \
  -v /path/to/movies:/movies `#optional` \
  -v /path/to/downloadclient-downloads:/downloads `#optional` \
  --restart unless-stopped \
  lscr.io/linuxserver/radarr:latest

We will simplify it for our use –

docker run -d \
  --name=radarr \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 7878:7878 \
  --restart unless-stopped \
  lscr.io/linuxserver/radarr:latest
running radarr in docker container

Radarr runs on port 7878. If we open localhost:7878, we will see this page –

running radarr on localhost:7878

Jackett

Jackett acts as a compatibility maker for sonarr and tracker-sites. It converts the queries to make them compatible to both.

To run Jackett on docker, use this command –

docker run -d \
  --name=jackett \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -e AUTO_UPDATE=true `#optional` \
  -e RUN_OPTS=<run options here> `#optional` \
  -p 9117:9117 \
  -v <path to data>:/config \
  -v <path to blackhole>:/downloads \
  --restart unless-stopped \
  lscr.io/linuxserver/jackett:latest

We will use the simplified command –

docker run -d \
  --name=jackett \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 9117:9117 \
  --restart unless-stopped \
  lscr.io/linuxserver/jackett:latest
running jackett in docker container

It works on 9117 port. If you open localhost:9117, you will get this –

jackett running on localhost:9117

Transmission

Transmission is a bittorrent client with lots of additional features like encryption, peer exchange, magnet links, per-torrent speed limits etc.

To run Transmission container, use this command –

docker run -d \
  --name=transmission \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -e TRANSMISSION_WEB_HOME=/combustion-release/ `#optional` \
  -e USER=username `#optional` \
  -e PASS=password `#optional` \
  -e WHITELIST=iplist `#optional` \
  -e PEERPORT=peerport `#optional` \
  -e HOST_WHITELIST=dnsname list `#optional` \
  -p 9091:9091 \
  -p 51413:51413 \
  -p 51413:51413/udp \
  -v /path/to/data:/config \
  -v /path/to/downloads:/downloads \
  -v /path/to/watch/folder:/watch \
  --restart unless-stopped \
  lscr.io/linuxserver/transmission:latest

The simplified command is –

docker run -d \
  --name=transmission \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 9091:9091 \
  -p 51413:51413 \
  -p 51413:51413/udp \
  --restart unless-stopped \
  lscr.io/linuxserver/transmission:latest
running transmission in container

It will run at 9091 port. If we open at localhost:9091 we will see this –

running transmission at localhost:9091

Docker-compose for Plex, Sonarr, Radarr, Jackett and Transmission

Here is the final docker-compose file for Plex, Sonarr, Radarr, Jackett and Transmission (remember to replace volumes) –

version: "2.1"
services:
  transmission:
    image: lscr.io/linuxserver/transmission:latest
    container_name: transmission
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - TRANSMISSION_WEB_HOME=/combustion-release/ #optional
      - USER=username #optional
      - PASS=password #optional
      - WHITELIST=iplist #optional
      - PEERPORT=peerport #optional
      - HOST_WHITELIST=dnsname list #optional
    volumes:
      - /path/to/data:/config
      - /path/to/downloads:/downloads
      - /path/to/watch/folder:/watch
    ports:
      - 9091:9091
      - 51413:51413
      - 51413:51413/udp
    restart: unless-stopped
  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /path/to/data:/config
      - /path/to/movies:/movies #optional
      - /path/to/downloadclient-downloads:/downloads #optional
    ports:
      - 7878:7878
    restart: unless-stopped
  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /path/to/data:/config
      - /path/to/tvseries:/tv #optional
      - /path/to/downloadclient-downloads:/downloads #optional
    ports:
      - 8989:8989
    restart: unless-stopped
  jackett:
    image: lscr.io/linuxserver/jackett:latest
    container_name: jackett
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - AUTO_UPDATE=true #optional
      - RUN_OPTS=<run options here> #optional
    volumes:
      - <path to data>:/config
      - <path to blackhole>:/downloads
    ports:
      - 9117:9117
    restart: unless-stopped
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - VERSION=docker
      - PLEX_CLAIM= #optional
    volumes:
      - /path/to/library:/config
      - /path/to/tvseries:/tv
      - /path/to/movies:/movies
    restart: unless-stopped

If you are having troubles in deciding the volume paths, then use our ready-to-use docker-compose file. But you need to decide the directory path according to your operating system. Here I am considering the linux OS –

version: "2.1"
services:
  transmission:
    image: lscr.io/linuxserver/transmission:latest
    container_name: transmission
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /var/transmission-config:/config
      - /var/transmission/completed:/downloads
      - /var/transmission/watch:/watch
    ports:
      - 9091:9091
      - 51413:51413
      - 51413:51413/udp
    restart: unless-stopped
  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /var/radarr-config:/config
      - /var/plex/movies:/movies
      - /var/transmission/completed:/downloads
    ports:
      - 7878:7878
    restart: unless-stopped
  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /var/sonarr-config:/config
      - /var/plex/tv:/tv
      - /var/transmission/completed:/downloads
    ports:
      - 8989:8989
    restart: unless-stopped
  jackett:
    image: lscr.io/linuxserver/jackett:latest
    container_name: jackett
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /var/jackett-config:/config
      - /var/jackett/downloads:/downloads
    ports:
      - 9117:9117
    restart: unless-stopped
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - VERSION=docker
    volumes:
      - /var/plex-config:/config
      - /var/plex/tv:/tv
      - /var/plex/movies:/movies
    restart: unless-stopped

Conclusion

In this article we saw how plex, sonarr, radarr, jackett, transmission docker container can be created individually as well as using docker-compose file. This complete suit can communicate with each other using shared volumes.