With a whole slew of new reasons on why subscribing to streaming services WILL give you worse services than NOT subscribing to them, i think it’s time to write a new up-to-date guide on how to install and configure an Arr-Stack + qBitTorrent via Docker-Compose.
All these guides assume you have basic knowledge about docker & docker compose. To quickly summarize the methods here:
You either use a webui to manage your docker-compose like Dockge or you create a folder and a docker-compose.yaml for each service listed here and copy the contents of each of them into that docker-compose.yaml; IMPORTANT: You HAVE to name them docker-compose.yaml exactly like that. Do NOT name them radarr.yaml for example. After you created a docker-compose.yaml and filled it with the contents here, you simply run docker compose up -d
I specifically did NOT route all those docker-compose files through a VPN container like Gluetun. In my case i have my Mullvad VPN setup on my router directly and selected the whole server to be tunneled through that VPN.
You can add a VPN container to your setup and route all the docker compose files through that. But i will not go through this on this guide. There are guides out there how to do that and you can even ask any big enough LLM as this isn’t really that complicated.
Just as a simple run through. Install Gluetun as an additional docker container and append network_mode: "container:gluetun"
at the end of every docker-compose.yaml here according to the gluetun readme. You also have to remove all the ports:
sections in the docker-compose.yamls of each service because it will throw an error if you use the network_mode:
and you then have to add the ports of each service into the gluetun docker-compose.yaml.
You can then start a console for each docker container and check if the outside world IP adress is NOT your real one with curl ipinfo.io
For every configuration step in this guide where it says “ipofyourserver” for sonarr, radarr, etc. you will have to change that to 127.0.0.1
as they all run inside the same network of gluetun.
This is a super super quick run through and you HAVE to properly configure gluetun and run tests that stopping that container does NOT let your real IP go through.
If you want to store all your media on a NAS or some other external drive, make sure it is configured properly for symlinking / hardlinking and that you have proper permissions for this storage. Everything here will run with the 1000 user and has to create new files to work.
So this is the folder structure i use. And it is stored on a NFS-Share coming from my TrueNAS.
arr-stack (for this example let's say it's located in /mnt/arr-stack)
|---- media
|---- movies
|---- shows
|---- music
|---- etc.
|---- configs
|---- radarr
|---- sonarr
|---- qbittorrent
|---- etc.
|---- torrents
|---- complete
I intentionally broke out the torrent folder to make it easier accessible for when you download something fully manual and you want to grab it out of the ‘completed’ folder without searching too deep.
qBitTorrent is the download application for Usenet. Alternatively you can use NZBget but i find Sab to be more modern, versatile and i just like it.
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- WEBUI_PORT=8081
volumes:
- /mnt/arr-stack/configs/qbittorrent/config:/config
- /mnt/arr-stack/torrents/complete:/mnt/arr-stack/torrents/complete
ports:
- 8081:8081
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
networks: {}
Radarr and Sonarr are the applications that will actually find and track your Movies (Radarr) and Shows (Sonarr). Additionally there is Lidarr for Music and Whisparr for porn.
services:
arch-radarr:
ports:
- 7878:7878
container_name: radarr
volumes:
- /mnt/arr-stack:/mnt/arr-stack
- /mnt/arr-stack/configs/radarr:/config
- /etc/localtime:/etc/localtime:ro
environment:
- PUID=1000
- PGID=1000
image: binhex/arch-radarr
restart: unless-stopped
networks: {}
services:
arch-sonarr:
ports:
- 8989:8989
- 9897:9897
container_name: sonarr
volumes:
- /mnt/arr-stack:/mnt/arr-stack
- /mnt/arr-stack/configs/sonarr:/config
- /etc/localtime:/etc/localtime:ro
environment:
- PUID=1000
- PGID=1000
image: binhex/arch-sonarr
restart: unless-stopped
networks: {}
Prowlarr is the application where you can configure your usenet sites. There you will put in the URLs of your Indexers like Drunkenslug and your API keys for those sites. Prowlarr will periodically check the availability of those services and will sync these accounts to all your connected services (Radarr, Sonarr, Lidarr, Whisparr, etc.). Prowlarr will then be doing the actual heavy lifting of accessing the API of any Usenet and search for your stuff.
services:
arch-prowlarr:
ports:
- 9696:9696
container_name: prowlarr
volumes:
- /mnt/arr-stack/configs/prowlarr:/config
- /etc/localtime:/etc/localtime:ro
environment:
- PUID=1000
- PGID=1000
image: binhex/arch-prowlarr
restart: unless-stopped
networks: {}
Now that we have all these Services up and running. It’s time to properly configure them. Let’s start with qBitTorrent
The same procedure goes for Lidarr and Whisparr aswell with their respective categories changed.
Prowlarr will now test and sync the indexers to your other apps like Sonarr and Radarr. Manually click on Test all Inders and then on Sync all Indexers. Now go back to Sonarr and Radarr and click on Settings -> Indexers and check if Drunkenslug (in our example) shows up there.
Now this is obviously just the tip of the iceberg. You still don’t have “finetuned” profiles and explaining these would absolutely blow up the scope of this post.
I highly recommend you to check out these two posts over on the trash-guides site: Sonarr Profiles and Radarr Profiles
So, these are the basics and there is much more to finetune. But you absolutely are ready to go sailing on the high seas now!
If you’re looking for a neat mobile app to manage your sonarr, radarr and sabnzbd i highly recommend you check out nzb360.
Here is an alternate guide on how to set it up for Usenet Downloads: https://lemmy.dbzer0.com/post/26287096
Part 2 of this Guide is aiming for Jellyfin + Jellyseer: https://lemmy.dbzer0.com/post/26296377
- /mnt/arr-stack/torrents/complete:/mnt/arr-stack/torrents/complete
1. Posts must be related to the discussion of digital piracy
2. Don’t request invites, trade, sell, or self-promote
3. Don’t request or link to specific pirated titles, including DMs
4. Don’t submit low-quality posts, be entitled, or harass others
📜 c/Piracy Wiki (Community Edition):
💰 Please help cover server costs.
Ko-fi | Liberapay |
What nuc do you use? I’ve seen people touting the N100 as this miracle chip but IIRC it’s like 1Ghz to my pi’s 1.8 I think? I know moving away from the pi is fairly inevitable but IDK what to move to. A NUC sorta thing makes sense, but at the same time if I bother to buy new hardware I want to be able to run a game server or two and I assume I’d probably need more power than a NUC for that (I haven’t actually looked into reqs for that yet, although I know some games are explicitly more RAM intensive.)
I use a nuc10i7fnkn and since transcoding is almost entirely done using the dedicated quicksync hardware in the CPU you don’t end up actually using the CPU much. So I’m sure it would work on an older generation or the i5 version. I don’t know much about the N100 but it looks like it would be very capable. Supposedly it boosts to 3+GHz and it’s a 10nm node compared to my NUCs 14nm. But the GPU has the same number of execution units so I’m not sure if the quicksync transcoding performance is that different. I saw someone mention 3 simultaneous 4K transcodes and I think I got about that much on mine. Generally for quick sync performance you just compare the Intel hd or uhd graphics model (like 630, 730, uhd, etc) and the number of execution units and that should correlate to the performance. Also check the Wikipedia page for quicksync for codec compatibility (under the Hardware decoding and encoding section), but anything recent will handle most stuff you’d need: https://en.m.wikipedia.org/wiki/Intel_Quick_Sync_Video