Sonarr + Transmission + Plex on MacOS 10.5 (Catalina)

Sonarr version (exact version): 2.0.0.5344
Mono version (if Sonarr is not running on Windows): 5.20.1.34
OS: MacOS 10.15.1
Debug logs: n/a
Description of issue:

DESIRED BEHAVIOR
Sonarr sends a request to Transmission. Once completed, Sonar handles the file management and the new file displays in Plex.

CURRENT BEHAVIOR
Sonarr sends a request to Transmission. Once completed, the file remains in the general download directory. Plex has no knowledge of the new file. File did not move to is respective location per Sonarr config file.

ERROR
“Import failed, path does not exist or is not accessible by Sonarr: /PATH NAME/FILE NAME [rarbg]”

ATTEMPTS TO FIX
• Granted Full Disk Access to bash, sh, smbd,sshd,Terminal, Docker. (temporary btw to find a fix)
• Redirected downloads to less secured public shared space
• Failed attempts at command line fixes from others w/this problem
• Reboots

a) the transmission completed path doesnt actually exist in the sonarr container (connect to sonarr bash and check)

either set an identical volume mapping in both containers, or add a remote path mapping in sonarr to map the transmission path into a path that is valid within the sonarr container

we’d need to see the volume mappings for both containers, and the paths you have setup in transmission

b) the PUID/PGID youre using to run sonarr does not have permissions to the transmission completed path - on the host

check the user and groups ids that match the PUID and PGID youre using actually have full control over those folders (and its subfolders)

I have, since, set identical paths to the same download folder - pointing Transmission to the download folder of Sonarr. Same error.

Not familiar w/PUID or PGID except to say they are both set to default of 1000.

In addition to changing permissions for the Sonarr folder to read/write to everyone, permissions granted include full drive and full folder access to bash, sh, smbd, sshd, Terminal, Docker, Plex.

Any idea how to check if the user and group ids match PUID and PGID, or their control over the folders?

On my side, the directories (and enclosed directories) assigned are open to all users, read and write.
Then, in the macOS Preferences, gave full folder and disk access bash, sh, smbd,sshd,Terminal, Docker.
Also tried a few command lines posted in tutorials.

Not sure how to test, or what else to do for permissions.

Update: Same post w/additional data points, as the edit capability of the original post now appears to have been locked.

@ldexterldesign ~ Per request from GitHub


Environment: MacOS 10.15.4 (Catalina)
Docker Version: 2.2.0.5 (43884)
Sonarr: 2.0.0.5344
Mono: 5.20.1.34 (per sonarr panel)
Jackett: 0.16.127.0
Command Line Experience: Novice/Noob


[bullet to maintain below formatting]
.
EXPECTED BEHAVIOR
• Ability for Sonarr/Radarr to run their magic & moving a downloaded file to its designated location
• Keep Sonarr/Radarr connected to Jackett ~ use http://jacket:9117 in the related URLs.
.
.
CURRENT BEHAVIOR
• Sonarr/Radarr will not import downloaded files.
• Sonarr/Radarr will not accept http://jacket:9117 in the URL.
.
.
ATTEMPTS TO FIX
• Grant Full Disk Access & Folders to bash, sh, smbd,sshd,Terminal, Docker (temporary to find a fix.)
• Full Read/Write permissions to MacOS target folders (applied to enclosed directories)
• Redirected URLS and downloads to less secured public shared space
• Create new directory structures
• Use the same directories for sonarr/radarr/jackett
• sudo chown -R $(whoami) for paths
• Failed attempts at command line fixes from others w/this problem
• Reboots
• Rebuilds of Sonarr/Jacket/Radarr containers
• Delete and reinstall images & containers for Sonarr/Jackett/Radarr
• Delete and reinstall Docker
• Ensured selected directory is read/write to everyone, and added user ABC read/write.
• Confirm Docker is running from upper level Applications directory (not at User Level)
.
.
DATA POINTS
Substituting (hxxp://jacket:9117•••) for Jacket IP (172.17.0.2:9117/•••) works until Jacket IP changes
This only applies to the breaking jacket IP and does not address Sonarr/Radarr import issues.
Directories at the macOS level were self created through finder. Permissions opened.
.
.
ERROR MESSAGES
• Error messages are from Sonarr/Radarr, Indexer Name Error: Connect Failure (not route to host): IP.
• When Jackett IP changes:
“All indexers are unavailable due to failures”
"All search-capable indexers are temporarily unavailable due to recent indexer errors.
"All rss-capable indexers are temporarily unavailable due to recent indexer errors.


PERMISSIONS
drwxr-xr-x+ 2 xxxxx staff 64 May 3 10:15 downloads
drwxr-xr-x@ 3 xxxxx staff 96 May 3 10:30 jackett
drwxr-xr-x@ 10 xxxxx staff 320 May 3 18:02 radarr
drwxr-xr-x@ 13 xxxxx staff 416 May 3 17:32 sonarr
drwxr-xr-x+ 2 xxxxx staff 64 May 3 10:34 tv
drwxr-xr-x+ 2 xxxxx staff 64 May 3 10:16 video


CONFIGURATION DATA
docker create
–name=sonarr8
-e PUID=1000
-e PGID=1000
-e TZ=Europe/London
-e UMASK_SET=022
-p 8989:8989
-v ~/media2/sonarr:/config
-v ~/media2/tv:/tv
-v ~/media2/downloads:/downloads
–restart unless-stopped
linuxserver/sonarr

docker create
–name=radarr8
-e PUID=1000
-e PGID=1000
-e TZ=Europe/London
-e UMASK_SET=022
-p 7878:7878
-v ~/media2/radarr:/config
-v ~/media2/tv:/tv
-v ~/media2/downloads:/downloads
–restart unless-stopped
linuxserver/radarr

docker create
–name=jackett8
-e PUID=1000
-e PGID=1000
-e UMASK_SET=022
-e TZ=Europe/London
-p 9117:9117
-v ~/media2/jackett:/config
-v ~/media2/tv:/tv
-v ~/media2/downloads:/downloads
linuxserver/jackett


Try the following:

docker create
–name=sonarr8
-e PUID=1000
-e PGID=1000
-e TZ=Europe/London
-e UMASK_SET=022
-p 8989:8989
-v ~/media2/data/config/sonarr:/config
-v ~/media2/data:/data
–restart unless-stopped
linuxserver/sonarr

docker create
–name=radarr8
-e PUID=1000
-e PGID=1000
-e TZ=Europe/London
-e UMASK_SET=022
-p 7878:7878
-v ~/media2/data/config/radarr:/config
-v ~/media2/data:/data
–restart unless-stopped
linuxserver/radarr

docker create
–name=jackett8
-e PUID=1000
-e PGID=1000
-e UMASK_SET=022
-e TZ=Europe/London
-p 9117:9117
-v ~/media2/data/config/jakcett:/config
linuxserver/jackett

IMPORTANT: Then create all the folders you need inside data with macOS Finder/CLI - do not create them using docker volumes

Then configure as much as you can with sonarr UI e.g.:

  • settings > media management > file management > recycle bin (e.g. create ~/media2/data/sonarr/bin folder in macOS Finder/CLI then map it with sonarr UI)
  • settings > media management > root folders (e.g. create ~/media2/data/sonarr folder in macOS Finder/CLI then map it with sonarr UI)
  • settings > general > backups (~/media2/data/config/[sonarr/radarr] is your root as per docker config volume and no sonarr mapping required)

One other notable thing is when setting up download client(s) in sonarr UI use “host: host.docker.internal” and it’s wise to setup authentication (i.e. “username/password”)

Hope this helps

Regards

Also, my Docker knowledge is hazy but, you’d be better off using compose here because bundling your containers in a service has network implications. Your containers need to be networked to communicate properly (e.g. jackett and sonarr) and using compose/service sets this up automatically.

By default Compose sets up a single network for your app. Each container for a service joins the default network and is both reachable by other containers on that network, and discoverable by them at a hostname identical to the container name.

Regards

For reference, here’s my docker-compose.yml:

version: "2"
services:

  jackett:
    image: linuxserver/jackett
    container_name: jackett
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - ~/Downloads/-data/-config/jackett:/config
    ports:
      - 9117:9117
    restart: unless-stopped

  lidarr:
    image: linuxserver/lidarr:preview
    container_name: lidarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - ~/Downloads/-data/-config/lidarr:/config
      - ~/Downloads/-data:/-data
    ports:
      - 8686:8686
    restart: unless-stopped

  radarr:
    image: linuxserver/radarr:preview
    container_name: radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - ~/Downloads/-data/-config/radarr:/config
      - ~/Downloads/-data:/-data
    ports:
      - 7878:7878
    restart: unless-stopped

  sonarr:
    image: linuxserver/sonarr:preview
    container_name: sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - ~/Downloads/-data/-config/sonarr:/config
      - ~/Downloads/-data:/-data
    ports:
      - 8989:8989
    restart: unless-stopped

  jellyfin:
    image: linuxserver/jellyfin
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - ~/Downloads/-data/-config/jellyfin:/config
      - ~/Downloads/-data:/-data/jellyfin/apple
      - /Volumes/synology/gtd/home/reference:/-data/jellyfin/synology
    ports:
      - 8096:8096
    restart: unless-stopped

Regards

UPDATE
Added the new containers, w/the following edits:
• Labeled them 9
• Unable to cut/paste, as the formatting appears to require
---- Double dash - - at the beginning of name and restart.
---- Space+forward slash at the end of each line.
• Swapped jakcett for jackett 2nd to last line.


Historically, ALL folders have been created manually in the macOS.
Following the instructions here, all folders have been created manually through macOS. If the folders did not exist at the time the programs are started, then Docker creates them. So ALL folders have been created manually.Presuming directories labeled ‘logs’ and ‘xdc’ created by the process are fine. Jackett also starts everything off at its own jackett directory…so now we have config > jackett > Jackett


Sonarr/Radarr for Docker on Mac appear to offer less easily editable settings than Linux or Windows, so, for example, no way to go in and add a download directory without redoing the config file itself.
There are ways, yet they require a deeper understanding of command lines where redoing the config file is more straight forward when you do not know command lines.

For example, not seeing a way to set root folders from within the Sonarr admin page.


Transmission is a macOS native application, with the web interface enabled to allow Sonarr/Radarr etc. to interact. That component has been working smoothly, at least Sonarr makes the request and Transmit has been auto-processing. Problem happens after the file has completed, where Sonarr will not touch the new file.


So, based on the instructions above I am working now on downloading a file and see what happens when there is no dedicated download directory and such…need to point Transmit somewhere…so guess that will be data?


REFERENCE


Without a download folder, it seems there is no spot to assign the download?
When selecting the series or episode, you have to designate path, and yet now there are not what seem like feasible options. Digging through all of these and the ones chosen all give an error of child of bin.
One gave an error that might be pointing to the permissions problem… “Folder is not writable by user abc.” ??

So, at the moment:

  1. Unable to add Jackett to indexes of Sonarr w/o digging around for the IP of Jackett, which changes.
  2. Unable to test if Sonarr will pick up the file and move it in this current experimentation.

Heard of compose… seemed more involved and appreciate the explanation and will give this a go.
Does it basically work the same as the standard container?

UPDATE:
Can’t get this going. I am using Terminal for Mac. Should I be using something else for this code?
Is this something to write in a text editor and save it somewhere for app to pull in? Lost here.

It’s not imperative, just best practice to create a single (docker) volume (e.g. data) and do everything inside it so containers can easily communicate, otherwise you’ll likely run into access permission issues which appears to be your case. I’m confident compose will solve your issue(s) because it sets up a single network for all your containers.

Transmission is a good choice. macOS Transmission is the best torrent experience on any platform and I’ve used the others (e.g. deluge, qbittorrent) and read about the other platforms.

Regards

Save your compose to ~/docker-compose.yml (file name is not important) then run it using:

cd ~
docker-compose up

NB if you haven’t already then you will need to install docker-compose, you can do it via homebrew

brew install docker-compose

Regards

This is cool…and having the services under the one container also cool.
Happy to see more configuration options available…
Better still, Sonarr accepts jacket in the URL (no more broken urls…yea!!)

Waiting with baited breath now on the final pieces of sonarr on file management.
I am stuck, though, myself on assigning directories. Presuming we are looking at -data for downloads? If so, am I pointing Transmission to media2/-data?

Yep…getting errors now related to mappings. Where did you map root? Where did you point the download app to drop downloads?

/Users/ldexterldesign/Downloads/-data
├── -config
│   ├── jackett
│   ├── jellyfin
│   ├── lidarr
│   ├── radarr
│   └── sonarr
├── jellyfin
│   ├── apple
│   │   ├── audio
│   │   │   └── music
│   │   └── video
│   │       ├── film
│   │       ├── tv
│   │       ├── tv\ -\ film
│   │       └── web
│   └── synology
├── lidarr
│   ├── -bin
│   └── -import
├── radarr
│   ├── -bin
│   └── -import
├── sonarr
│   ├── -bin
│   ├── -import
│   └── Have\ I\ Got\ News\ for\ You
│       └── s59
│           └── Have\ I\ Got\ News\ for\ You\ -\ s59e05\ -\ 2020-05-01\ -\ Romesh\ Ranganathan,\ Maisie\ Adam,\ James\ O'Brien\ -\ SDTV\ -\ h264\ AAC\ -\ Sonarr.mp4
└── transmission
    ├── complete
    │   ├── Have\ I\ Got\ a\ Bit\ More\ News\ for\ You\ s59e05\ MP4\ +\ subs\ BigJ0554
    │   │   ├── Have\ I\ Got\ a\ Bit\ More\ News\ for\ You\ s59e05\ BigJ0554.mp4
    └── incomplete

I’ve left some sonarr/transmission download examples in the tree above

FYI I use -import for manual importing (i.e. wanted > missing > manual import) and -bin for when sonarr decides to override files during its imports (i.e. settings > media management > recycling bin)

Regarding root please reread this comment as I mention root

Experiment a little - I’m sure you’ll work things out :slightly_smiling_face:

Hope this helps

Regards

LOVE having these as a single container. Thank you for sharing all that…and I think this solved the Jackett problem.

Hitting the same errors now as before, and pretty sure I followed the instruction as intended.

Does this composer method accommodate easy adjustments to the configuration file?

Hmmmif root is mentioned there I continue to miss.

One other notable thing is when setting up download client(s) in sonarr UI use “host: host.docker.internal” and it’s wise to setup authentication (i.e. “username/password”) - originally dismissed thinking this would only apply to download from with Docker. Not getting it as intended.
image

Been experimenting for days… and status as of right now:

  • Jackett issue fixed w/your method graciously shared here. (YEA!)
  • Even after the full revamp, still hitting the same issue on import.

“DownloadedEpisodeImportService”
Import failed, path does not exist or is not accessible by Sonarr: /Users/xxxx/media3/-data/family.guy.s18e17.720p.web.x264-xlf[eztv].mkv. Ensure the path exists and the user running Sonarr has the correct permissions to access this file/folder

host is:

host.docker.internal

… not:

host: host.docker.internal

Regards





Screenshot 2020-05-04 at 23.38.55

Thought I had that one too…first one I tried. However, it worked so I must have missed that…coding isn’t my space… :-/