version: "3.1" services: # VPN outward tunnel, to avoid downloading through the local network # Thus has all exposed ports for different services, to avoid any leak wireguard_torr: image: ghcr.io/linuxserver/wireguard container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/Copenhagen volumes: - ./wireguard-config:/config - /lib/modules:/lib/modules - /sys:/sys:rw privileged: true ports: - 51821:51820/udp # Wireguard - 7878:7878 # Radarr - 8989:8989 # Sonarr - 9117:9117 # Jacket - 8112:8112 # Deluge - 8191:8191 # FlareSolverr - 5800:5800 # Handbrake sysctls: - net.ipv4.conf.all.src_valid_mark=1 - net.ipv6.conf.all.disable_ipv6=0 restart: unless-stopped # Search for movies radarr: image: ghcr.io/linuxserver/radarr container_name: radarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/Copenhagen volumes: - ./radarr/config:/config - ${FILE_PATH}/transcode/input_movies:/movies - ${FILE_PATH}/torrent-stack/downloads:/downloads - ${FILE_PATH}/torrent-stack/radarr/sma:/usr/local/sma/config restart: unless-stopped network_mode: service:wireguard_torr depends_on: - wireguard_torr # Search for TV shows/animes sonarr: image: ghcr.io/linuxserver/sonarr container_name: sonarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/Copenhagen volumes: - ./sonarr/config:/config - ${FILE_PATH}/transcode/input_tvshows:/tv - ${FILE_PATH}/torrent-stack/downloads:/downloads - ${FILE_PATH}/torrent-stack/sonarr/sma:/usr/local/sma/config restart: unless-stopped network_mode: service:wireguard_torr depends_on: - wireguard_torr # Torrent aggregator to query through multiple torrent sources when searching with Sonarr # and Radarr jackett: image: ghcr.io/linuxserver/jackett container_name: jackett environment: - PUID=1000 - PGID=1000 - TZ=Europe/Copenhagen volumes: - ./jackett/config:/config - ${FILE_PATH}/torrent-stack/downloads:/downloads restart: unless-stopped network_mode: service:wireguard_torr depends_on: - wireguard_torr deluge: image: ghcr.io/linuxserver/deluge container_name: deluge environment: - PUID=1000 - PGID=1000 - TZ=Europe/Copenhagen - DELUGE_LOGLEVEL=error volumes: - ./deluge/config:/config - ${FILE_PATH}/torrent-stack/downloads:/downloads restart: unless-stopped network_mode: service:wireguard_torr depends_on: - wireguard_torr flaresolverr: image: ghcr.io/flaresolverr/flaresolverr:latest container_name: flaresolver environment: - LOG_LEVEL=info - LOG_HTML=false - CAPTCHA_SOLVER=none - TZ=Europe/Copenhagen restart: unless-stopped network_mode: service:wireguard_torr depends_on: - wireguard_torr handbrake: image: jlesage/handbrake container_name: handbrake volumes: - ./handbrake/config:/config:rw - ./handbrake/storage:/storage:ro - ${FILE_PATH}/transcode/input_movies:/watch:rw - ${FILE_PATH}/transcode/input_tvshows:/watch2:rw - ${FILE_PATH}/jellyfin/movies:/output_movies:rw - ${FILE_PATH}/jellyfin/tvshows:/output_tvshows:rw environment: - AUTOMATED_CONVERSION_PRESET=General/Halia default 1080p - AUTOMATED_CONVERSION_OUTPUT_DIR=/output_movies - AUTOMATED_CONVERSION_OUTPUT_DIR_2=/output_tvshows depends_on: - wireguard_torr