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:
- Install Docker:
sudo pacman -Syu docker
- Start and Enable Docker:
sudo systemctl start docker sudo systemctl enable docker
For Ubuntu/Debian:
- Update Package Index:
sudo apt update && sudo apt upgrade -y
- Install Prerequisites:
sudo apt install -y ca-certificates curl gnupg
- 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
- Install Docker:
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io
- Start and Enable Docker:
sudo systemctl start docker sudo systemctl enable docker
For CentOS:
- Update Packages:
sudo yum update -y
- Add Docker Repository:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- Install Docker:
sudo yum install -y docker-ce docker-ce-cli containerd.io
- Start and Enable Docker:
sudo systemctl start docker sudo systemctl enable docker
For Fedora:
- Update Packages:
sudo dnf update -y
- Install Docker:
sudo dnf install -y docker-ce docker-ce-cli containerd.io
- 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
- Run the Container:
docker-compose -f ~/PlexRipper/docker-compose.yml up -d
- Verify the Container is Running:
docker ps
You should see thePlexRipper
container listed. - 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
- 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 yourPUID
.gid=1000
corresponds to yourPGID
.
More info can be found here: https://docs.linuxserver.io/general/understanding-puid-and-pgid/
- Monitor Logs (Optional):
To view container logs for debugging:
docker logs -f PlexRipper
Troubleshooting
- Docker Command Not Found:
Ensure Docker is installed and the service is running:
sudo systemctl status docker
- 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
- Check if the container is running with
- 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