Skip to content
I-am-PUID-0 edited this page Jan 20, 2024 · 4 revisions

So, what does all this do!?

The three underlying projects -- plex_debrid, zurg, and rclone, -- produced by itsToggle, yowmamasita, and ncw respectively, allow for "Plex/Emby/Jellyfin/Infuse torrent streaming through Debrid Services, using Plex Discover Watchlists, Trakt lists and Overseerr."

A flowchart depicting the typical process is shown below:

plex debrid v4

So, what does pd_zurg do!?

pd_zurg leverages plex_debrid, zurg, and rclone, combining them into a single docker image for faster deployment.

pd_zurg provides a simplified deployment by automatically performing much of the configuration that would otherwise require manual processes.

pd_zurg also provides the following features:

Bind-mounts rclone to the host:

Two options exist for utilizing rclone mounts with docker: volumes and bind-mounts. While both have advantages and disadvantages, bind-mounts are utilized with pd_zurg to allow for additional functionality, such as defining the mount location or utilizing SMB or other network shares.

To learn more about volumes and bind-mounts, see the docker docs

Simultaneous independent rclone mounts:

RealDebrid and AllDebrid services are supported with pd_zurg. Moreover, those services can be mounted simultaneously within a single pd_zurg container.

For more details, see the singular or multiple debrid service rclone mounts section of the wiki.

Debrid API Key passed to Zurg and plex_debrid via docker environment variable:

The typical process for setting up plex_debrid and zurg requires the entry of the Debrid API Key during initial setup.

With pd_zurg, the Debrid API Key is passed via the docker environment variable to both programs during the container's startup, allowing for the quick alteration of the Debrid API Key; this is particularly useful if you need to reset your Debrid API Key (or changed your Debrid password) or have multiple Debrid accounts.

rclone config automatically generated:

The typical initial configuration for rclone requires a multi-step process to create the rclone.config file.

The rclone.config takes the form below once the configuration is completed.

[mount name]
type = webdav
url = http://localhost:9999/dav
vendor = other
pacer_min_sleep = 0

With pd_zurg, the rclone.config is automatically generated during the container's startup, allowing for quickly altering the rclone mount name and Debrid API Key.

rclone flags passed via docker environment variable:

"Every option in rclone can have its default set by environment variable.

To find the name of the environment variable, first, take the long option name, strip the leading --, change - to _, make upper case and prepend RCLONE_."

Passing rclone flags via the docker environment variables alleviates the need to modify the CLI command for rclone.

To learn more about rclone environment variables, see the rclone docs

Fuse.conf user_allow_other applied within the container vs. the host:

Future capabilities

Plex server values passed to plex_debrid settings.json via docker environment variables:

As with rclone, plex_debrid requires a multi-step process during the initial setup before it can be utilized.

While the in-built setup for plex_debrid is relatively intuitive, some may have issues or not want to go through the setup process.

The result of performing the initial setup -- for either pd_zurg or plex_debrid -- is the generation of a settings.json file that is utilized by plex_debrid to retain user settings.

Note: Due to the way in which plex_debrid is configured, a minimum set of values is required within the settings.json before it will run. As such, default values are assigned at the container's startup if it detects that the settings.json does not yet exist in the config folder.

The default values can be changed through the in-built user interface for plex_debrid by attaching to the running container -- you may have to press the return/Enter once before the prompt displays -- and following the onscreen prompts.

To view the default values utilized for plex_debrid with pd_zurg, see the settings-default.json

Automatic update of plex_debrid to the latest version:

If enabled with the PD_UPDATE environment variable, pd_zurg will check at a user or default-defined interval for updates to plex_debrid and automatically apply them without needing to restart the container or pull a new image.

for more information, see the wiki's automatic-updates section.

Automatic update of zurg to the latest version:

If enabled with the ZURG_UPDATE environment variable, pd_zurg will check at a user or default-defined interval for updates to zurg and automatically apply them without needing to restart the container or pull a new image.

for more information, see the wiki's automatic-updates section.

Version selection of zurg to the user-defined version:

If enabled with the ZURG_VERSION environment variable, pd_zurg will pull the user-defined version of zurg and automatically apply it at startup without the need to pull a new image.

for more information, see the wiki's ZURG_VERSION section.

Optional independent or combined utilization of plex_debrid and zurg w/ rclone:

While a single image/container deployment of plex_debrid, zurg, and rclone may have benefits, there are use cases where the ability to deploy plex_debrid independently of zurg and rclone is also of benefit.

As such, please see the wiki's Deployment Options section for more details.

Use of .env file for setting environment variables

A .env file containing the environment variables for pd_zurg can be passed into the container via the /config directory for the container.

See the .env file section of the wiki for more details.

Duplicate Cleanup

The duplicate cleanup process will automatically identify any duplicates that exist in two separate directories, the rclone mount used for the debris service and any other directory location. It then deletes the duplicates from the rclone mount used for the debris service, preserving the files from any other directory.

This feature is geared toward those that utilize plex_debrid and rclone alongside the *arrs or similar processes that yield files vs. streaming links. To utilize this feature, see the Duplicate Cleanup section of the wiki.