Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

20 Commits

Repository files navigation

Jellystack

Jellystack is a fully containerized and automated media server stack using Docker Compose. It brings together powerful tools like Jellyfin, qBittorrent, Sonarr, Radarr, Prowlarr, Bazarr, and Overseerr.

Features

  • Jellyfin – Media server for streaming movies and TV shows
  • qBittorrent – Torrent client with Web UI
  • Sonarr – Automatic TV show downloads and organization
  • Radarr – Movie management and automation
  • Prowlarr – Indexer manager for Sonarr and Radarr
  • Bazarr – Subtitle downloader for your media library
  • Overseerr – Request management and discovery
  • Network Isolation – Restricted communication between services via dedicated Docker networks

Folder Structure

jellystack/
│
├── .env # Environment file with PUID, PGID and TZ
├── docker-compose.yml # Main media stack configuration
└── media/ # Media storage (local bind)
├── downloads/ # Where qBittorrent downloads go
├── movies/ # Where Radarr stores movies
└── tv/ # Where Sonarr stores TV shows

Usage

  1. Clone the repository:

    git clone https://github.com/0xsharkboy/jellystack.git
    cd jellystack
  2. Edit the .env file: Define your user and group ID, timezone, and media storage path.

    PUID=1000PGID=1000TZ=Europe/ParisMEDIA_FOLDER=./media
  3. Start the stack:

    docker-compose up -d

Hardlinks Configuration

To enable hardlinking (zero-copy moves) and save disk space, all media services share a single /data mount point. You must update the internal paths in each application's Web UI:

ApplicationSettingNew Path
qBittorrentDefault Save Path/data/downloads
SonarrRoot Folder/data/tv
RadarrRoot Folder/data/movies
JellyfinLibrary Paths/data/movies and /data/tv
BazarrRoot Folder/data/movies and /data/tv

Sonarr Specific Settings for Hardlinks

To ensure Sonarr uses hardlinks instead of copies:

  1. Go to Settings > Media Management.
  2. Enable Advanced Settings (top toggle).
  3. Ensure Importing > Use Hardlinks instead of Copy is checked.
  4. Ensure your download client in Sonarr uses a Category (like tv-sonarr) to keep the downloads organized within /data/downloads.

Important

Hardlinking only works if the source and destination are on the same filesystem. By using the unified /data mount, this is handled automatically. However, ensure the user defined by PUID/PGID has write permissions to the entire MEDIA_FOLDER.

Ports

ServiceDefault Port
Jellyfin8096
qBittorrent8888
Sonarr8989
Radarr7878
Prowlarr9696
Bazarr6767
Overseerr5055

Credits

This stack builds on the work of many amazing open-source projects:


Built with love and torrents.

About

Fully containerized and automated media server stack.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Contributors