Welcome to my Jellyfin stack repository! This repository showcases my Docker Compose setup for managing various media-related services using Docker containers. The compose file is meant to be changed to each users liking as I know not everyone has the same requirements. Hope you enjoy!
This Plex Stack includes the following services:
- Jellyfin: Media server for streaming movies and TV shows.
- Radarr: Movie management and automation.
- Sonarr: TV show management and automation.
- Readarr: Used to grab books and audiobooks.
- Lidarr: Used to grab music.
- Kapowarr: Used to grab comics.
- Prowlarr: Indexer manager for Radarr and Sonarr.
- Jellyseerr: Request management and monitoring for Jellyfin.
- Gluetun: VPN container with WireGuard support for secure browsing.
- Qbittorrent: BitTorrent client with VPN support.
- Tdarr: Pre-transcodes your media to decrease file sizes
- Bazarr: Subtitle management for movies and TV shows.
- Autobrr: Used to grab torrents immediately as they are released.
- Flaresolverr: Used as a proxy server to bypass Cloudflare and DDoS-GUARD protection.
- Dozzle: Used to view the logs of any container.
- Wizarr: Used to create links that can be sent to users so they can be invited to your media server.
- Homarr: Used as a dashboard for docker containers with integrations for the *arr, torrent, and Jellyfin apps.
- Decluttarr: Used to maintain/clean your *arr app queues and downloads.
- Jellystat: Used to monitor the usage of each user or content on your jellyfin server.
- Janitorr: Removes untagged media when it reaches a certain age, contains functionality for "Leaving Soon" content too.
- Profilarr: Used as a quality profile management tool that configures your radarr/sonarr installations
- Homarr: A homepage creation service which can connect directly to other services in this stack
- Dispatacharr: A IPTV tuner with many tools on managing channels, EPGs, logos etc.
- Unpackerr: A tool which handles all your torrents which come as archive files
- Cross seed: A service which takes your finished torrents and seeds them across your other trackers (check tracker TOS)
- Linux
- Docker / Docker Compose
- OPTIONAL: Komodo - Docker GUI
Keep in mind some variable names have changed since this screenshot was taken

File location examples:
- {MEDIA_SHARE} = ~/Jellyfin/share
- {BASE_PATH} = ~/Jellyfin/home
To allow hardlinking to work (which you will definitely want!) you will have to use the same root folder in all of your container path. In this example we use "/share", so in the container it will look like "/share/downloads/tv"
- Feel free to expand your folders to also include "books" or "music" as you need for your setup
If you do want to create your networks externally, update the networks configuration with the following: Thanks @aquickalias :)
networks:
proxy:
jellyfin_default:
starr:
jellystat:
gluetun_network:
driver: bridge
ipam:
config:
- subnet: 172.100.0.0/16
Setting up the starr apps might be a bit confusing the first time, but to keep it simple:
- Prowlarr manages the indexes for some starr apps (radarr and sonarr)
- The following starr apps make use of the download client (qBittorent) to download their respective content type:
- Radarr - Movies
- Sonarr - TV Shows
- Lidarr - Music
- Readarr - Books
- Kapowarr - Comics
- Jellyseer is a platform which combines the request system in radarr and sonarr to make a nice UI/UX to find and auto download the content.
Anytime you reference your media folder in a container you want the path to look like /share/media/tv instead of /tv like a lot of the default guides say, if you do end up mapping the path as /tv hardlinking will not work
- Get familiar with reverse proxies
- Install komodo to manage and monitor containers
- Use Cloudflare tunnels
If you need help or just want something added, please feel free to create an issue. If you want to get a head start and get your changes in ASAP, feel free to open a PR. Which I'll review when possible.

