Docker Compose Media Containers Arrs
Configuration
Other tutorials I found left out a torrent downloader in the container stack. This stack includes everything but a media server (which I assume most have an already running server of i.e. Plex.tv, Jellyfin, etc.)
Directory File Structure
My naming and structure might be confusing because I use media
as the all containing folder instead of data
because to me media just sounded more inline with what will live in this directory
/mnt/VOLUME/media
├── library
│ ├── books
│ ├── movies
│ ├── music
│ └── tv
└── trnts
├── radarr
└── tv-sonarr
libary
is the directory a media player reads, and trnts
is assentially qBittorrent's "download" folder. Other tutorials have a matching set of movies, music, tv
folders, but in my case the torrent downloader automatically created these radarr, tv-sonarr
apps and the hardlinks continued to work sooo... 🤷♀️
compose.yml
services:
prowlarr: #indexer manager for Sonarr & Radarr
image: ghcr.io/linuxserver/prowlarr:develop
container_name: prowlarr
environment:
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
volumes:
- ./prowlarr:/config
ports:
- 9696:9696
restart: unless-stopped
networks:
- this
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
- LOG_HTML=${LOG_HTML:-false}
- CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
- TZ=$TZ
ports:
- "8191:8191"
restart: unless-stopped
networks:
- this
radarr: #movie search agent
image: ghcr.io/linuxserver/radarr
container_name: radarr
environment:
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- UMASK=022
volumes:
- ./radarr:/config
- $MEDIADIR:/media
ports:
- 7878:7878
restart: unless-stopped
networks:
- this
sonarr: #TV show search agent
image: ghcr.io/linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- UMASK=022
volumes:
- ./sonarr:/config
- $MEDIADIR:/media
ports:
- 8989:8989
restart: unless-stopped
networks:
- this
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidarr
environment:
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- UMASK=022
volumes:
- ./lidarr:/config
- $MEDIADIR:/media
ports:
- 8686:8686
restart: unless-stopped
networks:
- this
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittarrent
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
- WEBUI_PORT=8080
volumes:
- ./qbittorrent/config:/config
- $MEDIADIR:/media
- ./qbittorrent/webui-cjratliff:/webui
ports:
- 8080:8080
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
networks:
- this
networks:
this:
name: arr-network
driver: bridge
# proxy
notes in there. That way you could connect everything by docker's internal DNS, but to keep things simple, I'm just exposing the ports to the local host
.env
PUID=1000 #change to your user's PUID
PGID=100 #change to your user's PGID
TZ=America/Chicago #change to your timezone location
MEDIADIR=/mnt/VOLUME1/media
!info**
VOLUME1
should be replaced by your path needs.
Local DNS
before you go and link the containers up via each web UI. Check out my Pretty URLS for Local DNS Records, especially if you're a Pi-hole user.
VPN
Trouble Shooting
I had an error in Sonarr/Radarr/Ectrr
Looks like the paths have to be exactly the same for each container in the stack
Anime Dubs vs Subs
I'd prefer to have an English dub of an Anime if one exists. Looks like there is a way to do it via 'Category' or 'Tags'. Another comment mentions weighting words?
Credits
- Make Automated Torrent Media Server with Emby, Sonarr, Radarr, Prowlarr, and qBittorrent on Windows! - YouTube
- How to torrent safely with a VPN - Proton VPN Support
- Configuring Prowlarr for Sonarr and Radarr in docker (pointtosource.com)
- Docker Guide | Servarr Wiki
- Hardlinks - Atomic Moves - TRaSH Guides (trash-guides.info)
- qBittorrent Basic-Setup - TRaSH Guides (trash-guides.info)