JavaScript is required

Installation on Linux

This guide walks you through installing Docker and setting up PlexRipper on various Linux distributions, including Ubuntu, Debian, CentOS, Fedora, and Arch Linux.


Step 1: Install Docker

For Arch Linux:

  1. Install Docker:
    sudo pacman -Syu docker
    
  2. Start and Enable Docker:
    sudo systemctl start docker
    sudo systemctl enable docker
    

For Ubuntu/Debian:

  1. Update Package Index:
    sudo apt update && sudo apt upgrade -y
    
  2. Install Prerequisites:
    sudo apt install -y ca-certificates curl gnupg
    
  3. Add Docker’s GPG Key and Repository:
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  4. Install Docker:
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io
    
  5. Start and Enable Docker:
    sudo systemctl start docker
    sudo systemctl enable docker
    

For CentOS:

  1. Update Packages:
    sudo yum update -y
    
  2. Add Docker Repository:
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  3. Install Docker:
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    
  4. Start and Enable Docker:
    sudo systemctl start docker
    sudo systemctl enable docker
    

For Fedora:

  1. Update Packages:
    sudo dnf update -y
    
  2. Install Docker:
    sudo dnf install -y docker-ce docker-ce-cli containerd.io
    
  3. Start and Enable Docker:
    sudo systemctl start docker
    sudo systemctl enable docker
    

Step 2: Install PlexRipper Using Docker

1. Pull the PlexRipper Docker Image:

There are two options for the Docker image:

  • :latest – Stable builds for general use.
  • :dev – Nightly builds with the latest features and potential experimental changes.

Example:

docker pull plexripper/plexripper:latest

or

docker pull plexripper/plexripper:dev

2. Create the directories for PlexRipper Data:

Ensure you have a directory for PlexRipper data on your host system. This directory will be mounted as a volume in the Docker container. You need the following:

  • /Config – Configuration, logs, and database storage. (make this an SSD if possible)
  • /Downloads – Temporary storage for media files during download.
  • /Movies – Default storage for movies that are moved here after download.
  • /TvShows – Default storage for TV shows that are moved here after download.

Example command if you want to create the folders in your home directory:

mkdir -p ~/PlexRipper/Config ~/PlexRipper/Downloads ~/PlexRipper/Movies ~/PlexRipper/TvShows

3. Find the PUID and GUID of your user

Open a terminal and type

id

This will give you a similar output:

uid=1000(user) gid=1000(user) ...

Remember these values as you will need them for the following steps

3. Run the PlexRipper Container:

Option 1: Run PlexRipper Using a Command

We're now ready to run PlexRipper with the following command. Ensure you customize this command to your own specific values:

docker run -d \
  --name PlexRipper \
  -p 7000:7000 \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=America/New_York \
  -v <ADD_FOLDER_PATH>/Config:/Config \
  -v <ADD_FOLDER_PATH>/Downloads:/Downloads \
  -v <ADD_FOLDER_PATH>/Movies:/Movies \
  -v <ADD_FOLDER_PATH>/TvShows:/TvShows \
  plexripper/plexripper:latest

Option 2: Run PlexRipper Using Docker Compose

An example can be found here: docker-compose.yml

If your PlexRipper folder is ~/PlexRipper then you can use the following command to download the above docker-compose.yml and place it in that folder:

curl -o ~/PlexRipper/docker-compose.yml https://github.com/PlexRipper/PlexRipper/blob/dev/docker/docker-compose.yml

Now make sure to change the values to match the above:

version: '3.4'
services:
   plexripper:
      container_name: PlexRipper
      image: plexripper/plexripper:latest
      build:
            context: .
            dockerfile: ./Dockerfile
      ports:
            # Web UI & Web API
            - '7000:7000'
      restart: unless-stopped
      environment:
            - PUID=1000
            - PGID=1000
            - TZ=America/New_York
            - UNMASKED=false # Unmask sensitive data in logs if true
            # - LOG_LEVEL=DEBUG # Set the logging level in the docker logging
      volumes:
            # The paths /mnt/PROJECTS/PlexRipperCache/ are examples and you will need valid paths on your device with write permission.
            - /mnt/PROJECTS/PlexRipperCache/Config:/Config
            - /mnt/PROJECTS/PlexRipperCache/Downloads:/Downloads
            - /mnt/PROJECTS/PlexRipperCache/Movies:/Movies
            - /mnt/PROJECTS/PlexRipperCache/TvShows:/TvShows
  1. Run the Container:
    docker-compose -f ~/PlexRipper/docker-compose.yml up -d
    
  2. Verify the Container is Running:
    docker ps
    

    You should see the PlexRipper container listed.
  3. Access PlexRipper:
    Open a web browser and navigate to http://localhost:7000.

You now have Docker and PlexRipper successfully installed on your Linux system!


Step 3: Post-Installation Configuration

  1. Understanding PUID and PGID:

PUID (Personal User ID) and PGID (Personal Group ID) define the permissions for running the container. These values ensure that files created by the container match your system user and group permissions.

Type the following in a terminal to find the PUID and PGID for your current user:

id

Example Output:

uid=1000(username) gid=1000(groupname) groups=1000(groupname),27(sudo),1001(docker)
  • uid=1000 corresponds to your PUID.
  • gid=1000 corresponds to your PGID.

More info can be found here: https://docs.linuxserver.io/general/understanding-puid-and-pgid/

  1. Monitor Logs (Optional): To view container logs for debugging:
    docker logs -f PlexRipper
    

Troubleshooting

  1. Docker Command Not Found: Ensure Docker is installed and the service is running:
    sudo systemctl status docker
    
  2. Cannot Access PlexRipper Web UI:
    • Check if the container is running with docker ps.
    • Verify firewall rules allow traffic on the specified port (e.g., 7000).
    • Use a different browser to ensure it is something with PlexRipper
  3. Docker logs mention: UnauthorizedAccessException
System.UnauthorizedAccessException: Access to the path '/Config/PlexRipperSettings.json' is denied.
 ---> System.IO.IOException: Permission denied

This means PlexRipper has no permission to write to the volumes that have been mounted. Verify that the PUID and PGID are set correctly and that the user can write to the folder paths that have been mounted