A media server configuration to run Jellyfin, Sonarr, Radarr, and qbittorrent in Docker and behind Traefik.
- install Docker
- install Docker Compose
- clone this repository
- create a
webdocker network withdocker network create web - clone and setup the reverse proxy
- create a user for your media server, export its
$USER_IDand$GROUP_ID. - set your TZ as an env var, using this list, e.g. "Europe/Paris"
- create a folder named
mediain this folder (dockyard) owned by $USER_ID:$GROUP_ID from yourmediauser. - if you want to setup a VPN or SOCKS5 proxy to secure qbittorrent traffic, do that and uncomment the corresponding env var in the qbittorrent service
- run
DOMAIN_NAME="..." USER_ID="$USER_ID" GROUP_ID="$GROUP_ID" TZ="$TZ" docker compose up -d - profit :)
The expected folder structure is:
media/
library/ # where jellyfin will look, and where sonarr/radarr will hardlink to
movies/
tv/
torrents/ # where qbittorrent will download content and where sonarr/radarr will hardlink from
movies/
tv/
- Configure qbittorrent to download torrents
- To connect to it, check its container logs. It generates a random password upon each start.
- Create a movies and a tv categories in qbittorent
- Configure a download client in sonarr and radarr to use qbittorrent, pass them the above mentioned categories
- Configure indexers in prowlarr
- Configure prowlarr to connect to sonarr and radarr
- Configure Sonarr and Radarr to use hardlinking and avoid copying files in
Settings => Media Management => Importing - In Jellyfin, add the opensubtitles plugin