ghostserverd / mediaserver-docker

Docker compose for comprehensive autonomous media server
253 stars 42 forks source link

Files not moved from nzbget to folders #9

Closed gatsby0121 closed 4 years ago

gatsby0121 commented 4 years ago

I can do a search with sonarr, it then forwards tthe nzb request to nzbget, which downloads the file and says it's unpacking it, but it doesn't show up in completed or plex tv shows folder.

I think my problem is from the dnsmasq part. I think it's just not seeing the file when it's done.

I'm seeing this error in the netdata logs:

netdata | 2020-06-04 15:26:31: cgroup-name.sh: WARNING: cannot find the name of docker container '3893f7e2546c568112cd8d90cc7823fea957f9d236a970ef6c786adfdf0d6b23'

I'm not sure how to implement your dnsmasq.conf recommendation (option 3, which I've pasted below)

Can you give an example entry for dnsmasq.d in reference to this comment? And is this applied in the host?

If SERVICE_NAMES is set (a list of services to make available from within the wireguard network), write each service name individually to /etc/dnsmasq.conf to force 127.0.0.11 as the DNS server for each service address. This is nice because you don't have to write an alias for each service to make available, but you do need to list out all of the services. A sample SERVICE_NAMES variable is set in the docker-compose.yml file. It shouldn't need to be modified, but if there is a reason to, open an issue and I can make it pull from the .env file.

ghostserverd commented 4 years ago

the reference to SERVICE_NAMES is specific to docker-compose. When you set that variable via the environment field in the compose file like

- SERVICE_NAMES=filebot sonarr radarr bazarr jackett announcedd heimdall tautulli plex

for instance, this makes the filebot service, sonarr, radarr, etc. all available via their single word domain (e.g. you can make a web request to filebot:<port> from within containers that are proxying through the wireguard container, like transmission and nzbget)

dnsmasq is automatically configured by the wireguard container so you shouldn't need to make any manual changes to dnsmasq.

Go to the EXTENSION SCRIPTS setting in nzbget. If you click on that Choose button next to the Extensions field, do you see an option to choose nzbget-postprocess? If so, select it. If not, could you try just manually adding nzbget-postprocess.sh in the Extensions field and give that a shot? I think that's the root cause. Apparently I forgot to make the container auto-select the post processing script, and I think that's the root cause here as well.

gatsby0121 commented 4 years ago

It's not populated. I manually added it, but it's not working. Where is that script? I did a find on the folders, but it's not there.

ghostserverd commented 4 years ago

Hmm it should be copied to /usr/local/bin by the container. Do you see it there?

If you go to Settings > PATHS and scroll down to ScriptDir, is it set to /usr/local/bin? If not, set that as well and then it should start working.

gatsby0121 commented 4 years ago

It was set to ${MainDir}/scripts After changing to /usr/local/bin it showed up in the list and runs the post processing.

gatsby0121 commented 4 years ago

First, thank you for all your help, it's much appreciated.

The postprocessing fired, but nzbget outputs this error, and the file doesn't get moved:

nzbget          | [INFO] nzbget-postprocess: File does not exist: /share/downloads/completed/tv/******showname******
nzbget          | [INFO] nzbget-postprocess: No files selected for processing
nzbget          | [INFO] nzbget-postprocess: Done ¯\_(ツ)_/¯
100   961  100   827  100   134     49      7  0:00:19  0:00:16  0:00:03   179
nzbget          | [INFO] nzbget-postprocess: + '[' 0 '=' 0 ]
nzbget          | [INFO] nzbget-postprocess: + exit 93
nzbget          | [INFO] Post-process-script nzbget-postprocess.sh for ******showname****** successful
nzbget          | [INFO] Collection ******showname****** added to history
ghostserverd commented 4 years ago

All right, we're in the home stretch.

If you exec into the filebot container (docker exec -it filebot /bin/bash) what is your directory structure in there? The nzbget and filebot containers need to have matching paths since nzbget is telling filebot where to find the files. If you're in the filebot container and see that /share/downloads/completed/tv is not available, filebot won't be able to find any files.

My guess is that this is the issue:

If you look at the compose file, the nzbget service by default mounts

- ${DOWNLOAD_DIR}/nzb:/downloads/nzb

which means the downloads directory isn't actually getting mounted, just the subdirectory nzb is.

To fix this, you can either go back to PATHS and make your MainDir be /downloads/nzb, or you can change the volume mount in the compose file to be

- ${DOWNLOAD_DIR}:/downloads

IIRC the reason I made it download to a subdirectory was to avoid possible collisions with transmission downloads, but I think it would be fine since transmission downloads to complete and incomplete whereas nzbget downloads to completed and intermediate.

Clearly I need to rework this nzbget container to get some sane defaults written in the config. I've been running this for so long I completely forgot that I had manually configured nzbget at some point. Sorry for the confusion!

gatsby0121 commented 4 years ago

Thank you so much for your help! Looks like it's working now.