Morzomb/All-jellyfin-media-server
Self-hosted complete media server Jellyfin with sonarr, radarr, jackett, prowlarr, qbittorrent, flaredolverr and gluetun Nord VPN Proton VPN in docker compose
All-jellyfin-media-server
Welcome to the All-jellyfin-media-server Repository! This repository contains everything you need to create your own Jellyfin media server with Sonarr, Radarr, Jellyseerr, Prowlarr, Jackett, qBittorrent, Bazarr, and Gluetun (VPN) in a Docker Compose setup. We'll refer to the compilation of all containers as Isyrr to keep it simple.
Note
Acceder au repository en Français
Table of contents
- All-jellyfin-media-server
- Prerequisites
- VPN
- Installation
- 🚀 Automatic Installation (Recommended)
- Prerequisites
- Setup Script Menu
- Adding Custom Services
- Step 1: Create the Service YAML Template
- Step 2: Add Service Configuration to setup.sh
- Step 3: Update docker-compose Generation
- Step 4: Create Configuration Folder
- Step 5: Save Configuration State
- Step 6: Add Post-Install Configuration (Optional)
- Step 7: Add to All Docker Compose Files
- Step 8: Update README Documentation
- Step 9: Test the Integration
- Manual Installation
- 1. Basic Installation
- 2. Installation with NVIDIA Only
- 3. Installation with NVIDIA and VPN
- 4. Installation with VPN (no-Nvidia)
- 🚀 Automatic Installation (Recommended)
- Accessing Applications
- Configuration Guide for Web Interfaces Only
- Updating Applications
- Disclaimer
What is Isyrr for?
This repository allows you to create your own Jellyfin media server with all the necessary tools to manage your movies, TV shows, music, and eBooks. It also includes tools to automate the downloading of new content and to protect your privacy using a VPN.
Isyrr uses Docker and Docker Compose to deploy the services. Docker Compose files can be found in the directories with-vpn and without-vpn.
Important
To use Docker Compose, make sure Docker is installed on your system.
Jellyfin
Jellyfin is an open-source media server software that allows you to stream your movies, TV shows, music, and eBooks to all your devices. It is compatible with many types of media files and supports streaming to numerous devices.
Jellyseerr
Jellyseerr is an open-source application that allows you to automate the management of your Jellyfin media server. It works by monitoring your Jellyfin library and automatically searching for and downloading new content based on your preferences. Jellyseerr supports integration with various other tools, such as Sonarr and Radarr, to provide a seamless experience for managing your media collection.
Sonarr
Sonarr is TV show management software that allows you to search, download, and manage your favorite TV shows automatically. It works with many types of trackers and torrent clients and supports automatic subtitle downloading.
Radarr
Radarr is movie management software that allows you to search, download, and manage your favorite movies automatically. It works with many types of trackers and torrent clients and supports automatic subtitle downloading.
Jackett
Jackett is a proxy software for torrent trackers that allows you to search for torrent files on many trackers from one place. It works with many types of torrent clients and supports authentication and advanced searching.
Flaresolverr
Flaresolverr is open-source software that allows you to bypass streaming restrictions on video-sharing sites. It works by resolving streaming links and bypassing geographical blocks and playback restrictions.
Prowlarr
Prowlarr is download management software that allows you to search for and automatically download files from many types of sources, including torrent trackers, newsgroups, and direct download sites.
qBittorrent
qBittorrent is open-source BitTorrent client software that allows you to download torrent files. It is lightweight, easy to use, and supports many advanced features such as built-in torrent search, encryption, torrent creation, and support for private trackers.
Bazarr
Bazarr is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements. It uses the video files stored by Sonarr and Radarr to search and download subtitles in the language(s) of your choice. Bazarr supports over 60 languages and integrates seamlessly with your existing media management workflow.
Gluetun (VPN)
Gluetun is open-source VPN client software that allows you to connect to VPN servers. It is easy to use and supports many advanced features such as port forwarding, DNS leak protection, and support for multiple VPN protocols.
Prerequisites
Note
This service requires a machine with at least 4 CPU cores and 8 GB of RAM. It is also highly recommended to have an NVIDIA GPU for optimal performance.
Première chose à faire mettre à jour votre systèmes :
sudo apt update && sudo apt upgradeDocker
To install Docker on your system, use the following commands:
Download the script with this command:
curl -fsSL https://get.docker.com -o get-docker.shThen run the script with this command:
sh get-docker.shTip
I recommend giving Docker administrative rights to your user:
usermod -aG docker <user>After this command, disconnect and reconnect.
Using Docker Compose :
To use Docker Compose with this repository, you first need to choose whether you want to use the version with VPN or without VPN. Then, navigate to the corresponding directory (with-vpn or without-vpn) and run the following command :
docker-compose up -dTo shut down the stack :
docker-compose downNVIDIA
Warning
Please be aware that due to the recent updates to Debian 12 and Proxmox, NVIDIA drivers have become unstable. Therefore, there are two methods for installing the drivers.
For my server, it has an NVIDIA GeForce 1060 graphics card. The installed OS is Proxmox 8.1.10, based on Debian 12. If you need to check compatibility, refer to the NVIDIA support matrix.
First Method
Go to the NVIDIA website and select your graphics card. Here is an example:
Copy the download link for the driver, you should get a link that looks like this:
https://us.download.nvidia.com/XFree86/Linux-x86_64/550.127.05/NVIDIA-Linux-x86_64-550.127.05.run
- System Update and Preparation
Update and upgrade your system to ensure all packages are up to date.
apt update
apt upgrade- Download and Prepare the NVIDIA Driver
Download the required NVIDIA driver.
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/550.127.05/NVIDIA-Linux-x86_64-550.127.05.run
chmod u+x NVIDIA-Linux-x86_64-550.127.05.run- Install the NVIDIA Container Toolkit Keys and Repository
Add the GPG key and configure the repository for NVIDIA container tools.
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list- Update Repositories and Install Required Packages
Update the repositories and install the necessary packages for compilation.
apt update
apt install pve-headers gcc make- Install the NVIDIA Driver
Install the downloaded NVIDIA driver using the kernel source path.
./NVIDIA-Linux-x86_64-550.127.05.run --kernel-source-path /usr/src/linux-headers-6.8.12-3-pve/- Install and Configure NVIDIA Container Toolkit
Install the NVIDIA Container Toolkit and configure it for Docker.
apt install nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker- Configure Docker Daemon
Edit the Docker configuration file to set up the runtime and data path.
nano /etc/docker/daemon.jsonAdd the following content :
{
"data-root": "/<YOUR_PATH>/docker",
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}- Reboot
Your environment is now set up to run Docker containers with NVIDIA GPU support.
Final Verification
Ensure the GPU is properly detected :
root@pve:~#nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05 Driver Version: 525.147.05 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 Off | N/A |
| N/A 47C P8 9W / 78W | 1MiB / 3072MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Second Method
Warning
This method is deprecated as it can cause significant conflicts if you frequently update your server.
- Your
/etc/apt/sources.listshould look like this :
deb http://ftp.debian.org/debian bookworm main contrib
deb http://ftp.debian.org/debian bookworm-updates main contrib
# Proxmox VE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
# security updates
deb http://security.debian.org/debian-security bookworm-security main contrib
# Debian Bookworm
### Add this line
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmwareAnd :
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list- Update repositories :
apt update- Install updates :
apt upgrade- Install NVIDIA drivers :
Only for Proxmox environment :
apt install pve-headersThen :
apt install libnvidia-cfg1 nvidia-kernel-source nvidia-kernel-common nvidia-driver nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker- Configure Docker Daemon
Edit the Docker configuration file to set up the runtime and data path.
nano /etc/docker/daemon.jsonAdd the following content:
{
"data-root": "/<YOUR_PATH>/docker",
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}-
Reboot
-
Then enter nvidia-smi which should display :
root@pve:~#nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05 Driver Version: 525.147.05 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:01:00.0 Off | N/A |
| N/A 47C P8 9W / 78W | 1MiB / 3072MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
There might be errors during installation; it's preferable to use nvidia-patch :
git clone https://github.com/keylase/nvidia-patch.git
cd nvidia-patch
./patch.shCaution
If you need to restart the installation, here’s how to uninstall the NVIDIA drivers:
apt remove nvidia-driver
apt purge *nvidia*
apt autoremove
apt clean
apt search nvidia-driver
apt autoremove glx-alternative-nvidia libegl-nvidia0 libgl1-nvidia-glvnd-glx libgles-nvidia1 libgles-nvidia2 libglx-nvidia0 nvidia-alternative nvidia-detect nvidia-driver nvidia-driver-bin nvidia-driver-libs nvidia-kernel-dkms nvidia-kernel-source nvidia-open-kernel-dkms nvidia-open-kernel-source xserver-xorg-video-nvidiaIf any residual files remain, search for them using apt search nvidia-driver.
VPN
Now we will see how to set up the VPN. Personally, I will use ProtonVPN and NordVPN, but you can find a number of other VPN providers as well HERE.
NORD
First, you need to connect to the Nord VPN website.
- Go to Nord VPN services :
- Select manual configuration of NordVPN :
- You can now take your login and password for the gluetun container :
PROTON
Go to Protont VPN website.
- Go to Download :
- Configure your VPN manually with an OS name to use, and make sure to enable NAT-PMP. Finally, select the desired country :
- You can now gather your information for the Gluetun container setup :
Caution
Make sure you have either downloaded the file or copied its content into a text file, as some information will no longer be available after you click "Close".
Troubleshoot VPN
Once the Docker is launched, you can test your VPN with the following command :
docker exec qbittorrent curl -s https://api.ipify.org/
# Result
94.101.115.63On my side, it shows me an IP address in Belgium :
Installation
🚀 Automatic Installation (Recommended)
Move to your home directory, then run the automated installer matching your preferred language. Do NOT run as root; the script will prompt for sudo:
English installer:
wget https://raw.githubusercontent.com/Morzomb/All-jellyfin-media-server/Main/setup.sh -O setup.sh
chmod +x setup.sh
./setup.shFrench installer (alternative):
wget https://raw.githubusercontent.com/Morzomb/All-jellyfin-media-server/Main/setup-fr.sh -O setup-fr.sh
chmod +x setup-fr.sh
./setup-fr.shPrerequisites
📋 You will need:
- Supported OS: Debian 12+, Ubuntu LTS 22.x or 24.x, or Raspbian
- Hardware: Minimum 4 CPU cores and 8GB RAM (16GB recommended for 4K transcoding)
- Network: Open TCP ports 8096 (Jellyfin), 5055 (Jellyseerr), 8989 (Sonarr), 7878 (Radarr), 9696 (Prowlarr), 9117 (Jackett), 8080 (qBittorrent)
- Software: Docker & Docker Compose installed,
wgetandsudopackages - GPU (optional): NVIDIA GPU with drivers installed for hardware transcoding (Offer 3 only)
- VPN (optional): NordVPN or ProtonVPN account credentials for secure downloads
Setup Script Menu
🔧 The setupfinale-eng.sh (English) and setupfinale.sh (French) installers guide the full setup.
- Stateful management - Detects prior installation and offers: Update / Uninstall / Modify / Quit
- Stack selection - Choose Offer 1 (Standard), 2 (Secured with VPN), or 3 (Ultimate with NVIDIA)
- Additional services - Optionally enable Homepage dashboard and Bazarr
- Environment variables - Configure
COMMON_PATH,TZ,PUID/PGID,SERVER_IP(or keep existing.env) - VPN configuration (if chosen) - Prompts for NordVPN (OpenVPN) or ProtonVPN (WireGuard) credentials
- Preconfiguration - Deploy homepage config and assets when requested
- Save & Deploy - Writes installer config, creates directories, and runs
docker compose up -d - Post‑install (harvest) - Optional automated API harvest to link Jellyfin, qBittorrent, Radarr, Sonarr, Prowlarr, Bazarr
Adding Custom Services
You can extend Isyrr by adding custom Docker services. Here's how to integrate a new service into the automated setup:
Step 1: Create the Service YAML Template
Create a new YAML file in auto/templates/services/ directory (or auto/templates/vpn/ if it's VPN-related):
cat > auto/templates/services/myservice.yml << 'EOF'
services:
myservice:
image: myimage:latest
container_name: myservice
environment:
- PUID=0
- PGID=0
- TZ=${TZ}
ports:
- 9999:9999
volumes:
- ${COMMON_PATH}/configs/myservice:/config
- ${COMMON_PATH}:/data
restart: unless-stopped
EOFStep 2: Add Service Configuration to setup.sh
In the 2.5 ADDITIONAL SERVICES section of setup.sh and setup-fr.sh, add your service prompt:
echo -e "${BOLD}MyService:${NC}"
echo -e " Custom service description"
echo -e " Features and benefits"
echo ""
while true; do
read -p "Install MyService ? (y/n): " myservice_choice
case $myservice_choice in
[yY]*) INSTALL_MYSERVICE=true; show_success "MyService enabled"; break ;;
[nN]*) INSTALL_MYSERVICE=false; show_warn "MyService disabled"; break ;;
*) show_error "Answer y or n" ;;
esac
doneStep 3: Update docker-compose Generation
In the generate_docker_command() function, add:
if [ "$INSTALL_MYSERVICE" == "true" ]; then
curl -sL "$REPO_BASE/templates/services/myservice.yml" -o "$COMPOSE_DL_DIR/myservice.yml"
CMD_ARGS="$CMD_ARGS -f $COMPOSE_DL_DIR/myservice.yml"
fiStep 4: Create Configuration Folder
In the directories creation section, add:
[ "$INSTALL_MYSERVICE" == "true" ] && mkdir -p "$CURRENT_PATH/configs/myservice"Step 5: Save Configuration State
Update the .isyrr_config save section to include your service:
cat > "$CONFIG_FILE" <<EOF
PACK_TYPE="$PACK_TYPE"
VPN_PROVIDER="$VPN_PROVIDER"
INSTALL_HOMEPAGE="$INSTALL_HOMEPAGE"
INSTALL_BAZARR="$INSTALL_BAZARR"
INSTALL_MYSERVICE="$INSTALL_MYSERVICE"
EOFStep 6: Add Post-Install Configuration (Optional)
If your service needs API key extraction or configuration, add it in the post-installation section:
if [[ "$INSTALL_MYSERVICE" == "true" ]]; then
box_section "MyService Configuration"
MYSERVICE_CONFIG="$DATA_PATH/configs/myservice/config.json"
if [ -f "$MYSERVICE_CONFIG" ]; then
MYSERVICE_KEY=$(grep 'apikey:' "$MYSERVICE_CONFIG" | awk '{print $2}')
fi
if [ -z "$MYSERVICE_KEY" ]; then
echo -e " ${RED}[-]${NC} MyService API Key not found"
else
echo -e " ${GREEN}[+]${NC} MyService API Key: ${YELLOW}${MYSERVICE_KEY:0:8}...${NC}"
fi
fiStep 7: Add to All Docker Compose Files
For consistency, add your service definition to all compose_files/docker-compose*.yaml files so it can be used in manual installations:
myservice:
image: myimage:latest
container_name: myservice
environment:
- PUID=0
- PGID=0
- TZ=${TZ}
ports:
- 9999:9999
volumes:
- ${COMMON_PATH}/configs/myservice:/config
- ${COMMON_PATH}:/data
restart: unless-stoppedStep 8: Update README Documentation
Add service information in the main README:
### **MyService**
[MyService](https://example.com) is a service that does X, Y, and Z. Description...
<div style="text-align: center">
<img src="url-to-logo" width="200" height="100" style="margin: 15px 10px;">
</div>Step 9: Test the Integration
- Test the setup script with your new service
- Verify Docker Compose files are valid:
docker-compose config - Verify API key extraction works correctly
- Check service connectivity after deployment
Manual Installation
Alternatively, you can clone and manage the repository manually:
git clone https://github.com/Morzomb/All-jellyfin-media-server.git
cd All-jellyfin-media-server/For the installation, I have only created three versions of the docker-compose file.
Before proceeding, navigate to the .env file located in the compose_files/ directory and complete it with the required information. This file must always be at the root of the docker-compose file you are going to launch.
# BASE
COMMON_PATH=/YOUR_PATH/Isyrr
TZ=Europe/Paris
# Uncomment the lines below to enable the corresponding VPN configuration
# NORD VPN
# OPENVPN_USER=username # Your username for NordVPN
# OPENVPN_PASSWORD=password # Your password for NordVPN
# SERVER_REGIONS=Belgium # Choose the server region (Belgium here)
# PROTON VPN
# ENDPOINT_IP=PEER_ENDPOINT_IP # The endpoint IP address of the VPN server
# WIREGUARD_ADDR=Interface_Address # The WireGuard interface address
# ENDPOINT_PORT=51820 # Default port is 51820, but confirm if different
# DNS_ADDRESS=Interface_DNS # DNS address for ProtonVPN
# PUBLIC_KEY=PEER_PublicKey # The public key of the other peer
# PRIVATE_KEY=Interface_PrivateKey # Your private keyWarning
Make sure you uncomment and configure the settings according to the VPN service you're using. This step is essential for establishing a proper VPN connection.
1. Basic Installation
Standard installation without a VPN or NVIDIA:
To start the installation, execute :
cd compose_files/
docker compose -f docker-compose.yaml up -d2. Installation with NVIDIA Only
Standard installation with NVIDIA but without a VPN:
To start the installation, execute :
cd compose_files/
docker compose -f docker-compose-nvidia.yaml up -d3. Installation with NVIDIA and VPN
Warning
If you use this method, fill in the .env file located in compose_files/VPN-nvidia.
Standard installation with both VPN and NVIDIA:
To start the installation, execute :
cd compose_files/VPN-nvidia/
docker compose -f docker-compose-<YOUR_VPN>-vpn.yaml up -d4. Installation with VPN (no-Nvidia)
Warning
If you use this method, fill in the .env file located in compose_files/VPN.
Standard installation with a VPN:
To start the installation, execute :
cd compose_files/VPN/
docker compose -f docker-compose-<YOUR_VPN>-vpn.yaml up -dAccessing Applications
Once the applications are deployed, you can access them using the following addresses :
Important
Replace localhost with the IP address of your machine or remote server if needed.
- Jellyfin : http://localhost:8096
- Jellyseer : http://localhost:5055
- Sonarr : http://localhost:8989
- Radarr : http://localhost:7878
- Jackett : http://localhost:9117
- Prowlarr : http://localhost:9696
- qBittorrent : http://localhost:8080
- Bazarr : http://localhost:6767
Gluetun (Nord VPN) will be automatically configured to be used with the applications.
Configuration Guide for Web Interfaces Only
Important
All links containing the container name can be replaced with either the server IP or localhost. Also, replace /COMMON_PATH/ with the path you configured in the .env file.
qBittorrent
- Open the WebUI by clicking on the application icon in the DOCKER tab and selecting WebUI.
- Log in with the default credentials:
- Username:
admin - Password:
adminadmin
- Username:
Note: The default credentials may have changed, please check the documentation for updates on this. In most cases, qBittorrent Web UI will generate a temporary password when the container is started. To view this password, check the logs for this container with the command: docker logs qbittorrent
- Once logged in, click the gear icon to go to Options.
- Under the Downloads tab, configure the backup settings as follows:
- Default Torrent Management Mode:
Automatic(required for category-based save paths to work) - When Torrent Category changed:
Relocate torrent - When Default Save Path changed:
Relocate affected torrents - When Category Save Path changed:
Relocate affected torrents - Default Save Path:
/downloads
- Default Torrent Management Mode:
- Click SAVE.
Category Configuration
- In the WebUI, expand CATEGORIES in the left menu. Right-click on All and select Add category....
- In the New Category window, configure as follows:
- Category:
radarr(this corresponds to the category you will later configure in Radarr) - Save path:
/downloads/radarr
- Category:
- Click Add.
- Right-click on All again, select Add category....
- Configure as follows:
- Category:
sonarr(this should match the category configured later in Sonarr, by defaultsonarr-tv, but this guide usessonarr) - Save path:
/downloads/sonarr
- Category:
- Click Add.
Radarr
Media Management
- Open the WebUI and go to Settings > Media Management.
- Click Add Root Folder, add the path
/COMMON_PATH/radarr/movies, and click OK. - Click Show Advanced at the top, scroll down to Importing, and make sure Use Hardlinks instead of Copy is enabled.
Download Clients
- In the WebUI, go to Settings > Download Clients.
- Click + under Download Clients, then select qBittorrent from the Add Download Client window.
- Fill in the fields as follows:
- Name:
qBittorrent(or another name of your choice) - Host:
qbittorrent - Username:
admin - Password:
adminadmin(change it if you've modified it in qBittorrent) - Category:
radarr(this should match the category set in qBittorrent)
- Name:
- Click Test. If you see a checkmark, it means the connection is working; if not, there is an error.
- Click Save.
Note: if entering qbittorrent as the Host does not work, try entering the IP address instead (ex: 192.168.x.x)
Warning
On new installations, Radarr may complain that the /downloads/radarr directory does not exist inside the container (this is generally flagged as an error by Radarr in System > Status). To fix this, simply move into the directory /COMMON_PATH/qbittorrent/downloads and manually create the radarr directory. Then, simply delete qBittorrent from Radarr and re-add it - you should see the error disappear.
Indexer Jackett (Optional)
- In the WebUI, go to Settings > Indexers.
- Click + under Add Indexer, then select Torznab.
- Fill in the fields as follows:
- Name:
Torznab(or another name of your choice) - URL:
http://Jackett:9117/api/v2.0/indexers/YOUR_INDEXERS/results/torznab/ - ApiKey: Find the API key in the home menu at the top right.
- Name:
- Click Test. If you see a checkmark, it means the connection is working; if not, there is an error.
- Click Save.
Sonarr
Media Management
- Open the WebUI and go to Settings > Media Management.
- Click Add Root Folder, add the path
/COMMON_PATH/sonarr/tv, and click OK. - Click Show Advanced, scroll down to Importing, and enable Use Hardlinks instead of Copy.
Note: if entering qbittorrent as the Host does not work, try entering the IP address instead (ex: 192.168.x.x)
Download Clients
- In the WebUI, go to Settings > Download Clients.
- Click + under Download Clients, then select qBittorrent.
- Fill in the fields as follows:
- Name:
qBittorrent(or another name of your choice) - Host:
qbittorrent - Username:
admin - Password:
adminadmin(change it if you've modified it in qBittorrent) - Category:
sonarr(this should match the category set in qBittorrent)
- Name:
- Click Test. If you see a checkmark, it means the connection is working.
- Click Save.
Indexer Jackett (Optional)
- In the WebUI, go to Settings > Indexers.
- Click + under Add Indexer, then select Torznab.
- Fill in the fields as follows:
- Name:
Torznab(or another name of your choice) - URL:
http://Jackett:9117/api/v2.0/indexers/YOUR_INDEXERS/results/torznab/ - ApiKey: Find the API key in the home menu at the top right.
- Name:
- Click Test. If you see a checkmark, it means the connection is working; if not, there is an error.
- Click Save.
Prowlarr
Configure Torrent Indexers
- Open the WebUI and go to Indexers > Add New Indexer.
- Select 1337x (or another tracker of your choice).
- You can modify the settings as per your preference, but the default values generally work well.
- Sorting by Seeders can be useful for faster downloads.
- Click Test. If you see a checkmark, the connection is functional; otherwise, there's an error.
- Click Save.
Configure FlareSolverr
- Go to Settings and click + under Indexer.
- Select FlareSolverr and fill in the information as follows:
- Name:
FlareSolverr - Tags:
flaresolverr - Host:
http://flaresolverr:8191/
- Name:
- Click Test to check the connection.
- Click Save.
Configure Radarr
- Go to Settings and click Apps.
- Select Radarr and fill in the information as follows:
- Sync Level:
Full Sync - Prowlarr Server:
http://prowlarr:9696 - Radarr Server:
http://radarr:7878 - ApiKey: Find the API key in the Radarr interface under Settings > General > API Key.
- Sync Level:
- Click Test to check the connection.
- Click Save.
Configure Sonarr
- Go to Settings and click Apps.
- Select Sonarr and fill in the information as follows:
- Sync Level:
Full Sync - Prowlarr Server:
http://prowlarr:9696 - Sonarr Server:
http://sonarr:8989 - ApiKey: Find the API key in the Sonarr interface under Settings > General > API Key.
- Sync Level:
- Click Test to check the connection.
- Click Save.
Jellyfin
Initial Setup
- Open the Web UI by going to the DOCKER tab, click the app logo for Jellyfin, and select WebUI.
- Select a preferred display language (or use the default English). Click Next ➝.
- Create an administrator account, fill out the credentials as desired, and click Next ➝.
- Click Add Media Library and fill in the following:
- Content type: Movies
- Folders:
/COMMON_PATH/radarr/movies - Configure the rest as you see fit; the default settings are typically fine.
- Click OK.
- Click Add Media Library again and fill in the following:
- Content type: Shows
- Folders:
/COMMON_PATH/sonarr/tv - Configure the rest as you see fit; the default settings are typically fine.
- Click OK.
- Click Next ➝.
- Configure the Preferred Metadata Language (or use the default), and click Next ➝.
- In Configure Remote Access, leave Allow Remote Connections to this Server checked and Enable Automatic Port Mapping unchecked.
- Click Next ➝, then click Finish.
- Sign in with your administrator account.
Once you sign in, if you already have media in your /COMMON_PATH/* folders, it should start appearing in Jellyfin. If not, the content will populate as the folders are filled.
Adding Users to Jellyfin
If you want other users to access your Jellyfin server, you can create additional user accounts. This step is optional if you're the only user.
- Open the left menu by clicking on the three horizontal lines (hamburger menu) in the upper left corner.
- Select Users and click the + button on the left to add a new user.
- Fill in the following details for the new user:
- Name:
<username> - Password:
<password> - Under Library Access, check the boxes for the libraries (Movies, TV shows, etc.) that you want the user to have access to.
- Name:
- Click Save to create the user.
- Repeat this process for all users you wish to add to the server.
Jellyseerr
Sign In / Configuration
- Open the WebUI and in the Welcome to Jellyseerr screen, select Use your Jellyfin account.
- Fill in the information as follows:
- Jellyfin URL:
http://jellyfin:8096/ - Email Address:
<your email address> - Username:
<your Jellyfin username> - Password:
<your Jellyfin password>
- Jellyfin URL:
- Select Sign In.
- Go to Sync Libraries under Jellyfin Libraries, select your Jellyfin libraries, then click Continue.
Integrating with Radarr
- Go to Radarr Settings, then click Add Radarr Server.
- Fill in the information as follows:
- Default Server: Check this box
- Server Name:
Radarr - Name or IP Address:
http://radarr - Port:
7878 - API Key: Find the API key in the Radarr interface under Settings > General > API Key.
- Click Test to check the connection.
- Click Save Changes.
Integrating with Sonarr
- Go to Sonarr Settings, then click Add Sonarr Server.
- Fill in the information as follows:
- Default Server: Check this box
- Server Name:
Sonarr - Name or IP Address:
http://sonarr - Port:
8989 - API Key: Find the API key in the Sonarr interface under Settings > General > API Key.
- Click Test to check the connection.
- Click Save Changes.
Bazarr
Initial Setup
- Open the WebUI by navigating to
http://localhost:6767(or replacelocalhostwith your server's IP address). - The setup wizard will guide you through the initial configuration:
- Language: Select your preferred language and click Next.
- Authentication: Configure authentication if desired (optional for local access).
- General Settings: Configure your general preferences.
- Click Next and then Save.
Note
Path Configuration: Since you're using the provided Docker Compose files, all directory paths and volume mappings are already configured correctly. Bazarr will automatically detect your Sonarr and Radarr libraries without needing manual path configuration.
Configure Sonarr Integration
- Go to Settings > Sonarr.
- Click Add and fill in the following information:
- Name:
Sonarr - Enabled: Check this box
- Address:
http://sonarr - Port:
8989 - Base URL: Leave empty
- API Key: Find the API key in the Sonarr interface under Settings > General > API Key.
- Minimum Score: Set according to your preference (recommended: 70-80)
- Name:
- Click Test to verify the connection.
- Click OK to save.
Configure Radarr Integration
- Go to Settings > Radarr.
- Click Add and fill in the following information:
- Name:
Radarr - Enabled: Check this box
- Address:
http://radarr - Port:
7878 - Base URL: Leave empty
- API Key: Find the API key in the Radarr interface under Settings > General > API Key.
- Minimum Score: Set according to your preference (recommended: 70-80)
- Name:
- Click Test to verify the connection.
- Click OK to save.
Configure Subtitle Providers
- Go to Settings > Providers.
- Add your preferred subtitle providers by clicking Add and selecting from available providers. Based on community recommendations, here are the most effective providers:
Recommended Free Providers (No Account Required):
- TVSubtitles: Excellent for TV shows, no registration needed
- YIFYSubtitles: Great for movies, no registration needed
- SuperSubtitles: Good general provider, no registration needed
- EmbeddedSubtitles: Extracts subtitles from video files
- AnimeTosho: Specialized for anime content
Recommended Providers (Free Account Required):
- OpenSubtitles.com: Free account required, much better than the old .org version
- Addic7ed: Free account required, excellent for TV shows
Important
Note about OpenSubtitles: The old opensubtitles.org now requires a VIP subscription and is no longer recommended for free users. Use opensubtitles.com instead, which offers free accounts with good download limits.
- For providers requiring authentication:
- OpenSubtitles.com: Register at opensubtitles.com and use your username/password
- Addic7ed: Register at addic7ed.com and use your username/password
- Configure each provider according to your preferences and authentication requirements.
- Click Save.
Tip
Many users report achieving 99% subtitle coverage for movies and 90% for TV episodes using this combination of providers.
Provider recommendations based on community feedback from r/bazarr
Configure Languages
- Go to Settings > Languages.
- Select your preferred languages for subtitles:
- Languages Filter: Add the languages you want subtitles for
- Default Enabled: Check the box for languages you want enabled by default
- Series: Configure language preferences for TV series
- Movies: Configure language preferences for movies
- Click Save.
Configure Subtitles
- Go to Settings > Subtitles.
- Configure your subtitle preferences:
- Download: Set when to search for subtitles (recommended: Manually and when subtitles are wanted)
- Subtitle Folder: Configure how subtitles should be stored (recommended: Alongside media file)
- Upgrade Subtitles: Enable if you want Bazarr to replace existing subtitles with better ones
- Click Save.
Once configured, Bazarr will automatically monitor your Sonarr and Radarr libraries and download subtitles based on your configured preferences.
Updating Applications
To update the applications, you need to stop the running containers and remove the existing Docker images. You can use the following commands to perform these operations:
docker-compose down
docker image prune -aThen, you can run docker-compose up -d to restart the containers with the latest versions of the applications.
Disclaimer
This code is provided for informational purposes only and should not be used for illegal activities. I am not responsible for the actions performed by users of this code. This code is for informational purposes, and if people wish to use it, they should consult the laws of their countries.




























