I-am-PUID-0 / pd_zurg

A combined docker image for the unified deployment of itsToggle's, yowmamasita's, and ncw's projects -- plex_debrid, zurg, and rclone
MIT License
117 stars 10 forks source link

Expose port 9999 #28

Closed skearney414 closed 4 months ago

skearney414 commented 4 months ago

Running this does not expose the webdav sever unless you add ports: -9999:9999 to the docker compose file. Also, the rclone mount is empty I have to run rclone locally to get the mount working. It might be --allow-non-empty on a Mac

skearney414 commented 4 months ago

as a side note - is there a way to turn off the Plex debrid Plex refresh together? it does not boot without it populated and I want zurg to do the updating. Thanks

I-am-PUID-0 commented 4 months ago

Running this does not expose the webdav server unless you add ports: -9999:9999 to the docker compose file. Also, the rclone mount is empty I have to run rclone locally to get the mount working. It might be --allow-non-empty on a Mac

"add ports: -9999:9999" is the expected behavior. Given that the WebDAV port is a variable based on the user-provided ZURG_PORT or is randomly generated if a port is not specified, the container does not natively expose any ports. Thus, the user must always specify the port in the docker-compose.yml

As for the empty rclone mount, you will need to provide more insight into your configuration before we can identify possible causes. As a note, you should be able to add --allow-non-empty via the environment variable RCLONE_ALLOW_NON_EMPTY within the docker-compose for the pd_zurg service.

I-am-PUID-0 commented 4 months ago

as a side note - is there a way to turn off the Plex debrid Plex refresh together? it does not boot without it populated and I want zurg to do the updating. Thanks

PD_ENABLED=false will disable plex_debrid. PLEX_REFRESH=false will disable the plex refresh.

skearney414 commented 4 months ago

thanks for that, makes sense regarding the ports.

plex_refresh disables the zurg refresh I thought? I am looking for a way to disable the Plex Debrid library refresh but keep the burg one - The only way I can seem to do this is by having Plex Debrid add labels instead of updating the library. It requires a library update service to run

I-am-PUID-0 commented 4 months ago

thanks for that, makes sense regarding the ports.

plex_refresh disables the zurg refresh I thought? I am looking for a way to disable the Plex Debrid library refresh but keep the burg one - The only way I can seem to do this is by having Plex Debrid add labels instead of updating the library. It requires a library update service to run

Ah. PLEX_REFRESH enables/disables the ability for the Zurg process to update the Plex library, but does not disable the Zurg process of refreshing the torrents. The latter is controlled via the Zurg config.yml found in the RD directory. In order to disable the plex_debrid Plex library update, you'll need to remove Plex from the "Lbrary Update Service" from within plex_debrid: https://github.com/itsToggle/plex_debrid#-library-update-services.

skearney414 commented 4 months ago

No joy on the RCLONE_ALLOW_NON_EMPTY, Im not too bothered about it though as happy to run my command locally for now. This is what I run locally to get it mounted rclone mount zurg: /Users/seankearney/documents/zurg-testing/zurg --allow-other --dir-cache-time 10s --vfs-cache-mode full --no-checksum --no-modtime --noappledouble --allow-non-empty

With regards to the refresh, I had to add Plex labels ad the Plex Debrid update service to get it going. If you remove all update services it fails to run and says you must provide one, although it's not necessary with burg Plex refresh really. That is probably more one for itsToggle

Awesome Repo though love having one container to run all :)

Here is my compose for reference.

version: "3.8"

services:
  pd_zurg:
    container_name: pd_zurg
    image: iampuid0/pd_zurg:latest
    ports:
      - 9999:9999
    ## Optionally, specify a specific version of pd_zurg
    # image: iampuid0/pd_zurg:2.0.0
    stdin_open: true # docker run -i
    tty: true # docker run -t
    volumes:
      ## Location of configuration files. If a Zurg config.yml and/or Zurg app is placed here, it will be used to override the default configuration and/or app used at startup.
      - /Users/seankearney/Documents/plex/pd_zurg/config:/config
      ## Location for logs
      - /Users/seankearney/Documents/plex/pd_zurg/log:/log
      ## Location for rclone cache if enabled
      - /Users/seankearney/Documents/plex/pd_zurg/cache:/cache
      ## Location for Zurg RealDebrid active configuration
      - /Users/seankearney/Documents/plex/pd_zurg/RD:/zurg/RD
      ## Location for Zurg AllDebrid active configuration -- when supported by Zurg
      - /Users/seankearney/Documents/plex/pd_zurg/AD:/zurg/AD
      ## Location for rclone mount to host
      - /Users/seankearney/Documents/plex/pd_zurg:/data:shared
    environment:
      - TZ=
      ## Zurg Required Settings
      - ZURG_ENABLED=true
      - RD_API_KEY=xxxxxx
      ## Zurg Optional Settings
      #- ZURG_LOG_LEVEL=DEBUG
      # - ZURG_VERSION=v0.9.2-hotfix.4
      - ZURG_UPDATE=true
      - PLEX_REFRESH=true
      - PLEX_MOUNT_DIR=/Users/seankearney/Documents/zurg-testing/zurg
      # - ZURG_USER=
      # - ZURG_PASS=
      # - ZURG_PORT=8800
      ## Rclone Required Settings
      - RCLONE_MOUNT_NAME=pd_zurg
      ## Rclone Optional Settings - See rclone docs for full list
      # - NFS_ENABLED=true
      # - NFS_PORT=8000
      # - RCLONE_LOG_LEVEL=DEBUG
      - RCLONE_CACHE_DIR=/cache
      - RCLONE_DIR_CACHE_TIME=10s
      - RCLONE_VFS_CACHE_MODE=full
      # - RCLONE_VFS_CACHE_MAX_SIZE=100G
      # - RCLONE_ATTR_TIMEOUT=8700h
      # - RCLONE_BUFFER_SIZE=32M
      # - RCLONE_VFS_CACHE_MAX_AGE=4h
      # - RCLONE_VFS_READ_CHUNK_SIZE=32M
      # - RCLONE_VFS_READ_CHUNK_SIZE_LIMIT=1G
      # - RCLONE_TRANSFERS=8
      ## Plex Debrid Required Settings
      - PD_ENABLED=true
      ## To utilize plex_debrid with Plex, the following environment variables are required
      - PLEX_USER=pm9tn
      - PLEX_TOKEN=xxxxxx
      - PLEX_ADDRESS=http://192.168.1.207:32400
      ## To utilize plex_debrid with Jellyfin, the following environment variables are required - Note that plex_debrid will require addtional setup befor use with Jellyfin
      # - JF_ADDRESS
      # - JF_API_KEY
      ## Plex Debrid Optional Settings
      - PD_UPDATE=true
      - SHOW_MENU=false
      # - SEERR_API_KEY=
      # - SEERR_ADDRESS=
      ## Special Features
      # - AUTO_UPDATE_INTERVAL=12
      # - DUPLICATE_CLEANUP=true
      # - CLEANUP_INTERVAL=1
      # PDZURG_LOG_LEVEL=INFO
      # - PDZURG_LOG_COUNT=2
    # Example to attach to gluetun vpn container if realdebrid blocks IP address
    # network_mode: container:gluetun
    devices:
      - /dev/fuse:/dev/fuse:rwm
    cap_add:
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
      - no-new-privileges
I-am-PUID-0 commented 4 months ago
  • /Users/seankearney/Documents/plex/pd_zurg:/data:shared

To resolve the mount issue, try changing - /Users/seankearney/Documents/plex/pd_zurg:/data:shared to - /Users/seankearney/Documents/plex/pd_zurg/mnt:/data:shared

I believe when rclone is trying bind mount to what would become - /Users/seankearney/Documents/plex/pd_zurg/pd_zurg, with the mount name included, it is erroring out due to the other directories being subdirectories of /Users/seankearney/Documents/plex/pd_zurg/. E.g., config, log, RD, etc.

Leaving the Library Update Service set to Plex shouldn't cause any issues; if anything, it is just another option to ensure Plex captures the new content.

skearney414 commented 4 months ago

Still getting an empty pd_zurg folder. Not to worry you can close this and I am happy to run the command locally

skearney414 commented 4 months ago

Hey @I-am-PUID-0 Has anyone else reported the issue with the host mount? I have the same issue on ubuntu, the mount folder shows but is empty. Is this because bind propagation does not work in docker desktop ? https://docs.docker.com/storage/bind-mounts/

I-am-PUID-0 commented 4 months ago

Hey @I-am-PUID-0 Has anyone else reported the issue with the host mount? I have the same issue on ubuntu, the mount folder shows but is empty. Is this because bind propagation does not work in docker desktop ? https://docs.docker.com/storage/bind-mounts/

If you are using Docker Desktop, you're correct; it does not support mount propagation and will result in empty directories. Here's a guide for using WSL2 on Windows to mitigate the Docker Desktop shortcomings: https://github.com/I-am-PUID-0/pd_zurg/wiki/Setup-Guides#windows-setup-guide-dockerwsl

skearney414 commented 4 months ago

Uninstalling docker desktop and using portainer instead sorted this, might be worth putting in the docs :) thanks for the help