All Projects → rapejim → pms-plexdrive-docker

rapejim / pms-plexdrive-docker

Licence: GPL-3.0 license
Combine the power of Plex Media Server with the media files of your Google Drive account (or a Shared/Team Drive) mounted it by Plexdrive. All in one (container)!!

Programming Languages

Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to pms-plexdrive-docker

Plexguide.com
Welcome to https://PlexGuide.com ~ Rapidly deploy multiple-hasty Docker Containers through Ansible with local or Unlimited Google HD Space!
Stars: ✭ 1,631 (+12446.15%)
Mutual labels:  plex, plexdrive
Cloudbox
Ansible-based solution for rapidly deploying a Docker containerized cloud media server.
Stars: ✭ 1,763 (+13461.54%)
Mutual labels:  plex, plexdrive
plex-utills
Manage your Plex library automatically
Stars: ✭ 258 (+1884.62%)
Mutual labels:  plex
TvShuffleForPlex
The purpose of this application is to allow a chronological shuffling of tv shows. The selected TV Shows maybe shuffled however the episodes will be selected based on next unwatched.
Stars: ✭ 16 (+23.08%)
Mutual labels:  plex
dash
Server control panel
Stars: ✭ 22 (+69.23%)
Mutual labels:  plex
fylm
A wonderful automated command line app for organizing your film media. Built for Plex and SABnzbd.
Stars: ✭ 25 (+92.31%)
Mutual labels:  plex
PlexKodiConnect
Plex integration in Kodi done right
Stars: ✭ 917 (+6953.85%)
Mutual labels:  plex
arch-plexpass
Docker build script for Arch Linux base with Plex Pass Media Server installed
Stars: ✭ 21 (+61.54%)
Mutual labels:  plex
enhance-o-tron-for-plex
Adds 🎬 trailers, 🎲 random sorting, 📽️ 2.35:1 ultrawide zoom, and 🔊 audio compression to Plex*
Stars: ✭ 16 (+23.08%)
Mutual labels:  plex
plaxt
Webhooks based Trakt.tv scrobbling for Plex
Stars: ✭ 20 (+53.85%)
Mutual labels:  plex
PlexServerAutoUpdater
Automatically update Plex when running the Plex service.
Stars: ✭ 94 (+623.08%)
Mutual labels:  plex
PlexAutoSkip
Automatically skip content in Plex
Stars: ✭ 95 (+630.77%)
Mutual labels:  plex
Improved-Plex-Mobile
Changes to Plex web for a better mobile viewing experience. Finally, a better Plex mobile site.
Stars: ✭ 32 (+146.15%)
Mutual labels:  plex
plex2letterboxd
Export your watched movies on Plex to the Letterboxd Import Format.
Stars: ✭ 35 (+169.23%)
Mutual labels:  plex
homebridge-plex-sensors
Homebridge Sensors for Plex - a plugin for Homebridge to adds sensors triggered by Plex playbacks.
Stars: ✭ 110 (+746.15%)
Mutual labels:  plex
swerpbox
SwerpBox, a seedbox and Media Center combined with the power of 🐳 Docker.
Stars: ✭ 57 (+338.46%)
Mutual labels:  plex
rpi-nas
🌐👨‍💻💻 Setup your own NAS on a Raspberry Pi
Stars: ✭ 29 (+123.08%)
Mutual labels:  plex
seedbox-from-scratch
The Dockered Seedbox From Scratch Mod 2 Script
Stars: ✭ 14 (+7.69%)
Mutual labels:  plex
clusterplex
ClusterPlex is basically an extended version of Plex, which supports distributed Workers across a cluster to handle transcoding requests.
Stars: ✭ 123 (+846.15%)
Mutual labels:  plex
UpdateTool
A tool to update the IMDB ratings for Plex libraries that contain movies/series and use the IMDB agent to receive ratings
Stars: ✭ 195 (+1400%)
Mutual labels:  plex

Plex Media Server and Plexdrive 🐳

Combine the power of Plex Media Server (hereinafter PMS) with the media files of your Google Drive account (or a Shared Drive) mounted it by Plexdrive.

Based on official PMS image for Docker and installed inside Plexdrive v.5.1.0. Forked from original https://bitbucket.org/sh1ny/docker-pms-plexdrive repository.

IMPORTANT: All options are inherited from the official PMS container. Refer to PMS documentation for more info.

Read this document in other languages: English, Spanish

Prerequisites


You must have your own Client ID & Client Secret to configure Plexdrive. If you don't have it, you can follow any internet guide, for example:

Or you can use the configuration files from a previous Plexdrive installation (the config.json and token.json files, preferably not reusing the cache.bolt, it is better that this installation generates a new one).

Example run commands


Command line host network
docker run --name plex -d \
    --net=host \
    -e TZ="Europe/Madrid" \
    -e PLEX_UID=${UID} \
    -e PLEX_GID=$(id -g) \
    # -e PLEX_CLAIM: XXXXXXXXXXXXXXXXXXXXXXXXXX # Optional -> https://www.plex.tv/claim/
    -v /docker/plex/config:/config \
    -v /docker/plex/transcode:/transcode \ # Optional
    --privileged \
    --cap-add MKNOD \
    --cap-add SYS_ADMIN \
    --device /dev/fuse \
    --restart=unless-stopped \
    rapejim/pms-plexdrive-docker
Command line bridge network
docker run --name plex -h Plex -d \
    -p 32400:32400/tcp \
    # -p 1900:1900/udp \ # Optional
    # -p 3005:3005/tcp \ # Optional
    # -p 8324:8324/tcp \ # Optional
    # -p 32410:32410/udp \ # Optional
    # -p 32412:32412/udp \ # Optional
    # -p 32413:32413/udp \ # Optional
    # -p 32414:32414/udp \ # Optional
    # -p 32469:32469/tcp \ # Optional
    -e TZ="Europe/Madrid" \
    -e PLEX_UID=${UID} \
    -e PLEX_GID=$(id -g) \
    # -e PLEX_CLAIM: XXXXXXXXXXXXXXXXXXXXXXXXXX # Optional -> https://www.plex.tv/claim/
    -v /docker/plex/config:/config \
    -v /docker/plex/transcode:/transcode \ # Optional
    --privileged \
    --cap-add MKNOD \
    --cap-add SYS_ADMIN \
    --device /dev/fuse \
    --restart=unless-stopped \
    rapejim/pms-plexdrive-docker
Docker-compose host network
version: '3.5'
services:
  plex:
    container_name: plex
    image: rapejim/pms-plexdrive-docker:latest # https://hub.docker.com/r/rapejim/pms-plexdrive-docker
    restart: unless-stopped
    privileged: true
    network_mode: host
    volumes:
      - /docker/plex/config:/config
      - /docker/plex/transcode:/transcode # Optional
    environment:
      TZ: 'Europe/Madrid'
      PLEX_UID : '1000'
      PLEX_GID : '1000'
      # PLEX_CLAIM: XXXXXXXXXXXXXXXXXXXXXXXXXX # Optional -> https://www.plex.tv/claim/
    cap_add:
      - MKNOD
      - SYS_ADMIN
    devices:
      - '/dev/fuse'
Docker-compose bridge network
version: '3.5'
services:
  plex:
    container_name: plex
    hostname: Plex
    image: rapejim/pms-plexdrive-docker:latest # https://hub.docker.com/r/rapejim/pms-plexdrive-docker
    restart: unless-stopped
    privileged: true
    network_mode: bridge
    ports: 
      - 32400:32400
      # - 1900:1900 # Optional
      # - 3005:3005 # Optional
      # - 8324:8324 # Optional
      # - 32410:32410 # Optional
      # - 32412:32412 # Optional
      # - 32413:32413 # Optional
      # - 32414:32414 # Optional
      # - 32469:32469 # Optional
    volumes:
      - /docker/plex/config:/config
      - /docker/plex/transcode:/transcode # Optional
    environment:
      TZ: 'Europe/Madrid'
      PLEX_UID : '1000'
      PLEX_GID : '1000'
      # PLEX_CLAIM: XXXXXXXXXXXXXXXXXXXXXXXXXX # Optional -> https://www.plex.tv/claim/
    cap_add:
      - MKNOD
      - SYS_ADMIN
    devices:
      - '/dev/fuse'

NOTE: You must replace Europe/Madrid for your time zone and /docker/plex/... for your own path (if not use this folder structure). If you have config files (config.json and token.json) from previous installation of plexdrive, place it on /docker/plex/config/.plexdrive folder before.


First usage and initial config


On the first run of container (without config files of previous installation) you must enter inside container console, copy-paste and run this command:

plexdrive mount -c ${HOME}/${PLEXDRIVE_CONFIG_DIR} --cache-file=${HOME}/${PLEXDRIVE_CONFIG_DIR}/cache.bolt -o allow_other ${PLEXDRIVE_MOUNT_POINT} {EXTRA_PARAMS}

This command start a config wizzard:

  • First, it asks you for your Client ID and Client Secret
  • Shows you a link to log-in using your Google Drive account (the same used to get that Client ID and Client Secret).
  • The web show you a token that you must copy it and paste on terminal.
  • When you complete it, Plexdrive start caching your Google Drive account files on second plane, no need to wait for Plexdrive to complete its initial cache building process on this console, now you have the config.json and token.json created and can exit from terminal (Ctrl + C and exit).

NOTE: If you are creating this container on a remote computer (outside your local network) it is recommended to use the environment variable PLEX_CLAIM of original PMS docker image to link this new server to your own account on first run.


Parameters


Those are not required unless you want to preserve your current folder structure or maintain special file permissions.

  • PLEXDRIVE_CONFIG_DIR Sets the name of Plexdrive config folder found within PMS config folder. Default .plexdrive.
  • PLEXDRIVE_MOUNT_POINT Sets the name of internal Plexdrive mount point. Default /home/Plex.
  • CHANGE_PLEXDRIVE_CONFIG_DIR_OWNERSHIP Defines if the container should attempt to correct permissions of existing Plexdrive config files.
  • PLEX_UID and PLEX_GID Sets user ID and group ID for Plex user. Useful if you want them to match those of your own user on the host.
  • EXTRA_PARAMS Add more advanced parameters for plexdrive to mount initial command. You can use, for example:
    • --drive-id=ABC123qwerty987 for Shared Drive with id ABC123qwerty987
    • --root-node-id=DCBAqwerty987654321_ASDF123456789 for a mount only the sub directory with id DCBAqwerty987654321_ASDF123456789
    • ... plexdrive documentation for more info ...
    • IMPORTANT: Not allowed "-v --verbosity", "-c --config", "--cache-file" or "-o --fuse-options" parameters, because are already used.

REMEMBER: All options from the official PMS container are inherited. Refer to PMS documentation for more info.


Host folder structure example


Docker Data Folder
├── plex
│   ├── config
│   │   ├── .plexdrive
│   │   │   └── ...
│   │   └── Library
│   │       └── ...
│   └── transcode
└── ...




Tags


Tags correspond to those of the official PMS Docker container:

  • public — Public release of PMS.
  • beta — Beta release of PMS, (Plex Pass required).
  • latest — currently the same as public.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].