166 lines
5.1 KiB
YAML
166 lines
5.1 KiB
YAML
# THE MAGNUM OPUS OF TORRENTING
|
|
|
|
services:
|
|
gluetun:
|
|
image: qmcgaw/gluetun
|
|
container_name: gluetun
|
|
# Hostname to use for container, required in some instances for the rest of the stack to each other endpoints
|
|
hostname: gluetun
|
|
# line above must be uncommented to allow external containers to connect.
|
|
# See https://github.com/qdm12/gluetun-wiki/blob/main/setup/connect-a-container-to-gluetun.md#external-container-to-gluetun
|
|
cap_add:
|
|
- NET_ADMIN
|
|
devices:
|
|
- /dev/net/tun:/dev/net/tun
|
|
ports:
|
|
- 8085:8085 # qbittorrent Downloads torrents and sorts them by categories
|
|
- 9696:9696 # Prowlarr Torrent indexer (searches pirate bay and other sites for torrent files)
|
|
- 8191:8191 # Flare-solverr Cloudflare bypass for Prowlarr (I couldnt get it to work)
|
|
- 5055:5055 # Seerr Movie and show discovery/queueing
|
|
- 8989:8989 # Sonarr shows
|
|
- 7878:7878 # Radarr movies
|
|
- 8686:8686 # Lidarr Music
|
|
- 5030:5030 # slskd Music
|
|
- 5031:5031 # slskd Music
|
|
- 50300:50300 # slskd Music
|
|
volumes:
|
|
- ${RSTACK_DATA_DIR}/gluetun:/gluetun
|
|
env_file:
|
|
.env
|
|
environment:
|
|
# See https://github.com/qdm12/gluetun-wiki/tree/main/setup#setup
|
|
- VPN_SERVICE_PROVIDER=mullvad
|
|
- VPN_TYPE=wireguard
|
|
# Wireguard:
|
|
- WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY} # See https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers/nordvpn.md#obtain-your-wireguard-private-key
|
|
- WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES}
|
|
|
|
# TORRENT CLIENT
|
|
qbittorrent:
|
|
image: lscr.io/linuxserver/qbittorrent
|
|
container_name: qbittorrent
|
|
network_mode: "service:gluetun"
|
|
env_file:
|
|
.env
|
|
environment:
|
|
- WEBUI_PORT=8085
|
|
volumes:
|
|
- ${RSTACK_DATA_DIR}/qbittorrent:/config
|
|
- ${TORRENT_DOWNLOAD_DIR}:/downloads
|
|
- ${TORRENT_SEEDING_DIR}:/seeding
|
|
# - ${RSTACK_DATA_DIR}/torrent_files:/torrent_files
|
|
depends_on:
|
|
- gluetun
|
|
restart: always
|
|
|
|
# TORRENT INDEXER
|
|
prowlarr:
|
|
image: lscr.io/linuxserver/prowlarr:latest
|
|
container_name: prowlarr
|
|
network_mode: "service:gluetun"
|
|
env_file:
|
|
.env
|
|
volumes:
|
|
- ${RSTACK_DATA_DIR}/prowlarr/data:/config
|
|
restart: unless-stopped
|
|
|
|
# CLOUDFLARE BYPASS
|
|
flaresolverr:
|
|
image: ghcr.io/flaresolverr/flaresolverr:latest
|
|
container_name: flaresolverr
|
|
network_mode: "service:gluetun"
|
|
env_file:
|
|
.env
|
|
environment:
|
|
- CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
|
|
restart: unless-stopped
|
|
|
|
# MOVIES AND SHOW DISCOVERY
|
|
seerr:
|
|
image: ghcr.io/seerr-team/seerr:latest
|
|
container_name: seerr
|
|
network_mode: "service:gluetun"
|
|
env_file:
|
|
.env
|
|
environment:
|
|
- LOG_LEVEL=debug
|
|
volumes:
|
|
- ${RSTACK_DATA_DIR}/jellyseer/config:/app/config
|
|
healthcheck:
|
|
test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1
|
|
start_period: 20s
|
|
timeout: 3s
|
|
interval: 15s
|
|
retries: 3
|
|
restart: unless-stopped
|
|
|
|
# SHOWS
|
|
sonarr:
|
|
image: lscr.io/linuxserver/sonarr:latest
|
|
container_name: sonarr
|
|
network_mode: "service:gluetun"
|
|
env_file:
|
|
.env
|
|
volumes:
|
|
- ${RSTACK_DATA_DIR}/sonarr/data:/config
|
|
- ${TORRENT_DOWNLOAD_DIR}:/downloads
|
|
- ${TORRENT_SEEDING_DIR}:/seeding
|
|
restart: unless-stopped
|
|
|
|
# MOVIES
|
|
radarr:
|
|
image: lscr.io/linuxserver/radarr:latest
|
|
container_name: radarr
|
|
network_mode: "service:gluetun"
|
|
env_file:
|
|
.env
|
|
volumes:
|
|
- ${RSTACK_DATA_DIR}/radarr/data:/config
|
|
- ${TORRENT_DOWNLOAD_DIR}:/downloads
|
|
- ${TORRENT_SEEDING_DIR}:/seeding
|
|
restart: unless-stopped
|
|
|
|
|
|
## Music stack (pain in the ass)
|
|
lidarr:
|
|
image: lscr.io/linuxserver/lidarr:latest
|
|
container_name: lidarr
|
|
network_mode: "service:gluetun"
|
|
env_file:
|
|
.env
|
|
volumes:
|
|
- ${RSTACK_DATA_DIR}/lidarr/data:/config
|
|
- ${TORRENT_DOWNLOAD_DIR}:/downloads
|
|
- ${TORRENT_SEEDING_DIR}:/seeding
|
|
restart: unless-stopped
|
|
|
|
# Soulseek, a P2P file sharing service that is mostly used for music sharing
|
|
slskd:
|
|
image: slskd/slskd
|
|
container_name: slskd
|
|
network_mode: "service:gluetun"
|
|
env_file:
|
|
.env
|
|
environment:
|
|
- SLSKD_REMOTE_CONFIGURATION=true
|
|
volumes:
|
|
- ${RSTACK_DATA_DIR}/slskd/data:/app
|
|
- ${TORRENT_DOWNLOAD_DIR}/lidarr-slskd:/app/downloads
|
|
- ${TORRENT_DOWNLOAD_DIR}/lidarr-slskd:/downloaded
|
|
#- ${TORRENT_DOWNLOAD_DIR}/lidarr-slskd-shared:/shared # (optional: If you wanna let other people on the slsk network download from you)
|
|
restart: unless-stopped
|
|
|
|
# Sends requested albums to slskd to be downloaded (since normal lidarr sucks)
|
|
soularr:
|
|
image: mrusse08/soularr:latest
|
|
container_name: soularr
|
|
network_mode: "service:gluetun"
|
|
env_file:
|
|
.env
|
|
environment:
|
|
- SCRIPT_INTERVAL=300
|
|
volumes:
|
|
- ${RSTACK_DATA_DIR}/soularr:/data
|
|
- ${TORRENT_DOWNLOAD_DIR}/lidarr-slskd:/downloads
|
|
restart: unless-stopped
|