Servarr Stack
- 5 mins read
DISCLAIMER
I am not endorsing piracy nor supporting online illegal activities.
Prerequisites
nordpvn details
Steps were taken from qdm12 / gluetun-wiki. Please pick your current VPN provider from the list.
❯ sudo pacman -S wireguard-tools
❯ sudo wg show nordlynx private-key
❯ sudo wg show nordlynx public-key
nordvpn endpoint
Please make sure you are connected to the tunnel before clicking this link.
gluetun
networks:
media-network:
name: media-network
driver: bridge
###########################################################################
## Docker Compose File: Gluetun (qmcgaw)
## Function: VPN Client
## Documentation: https://github.com/qdm12/gluetun-wiki
###########################################################################
services:
gluetun:
image: qmcgaw/gluetun:v3.35.0
container_name: gluetun
restart: always
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
healthcheck:
test: ping -c 1 www.google.com || exit 1
interval: 60s
retries: 3
start_period: 20s
timeout: 10s
ports:
- 8488:8888/tcp # Gluetun Local Network HTTP proxy
- 8388:8388/tcp # Gluetun Local Network Shadowsocks
- 8388:8388/udp # Gluetun Local Network Shadowsocks
- ${WEBUI_PORT_QBITTORRENT:?err}:${WEBUI_PORT_QBITTORRENT:?err} # WebUI Portal: qBittorrent
- ${QBIT_PORT_TCP:?err}:6881/tcp # Transmission Torrent Port TCP
- ${QBIT_PORT_UDP:?err}:6881/udp # Transmission Torrent Port UDP
- ${WEBUI_PORT_PROWLARR:?err}:9696 # Prowlarr
- ${WEBUI_PORT_SABNZBD:?err}:8080 # Sabnzbd
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/gluetun:/gluetun
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
- VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER:?err}
- SERVER_REGIONS=${SERVER_REGIONS:?err}
- SERVER_COUNTRIES=${SERVER_COUNTRIES}
- SERVER_CITIES=${SERVER_CITIES}
- SERVER_HOSTNAMES=${SERVER_HOSTNAMES}
- FIREWALL_OUTBOUND_SUBNETS=${LOCAL_SUBNET:?err}
- OPENVPN_CUSTOM_CONFIG=${OPENVPN_CUSTOM_CONFIG}
- VPN_TYPE=${VPN_TYPE}
- VPN_ENDPOINT_IP=${VPN_ENDPOINT_IP}
- VPN_ENDPOINT_PORT=${VPN_ENDPOINT_PORT}
- WIREGUARD_PUBLIC_KEY=${WIREGUARD_PUBLIC_KEY}
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY}
- WIREGUARD_PRESHARED_KEY=${WIREGUARD_PRESHARED_KEY}
- WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES}
- HTTPPROXY=on
- SHADOWSOCKS=on
# NOTE: Gluetun VPN container MUST ONLY connect to the media-network
networks:
- media-network
sabnzbd
###########################################################################
## Docker Compose File: SABnzbd (LinuxServer.io)
## Function: Usenet Download Client
## Documentation: https://docs.linuxserver.io/images/docker-sabnzbd
###########################################################################
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:latest
container_name: sabnzbd
restart: unless-stopped
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/sabnzbd:/config
- ${FOLDER_FOR_MEDIA:?err}:/data
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
network_mode: service:gluetun
qbittorrent
###########################################################################
## Docker Compose File: qBittorrent (LinuxServer.io)
## Function: Torrent Download Client
## Documentation: https://docs.linuxserver.io/images/docker-qbittorrent
###########################################################################
qbittorrent:
image: linuxserver/qbittorrent:4.6.0
container_name: qbittorrent
restart: unless-stopped
depends_on:
gluetun:
condition: service_healthy
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/qbittorrent:/config
- ${FOLDER_FOR_MEDIA:?err}:/data
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- UMASK=${UMASK:?err}
- TZ=${TIMEZONE:?err}
- WEBUI_PORT=${WEBUI_PORT_QBITTORRENT:?err}
healthcheck:
test: ping -c 1 www.google.com || exit 1
interval: 60s
retries: 3
start_period: 20s
timeout: 10s
## Do Not Change Network for qBittorrent
## qBittorrent MUST always use a VPN / Secure Internet connection
network_mode: service:gluetun
jellyfin
###########################################################################
## Docker Compose File: Jellyfin (LinuxServer.io)
## Function: Media Server
## Documentation: https://jellyfin.org/docs/general/administration/installing#docker
## https://jellyfin.org/docs/general/administration/hardware-acceleration/
###########################################################################
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfinrr
restart: unless-stopped
# Hardware Acceleration
devices:
- /dev/dri:/dev/dri
group_add:
- 107 # render host group id
- 44 # video host group id
# End Hardware Acceleration
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/jellyfin:/config
- ${FOLDER_FOR_MEDIA:?err}/data:/data/media
ports:
- ${WEBUI_PORT_JELLYFIN:?err}:8096
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- UMASK=${UMASK:?err}
- TZ=${TIMEZONE:?err}
- ROC_ENABLE_PRE_VEGA=1 # Hardware Acceleration
networks:
- media-network
jellyseerr
###########################################################################
## Docker Compose File: Jellyseerr (fallenbagel)
## Function: Media Request Manager
## Documentation: https://hub.docker.com/r/fallenbagel/jellyseerr
###########################################################################
jellyseerr:
image: fallenbagel/jellyseerr:latest
container_name: jellyseerr
restart: unless-stopped
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/jellyseerr:/app/config
ports:
- ${WEBUI_PORT_JELLYSEERR:?err}:5055
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- UMASK=${UMASK:?err}
- TZ=${TIMEZONE:?err}
networks:
- media-network
bazarr
###########################################################################
## Docker Compose File: Bazarr (LinuxServer.io)
## Function: Download subtitles for Radarr and Sonarr
## Documentation: https://docs.linuxserver.io/images/docker-bazarr
###########################################################################
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
restart: unless-stopped
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/bazarr:/config
- ${FOLDER_FOR_MEDIA:?err}:/data
ports:
- ${WEBUI_PORT_BAZARR:?err}:6767
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
networks:
- media-network
lidarr
###########################################################################
## Docker Compose File: Lidarr (LinuxServer.io)
## Function: Music Library Manager
## Documentation: https://docs.linuxserver.io/images/docker-lidarr
###########################################################################
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidarr
restart: unless-stopped
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/lidarr:/config
- ${FOLDER_FOR_MEDIA:?err}:/data
ports:
- ${WEBUI_PORT_LIDARR:?err}:8686
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
networks:
- media-network
prowlarr
###########################################################################
## Docker Compose File: Prowlarr (LinuxServer.io)
## Function: Indexer and Search Manager
## Documentation: https://docs.linuxserver.io/images/docker-prowlarr
###########################################################################
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
restart: unless-stopped
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/prowlarr:/config
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
network_mode: service:gluetun
radarr
###########################################################################
## Docker Compose File: Radarr (LinuxServer.io)
## Function: Movie Library Manager
## Documentation: https://docs.linuxserver.io/images/docker-radarr
###########################################################################
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
restart: unless-stopped
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/radarr:/config
- ${FOLDER_FOR_MEDIA:?err}:/data
ports:
- ${WEBUI_PORT_RADARR:?err}:7878
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
networks:
- media-network
readarr
###########################################################################
## Docker Compose File: Sonarr (LinuxServer.io)
## Function: Series Library Manager (Books)
## Documentation: https://docs.linuxserver.io/images/docker-readarr
###########################################################################
readarr:
image: lscr.io/linuxserver/readarr:develop
container_name: readarr
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/radarr:/config
- ${FOLDER_FOR_MEDIA:?err}:/data
ports:
- ${WEBUI_PORT_READARR:?err}:8787
restart: unless-stopped
networks:
- media-network
sonarr
###########################################################################
## Docker Compose File: Sonarr (LinuxServer.io)
## Function: Series Library Manager (TV Shows)
## Documentation: https://docs.linuxserver.io/images/docker-sonarr
###########################################################################
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
restart: unless-stopped
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/sonarr:/config
- ${FOLDER_FOR_MEDIA:?err}:/data
ports:
- ${WEBUI_PORT_SONARR:?err}:8989
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- TZ=${TIMEZONE:?err}
networks:
- media-network
unpackerr
###########################################################################
## Docker Compose File: Unpackerr (Hotio.Dev)
## Function: Archive Media Extraction
## Documentation: https://github.com/davidnewhall/unpackerr
## https://github.com/davidnewhall/unpackerr/blob/master/examples/docker-compose.yml
###########################################################################
unpackerr:
image: golift/unpackerr:latest
container_name: unpackerr
restart: unless-stopped
volumes:
- ${FOLDER_FOR_CONFIGS:?err}/unpackerr:/config
- ${FOLDER_FOR_MEDIA:?err}/:/data
environment:
- PUID=${PUID:?err}
- PGID=${PGID:?err}
- UMASK=${UMASK:?err}
- TZ=${TIMEZONE:?err}
# Documentation on all Environment Variables can be found at:
# https://github.com/davidnewhall/unpackerr#docker-env-variables
- UN_DEBUG=false
- UN_LOG_FILE=
- UN_LOG_FILES=10
- UN_LOG_FILE_MB=10
- UN_INTERVAL=2m
- UN_START_DELAY=1m
- UN_RETRY_DELAY=5m
- UN_MAX_RETRIES=3
- UN_PARALLEL=1
- UN_FILE_MODE=0664
- UN_DIR_MODE=0775
# Sonarr Config - Copy API Key from: http://sonarr:8989/general/settings
- UN_SONARR_0_URL=http://sonarr:8989
- UN_SONARR_0_API_KEY=${SONARR_API_KEY}
- UN_SONARR_0_PATHS_0=/data/torrents/anime
- UN_SONARR_0_PATHS_1=/data/torrents/series
- UN_SONARR_0_PROTOCOLS=torrent
- UN_SONARR_0_TIMEOUT=10s
- UN_SONARR_0_DELETE_ORIG=false
- UN_SONARR_0_DELETE_DELAY=5m
# Radarr Config - Copy API Key from: http://radarr:7878/general/settings
- UN_RADARR_0_URL=http://radarr:7878
- UN_RADARR_0_API_KEY=${RADARR_API_KEY}
- UN_RADARR_0_PATHS_0=/data/torrents/movies
- UN_RADARR_0_PROTOCOLS=torrent
- UN_RADARR_0_TIMEOUT=10s
- UN_RADARR_0_DELETE_ORIG=false
- UN_RADARR_0_DELETE_DELAY=5m
# Lidarr Config - Copy API Key from: http://lidarr:8686/general/settings
- UN_LIDARR_0_URL=http://lidarr:8686
- UN_LIDARR_0_API_KEY=${LIDARR_API_KEY}
- UN_LIDARR_0_PATHS_0=/data/torrents/music
- UN_LIDARR_0_PROTOCOLS=torrent
- UN_LIDARR_0_TIMEOUT=10s
- UN_LIDARR_0_DELETE_ORIG=false
- UN_LIDARR_0_DELETE_DELAY=5m
security_opt:
- no-new-privileges:true
network_mode: none
Environment variables
COMPOSE_PROJECT_NAME=media-stack
DOCKER_SUBNET=172.16.12.0/24
DOCKER_GATEWAY=172.16.12.1
LOCAL_SUBNET=192.168.0.0/24
LOCAL_DOCKER_IP=192.168.0.100
FOLDER_FOR_CONFIGS=/mnt/fast/servarr
FOLDER_FOR_MEDIA=/mnt/tank0/data
PUID=568
PGID=568
UMASK=0002
TIMEZONE=Europe/London
VPN_TYPE=wireguard
VPN_SERVICE_PROVIDER=nordvpn
SERVER_REGIONS=Europe
SERVER_COUNTRIES=Switzerland
SERVER_CITIES=Zurich
SERVER_HOSTNAMES=ch418.nordvpn.com
VPN_ENDPOINT_IP=185.7.34.112
WIREGUARD_PUBLIC_KEY=FT46M53w4dhBep/ZbpBgzvk71FlLZLDBM=
WIREGUARD_PRIVATE_KEY=GNHMMbKoNWQWwfhuuyzwGJstPyiV2g=
QBIT_PORT_TCP=6881
QBIT_PORT_UDP=6881
FLARESOLVERR_PORT=8191
TDARR_SERVER_PORT=8266
WEBUI_PORT_TDARR=8265
WEBUI_PORT_BAZARR=6767
WEBUI_PORT_JELLYFIN=8095
WEBUI_PORT_JELLYSEERR=5055
WEBUI_PORT_LIDARR=8686
WEBUI_PORT_MYLAR3=8090
WEBUI_PORT_PORTAINER=9443
WEBUI_PORT_PROWLARR=9696
WEBUI_PORT_QBITTORRENT=8200
WEBUI_PORT_RADARR=7878
WEBUI_PORT_READARR=8787
WEBUI_PORT_SONARR=8989
WEBUI_PORT_WHISPARR=6969
WEBUI_PORT_SABNZBD=6789
RADARR_API_KEY=14f60f87100240c58dcd09692a
SONARR_API_KEY=3ab52198f5e4427a82ab1670b3
LIDARR_API_KEY=60dedcc1848a4ea5a1129431f7