/pdrcrd

A combined docker image for the unified deployment of itsToggle's projects -- plex_debrid and rclone_RD

Primary LanguagePythonMIT LicenseMIT

pdrcrd

Description

A combined docker image for the unified deployment of itsToggle's projects -- plex_debrid and rclone_RD

Features

Docker Hub

A prebuilt image is hosted on docker hub

Docker-compose

services:
  pdrcrd:
    container_name: pdrcrd
    image: iampuid0/pdrcrd:latest  
    stdin_open: true # docker run -i
    tty: true        # docker run -t    
    volumes:
      - your/host/path/config:/config
      - your/host/path/log:/log
      - your/host/path/mnt:/data:shared
    environment:
      - TZ=
      - RD_API_KEY=
      - RCLONE_MOUNT_NAME=
      - RCLONE_DIR_CACHE_TIME=10s
      - PLEX_USER=
      - PLEX_TOKEN=
      - PLEX_ADDRESS=
    devices:
      - /dev/fuse:/dev/fuse:rwm
    cap_add:
      - SYS_ADMIN     
    security_opt:
      - apparmor:unconfined    
      - no-new-privileges
#    restart: unless-stopped

Docker Build

Docker CLI

docker build -t yourimagename https://github.com/I-am-PUID-0/pdrcrd.git

Install script for Ubuntu and/or WSL

Shell script to install docker and/or pdrcrd. See the pdrcrd Wiki for details.

Automatic Updates

If you would like to enable automatic updates for plex_debrid, utilize the AUTO_UPDATE environment variable. Additional details can be found in the pdrcrd Wiki

Environment Variables

To customize some properties of the container, the following environment variables can be passed via the -e parameter (one for each variable), or via the docker-compose file within the environment: section, or with a .env file saved to the config directory -- See the wiki for more info on using the .env. Value of this parameter has the format <VARIABLE_NAME>=<VALUE>.

Variable Description Default Required for rclone_RD Required for plex_debrid
TZ TimeZone used by the container
RD_API_KEY RealDebrid API key ✔️ ✔️
AD_API_KEY AllDebrid API key ✔️ ✔️
RCLONE_MOUNT_NAME A name for the rclone mount ✔️
RCLONE_LOG_LEVEL Log level for rclone NOTICE
RCLONE_LOG_FILE Log file for rclone
RCLONE_DIR_CACHE_TIME How long a directory should be considered up to date and not refreshed from the backend #optional, but recommended is 10s. 5m
RCLONE_CACHE_DIR Directory used for caching.
RCLONE_VFS_CACHE_MODE Cache mode for VFS
RCLONE_VFS_CACHE_MAX_SIZE Max size of the VFS cache
RCLONE_VFS_CACHE_MAX_AGE Max age of the VFS cache
PLEX_USER The Plex USERNAME for your account ✔️
PLEX_TOKEN The Plex Token associated with PLEX_USER ✔️
PLEX_ADDRESS The URL of your Plex server. Example: http://192.168.0.100:32400 or http://plex:32400 - format must include http:// or https:// and have no trailing characters after the port number (32400). E.g., / ✔️
SHOW_MENU Enable the plex_debrid menu to show upon startup, requiring user interaction before the program runs. Conversely, if the plex_debrid menu is disabled, the program will automatically run upon successful startup. If used, the value must be true or false true
PD_LOGFILE Log file for plex_debrid. The log file will appear in the /config as plex_debrid.log. If used, the value must be true or false false
AUTO_UPDATE Enable automatic updates of plex_debrid. Adding this variable will enable automatic updates to the latest version of plex_debrid locally within the container. No values are required. false
AUTO_UPDATE_INTERVAL Interval between automatic update checks in hours. Vaules can be any positive whole or decimal point based number. Ex. a value of .5 would yield thirty minutes and 1.5 would yield one and a half hours 24
DUPLICATE_CLEANUP Automated cleanup of duplicate content in Plex. false
CLEANUP_INTERVAL Interval between duplicate cleanup in hours. Vaules can be any positive whole or decimal point based number. Ex. a value of .5 would yield thirty minutes and 1.5 would yield one and a half hours 24
PDRCRD_LOG_LEVEL The level at which logs should be captured. See the python Logging Levels documentation for more details INFO
PDRCRD_LOG_COUNT The number logs to retain. Result will be value + current log 2

Data Volumes

The following table describes data volumes used by the container. The mappings are set via the -v parameter or via the docker-compose file within the volumes: section. Each mapping is specified with the following format: <HOST_DIR>:<CONTAINER_DIR>[:PERMISSIONS].

Container path Permissions Description
/config rw This is where the application stores the rclone.conf, plex_debrid settings.json, and any files needing persistence. CAUTION: rclone.conf is overwritten upon start/restart of the container. Do NOT use an existing rclone.conf file if you have other rclone services
/log rw This is where the application stores its log files
/mnt rw This is where rclone_RD will be mounted. Not required when only utilizing plex_debrid

TODO

See the pdrcrd roadmap for a list of planned features and enhancements.

Deployment

pdrcrd allows for the simultaneous or individual deployment of plex_debrid and/or rclone_RD

For additional details on deployment, see the pdrcrd Wiki

Community

pdrcrd

  • For questions related to pdrcrd, see the GitHub discussions
  • or create a new issue if you find a bug or have an idea for an improvement.
  • or join the pdrcrd discord server

plex_debrid

  • For questions related to plex_debrid, see the GitHub discussions
  • or create a new issue if you find a bug or have an idea for an improvement.
  • or join the plex_debrid discord server

Buy itsToggle a beer/coffee? :)

If you enjoy the underlying projects and want to buy itsToggle a beer/coffee, feel free to use his real-debrid affiliate link or send him a virtual beverage via PayPal :)

GitHub Workflow Status

GitHub Workflow Status