Docker Compose
Plex + arr Stack Compose Files
This isn't a direct copy paste for it to work, you will need to replace the volumes with your directories to each folder. For this compose, I use wireguard through proton vpn but you may have a different VPN service that could be using OpenVPN as opposed to WireGuard. Make sure you edit your compose accordingly.
vpnstack
Gluetun, qBittorrent, arr Apps, and FlareSolverr
services:
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
ports:
- "8080:8080"
environment:
- VPN_SERVICE_PROVIDER=protonvpn
- VPN_TYPE=wireguard
- WIREGUARD_PRIVATE_KEY= (REPLACE WITH YOUR WIREGUARD PRIVATE KEY)
- SERVER_COUNTRIES=United States
- PORT_FORWARDING=on
- VPN_INTERFACE_MTU=1320
- TZ=America/Chicago
volumes:
- /volume1/docker/gluetun:/gluetun
restart: unless-stopped
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
network_mode: "service:gluetun"
depends_on:
- gluetun
environment:
- PUID=1000
- PGID=10
- TZ=America/Chicago
- UMASK=002
- WEBUI_PORT=8080
- WEBUI_BIND_ADDRESS=0.0.0.0
volumes:
- /volume1/docker/qbittorrent:/config
- /volume1/Media/Downloads:/downloads
restart: unless-stopped
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
- UMASK=002
volumes:
- /volume1/docker/radarr:/config
- /volume1/Media/Downloads:/downloads
- /volume1/Media/Movies:/movies
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
- UMASK=002
volumes:
- /volume1/docker/sonarr:/config
- /volume1/Media/Downloads:/downloads
- /volume1/Media/TV:/tv
restart: unless-stopped
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
- UMASK=002
volumes:
- /volume1/docker/prowlarr:/config
restart: unless-stopped
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
restart: unless-stopped
environment:
- LOG_LEVEL=info
- LOG_HTML=false
- CAPTCHA_SOLVER=none
- TZ=America/Chicago
ports:
- "8191:8191"
plex
Plex Media Server
services:
plex:
image: lscr.io/linuxserver/plex:latest
container_name: plex
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
- VERSION=docker
volumes:
- /volume1/Plex:/config
- /volume1/Media/Movies:/movies
- /volume1/Media/TV:/tv
- /volume1/Media/Downloads:/downloads
restart: unless-stopped