{"id":148,"date":"2025-11-16T15:18:47","date_gmt":"2025-11-16T15:18:47","guid":{"rendered":"https:\/\/alliehere.com\/blog\/?p=148"},"modified":"2025-11-25T00:28:03","modified_gmt":"2025-11-25T00:28:03","slug":"building-the-ultimate-privacy-focused-media-automation-stack-with-docker-2","status":"publish","type":"post","link":"https:\/\/alliehere.com\/blog\/2025\/11\/16\/building-the-ultimate-privacy-focused-media-automation-stack-with-docker-2\/","title":{"rendered":"Building the Ultimate Privacy-Focused Media Automation Stack with Docker"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>A complete guide to running Gluetun, Prowlarr, qBittorrent, Radarr, Sonarr &amp; Jellyseerr in a single stack<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want a fully automated, privacy-friendly, hands-off media workflow, a modern Docker stack can handle everything for you \u2013 searching, downloading, organizing, and even request management. In this post, I&#8217;ll walk through the architecture I&#8217;m using: a tightly integrated group of containers running behind a secure VPN layer with Gluetun, plus Prowlarr (Jackett + FlareSolverr replacement) alongside qBittorrent, Radarr, Sonarr, and Jellyseerr.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why This Stack?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 Traffic privacy with Gluetun<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Gluetun acts as a VPN gateway that other containers route their traffic through. Any container using <code>network_mode: service:gluetun<\/code> gets its outbound traffic forced through the VPN tunnel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This means:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No leaks<\/li>\n\n\n\n<li>No need for special firewall rules<\/li>\n\n\n\n<li>qBittorrent and Prowlarr are always protected<\/li>\n\n\n\n<li>You control everything from one place<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 Reliable indexers with Prowlarr<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Prowlarr bundles modern Cloudflare bypass, built-in indexer testing, and Sonarr\/Radarr sync, so you don&#8217;t need the old Jackett + FlareSolverr combo. Use it as the single indexer hub feeding both apps.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 Complete media automation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Together, Radarr and Sonarr automatically:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Search for releases<\/li>\n\n\n\n<li>Send them to qBittorrent<\/li>\n\n\n\n<li>Watch for finished downloads<\/li>\n\n\n\n<li>Move &amp; rename content<\/li>\n\n\n\n<li>Keep your library clean<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Jellyseerr adds a user-friendly, Netflix-like interface for making requests and having Radarr\/Sonarr handle everything behind the scenes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 Fully Dockerized = Easy to manage<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Everything runs in isolated containers with persistent volumes. You can tear the stack down, rebuild it, or migrate to new hardware without reconfiguring each app.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How the Stack Works (Architecture Overview)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s how all the pieces connect:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Gluetun<\/strong> \u2013 Acts as the central gateway. qBittorrent (and optionally Prowlarr) use <code>network_mode: service:gluetun<\/code> which forces all traffic through the VPN container.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Prowlarr<\/strong> \u2013 Indexer aggregator with built-in Cloudflare bypass that syncs to Radarr and Sonarr. It replaces both Jackett and FlareSolverr.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>qBittorrent<\/strong> \u2013 Handles all downloads, but only behind Gluetun for privacy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Radarr &amp; Sonarr<\/strong> \u2013 Automation brains for movies and TV.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Jellyseerr<\/strong> \u2013 Request management \u2014 users can ask for a movie\/series, Jellyseerr sends the request to Radarr\/Sonarr, and everything happens automatically.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Traffic Flow:<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Internet\n    \u2193\nGluetun (VPN Tunnel)\n    \u2193\n    \u251c\u2500\u2500 qBittorrent\n    \u2514\u2500\u2500 Prowlarr (via Gluetun)\n\nProwlarr &gt; Radarr &amp; Sonarr \u2190 Jellyseerr<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">My Docker Stack (Compose)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the complete <code>docker-compose.yml<\/code> configuration:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>version: '3.8'\n\nservices:\n  gluetun:\n    image: qmcgaw\/gluetun:latest\n    container_name: gluetun\n    restart: unless-stopped\n    ports:\n      - \"8080:8080\" # qBittorrent Web UI\n      # If you run Prowlarr through Gluetun, also expose 9696:9696 here.\n    environment:\n      - VPN_SERVICE_PROVIDER=private internet access\n      - VPN_TYPE=openvpn\n      - OPENVPN_USER=p3156598\n      - OPENVPN_PASSWORD=EjHfWgb9uC\n      - SERVER_REGIONS=CA Toronto\n      - PORT_FORWARDING=on\n      - FIREWALL_INPUT_PORTS=8080\n      - FIREWALL_VPN_INPUT_PORTS=8080\n      - TZ=America\/Chicago\n      #- DOT=off\n      #- DNS_ADDRESS=9.9.9.9,149.112.112.112\n    cap_add:\n      - NET_ADMIN\n    devices:\n      - \/dev\/net\/tun:\/dev\/net\/tun\n\n  qbittorrent:\n    image: lscr.io\/linuxserver\/qbittorrent:latest\n    container_name: qbittorrent\n    restart: unless-stopped\n    # Route this container through the Gluetun network\n    network_mode: service:gluetun\n    environment:\n      - PUID=1000 # Replace with your user ID\n      - PGID=1000 # Replace with your group ID\n      - TZ=America\/Chicago\n      - WEBUI_PORT=8080\n    volumes:\n      - \/home\/allie\/.config\/qbittorrent\/config:\/config\n      - \/mnt\/cent\/data2tb\/download:\/downloads\n\n  radarr:\n    image: lscr.io\/linuxserver\/radarr:latest\n    container_name: radarr\n    restart: unless-stopped\n    # Radarr uses your normal internet connection\n    ports:\n      - \"7878:7878\" # Expose Radarr web UI\n    environment:\n      - PUID=1000\n      - PGID=1000\n      - TZ=America\/Chicago\n    volumes:\n      - \/home\/allie\/.config\/radarr\/data:\/config\n      - \/mnt\/cent\/data3tb\/movies:\/movies\n      - \/mnt\/cent\/data2tb\/download:\/downloads # Same downloads folder as qBittorrent\n\n  sonarr:\n    image: lscr.io\/linuxserver\/sonarr:latest\n    container_name: sonarr\n    environment:\n      - PUID=1000\n      - PGID=1000\n      - TZ=America\/Chicago\n    volumes:\n      - \/home\/allie\/.config\/sonarr\/data:\/config\n      - \/mnt\/cent\/data2tb\/tv:\/tv #optional\n      - \/mnt\/cent\/data2tb\/download:\/downloads #optional\n    ports:\n      - 8989:8989\n    restart: unless-stopped\n\n  prowlarr:\n    image: lscr.io\/linuxserver\/prowlarr:latest\n    container_name: prowlarr\n    # network_mode: service:gluetun # uncomment to tunnel Prowlarr too, then expose 9696 via gluetun\n    environment:\n      - PUID=1000\n      - PGID=1000\n      - TZ=America\/Chicago\n    volumes:\n      - \/home\/allie\/.config\/prowlarr\/data:\/config\n    ports:\n      - 9696:9696\n    restart: unless-stopped<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">version<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">3.8<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">services<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  gluetun<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    image<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">qmcgaw<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">gluetun<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9\">latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    container_name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">gluetun<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    restart<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">unless<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">stopped<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ports<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">8080:8080<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> # <\/span><span style=\"color: #D8DEE9\">qBittorrent<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Web<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">UI<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      # <\/span><span style=\"color: #D8DEE9\">If<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">you<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">run<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Prowlarr<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">through<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Gluetun<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">also<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">expose<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">9696<\/span><span style=\"color: #D8DEE9FF\">:<\/span><span style=\"color: #B48EAD\">9696<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">here<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    environment<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">VPN_SERVICE_PROVIDER<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">private<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">internet<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">access<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">VPN_TYPE<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">openvpn<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">OPENVPN_USER<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">p3156598<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">OPENVPN_PASSWORD<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">EjHfWgb9uC<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">SERVER_REGIONS<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">CA<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Toronto<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PORT_FORWARDING<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">on<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">FIREWALL_INPUT_PORTS<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">8080<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">FIREWALL_VPN_INPUT_PORTS<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">8080<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">TZ<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">America<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">Chicago<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      #<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">DOT<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">off<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      #<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">DNS_ADDRESS<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">9.9<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #B48EAD\">9.9<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">149.112<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #B48EAD\">112.112<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    cap_add<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">NET_ADMIN<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    devices<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">dev<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">net<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">tun<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">dev<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">net<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">tun<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  qbittorrent<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    image<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">lscr<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">io<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">linuxserver<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">qbittorrent<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9\">latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    container_name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">qbittorrent<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    restart<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">unless<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">stopped<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    # <\/span><span style=\"color: #D8DEE9\">Route<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">this<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">container<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">through<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Gluetun<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">network<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    network_mode<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> service<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9\">gluetun<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    environment<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PUID<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1000<\/span><span style=\"color: #D8DEE9FF\"> # <\/span><span style=\"color: #D8DEE9\">Replace<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">with<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">your<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">user<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ID<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PGID<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1000<\/span><span style=\"color: #D8DEE9FF\"> # <\/span><span style=\"color: #D8DEE9\">Replace<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">with<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">your<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">group<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ID<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">TZ<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">America<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">Chicago<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">WEBUI_PORT<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">8080<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    volumes<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">home<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">allie<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">config<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">qbittorrent<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">config<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">config<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">cent<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">data2tb<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">download<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">downloads<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  radarr<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    image<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">lscr<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">io<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">linuxserver<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">radarr<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9\">latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    container_name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">radarr<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    restart<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">unless<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">stopped<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    # <\/span><span style=\"color: #D8DEE9\">Radarr<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">uses<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">your<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">normal<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">internet<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">connection<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ports<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">7878:7878<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> # <\/span><span style=\"color: #D8DEE9\">Expose<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Radarr<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">web<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">UI<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    environment<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PUID<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PGID<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">TZ<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">America<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">Chicago<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    volumes<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">home<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">allie<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">config<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">radarr<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">config<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">cent<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">data3tb<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">movies<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">movies<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">cent<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">data2tb<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">download<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">downloads<\/span><span style=\"color: #D8DEE9FF\"> # <\/span><span style=\"color: #D8DEE9\">Same<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">downloads<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">folder<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> qBittorrent<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  sonarr<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    image<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">lscr<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">io<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">linuxserver<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">sonarr<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9\">latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    container_name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">sonarr<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    environment<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PUID<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PGID<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">TZ<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">America<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">Chicago<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    volumes<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">home<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">allie<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">config<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">sonarr<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">config<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">cent<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">data2tb<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">tv<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">tv<\/span><span style=\"color: #D8DEE9FF\"> #<\/span><span style=\"color: #D8DEE9\">optional<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">cent<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">data2tb<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">download<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">downloads<\/span><span style=\"color: #D8DEE9FF\"> #<\/span><span style=\"color: #D8DEE9\">optional<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ports<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">8989<\/span><span style=\"color: #D8DEE9FF\">:<\/span><span style=\"color: #B48EAD\">8989<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    restart<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">unless<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">stopped<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  prowlarr<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    image<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">lscr<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">io<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">linuxserver<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">prowlarr<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9\">latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    container_name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">prowlarr<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    # network_mode<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> service<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9\">gluetun<\/span><span style=\"color: #D8DEE9FF\"> # <\/span><span style=\"color: #D8DEE9\">uncomment<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">tunnel<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Prowlarr<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">too<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">then<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">expose<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">9696<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">via<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">gluetun<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    environment<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PUID<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PGID<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">TZ<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">America<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">Chicago<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    volumes<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">home<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">allie<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">config<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">prowlarr<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">config<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    ports<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">9696<\/span><span style=\"color: #D8DEE9FF\">:<\/span><span style=\"color: #B48EAD\">9696<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    restart<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">unless<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">stopped<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Use your own paths for volumes, of course.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Key Tips for a Smooth Setup<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Make sure downloads are shared consistently<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Everything needs the same <code>\/downloads<\/code> path so Radarr\/Sonarr can see what qBittorrent downloaded.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Add Sonarr and Radarr to Prowlarr<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s the quick wiring process:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open Prowlarr at <code>http:\/\/&lt;your-host&gt;:9696<\/code> and grab your API key (Settings \u2192 General). You\u2019ll use this everywhere.<\/li>\n\n\n\n<li>Add your download client (Settings \u2192 Download Clients \u2192 Add \u2192 qBittorrent). Host: <code>host.docker.internal<\/code> (or <code>172.17.0.1<\/code>) on port <code>8080<\/code>. Username\/password = what you set in qBittorrent. Hit \u201cTest\u201d then \u201cSave\u201d.<\/li>\n\n\n\n<li>Add Radarr (Settings \u2192 Apps \u2192 Add \u2192 Radarr). URL: <code>http:\/\/radarr:7878<\/code> if they share a Docker network, otherwise <code>http:\/\/host.docker.internal:7878<\/code>. API key comes from Radarr (Settings \u2192 General). Pick a sync profile (usually \u201cFull Sync\u201d) and \u201cAdd &amp; Test\u201d.<\/li>\n\n\n\n<li>Add Sonarr the same way: URL <code>http:\/\/sonarr:8989<\/code> (or <code>http:\/\/host.docker.internal:8989<\/code>), paste the Sonarr API key, choose the sync profile, then save.<\/li>\n\n\n\n<li>Add indexers in Prowlarr (Indexers \u2192 Add). Turn on \u201cAdd to Apps\u201d so Radarr\/Sonarr inherit the indexer automatically. For Cloudflare-heavy sites, enable Prowlarr\u2019s built-in Cloudflare bypass where available; you no longer need FlareSolverr.<\/li>\n\n\n\n<li>Verify search from Prowlarr (left sidebar \u2192 Search) and confirm that results appear in Radarr\/Sonarr and push to qBittorrent.<\/li>\n<\/ul>\n\n\n<p><!-- \/wp:post-content --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\">3. Expose only what needs to be exposed<\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Only apps with a web UI should have ports published. Containers behind Gluetun do not open ports themselves.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\">4. Let Jellyseerr automate requests<\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Once configured, you barely touch the system. Users request \u2192 Jellyseerr \u2192 Radarr\/Sonarr \u2192 qBittorrent \u2192 Organized.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\">5. qBittorrent: ports, auth, and categories<\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Inside the Web UI, set the Web UI port to match Gluetun\u2019s exposed <code>8080<\/code>. Turn on Web UI authentication; use a strong username\/password and switch the default \u201cadmin\/adminadmin\u201d. Create categories (e.g., <code>movies<\/code>, <code>tv<\/code>) and map them to specific folders under <code>\/downloads<\/code> so Radarr\/Sonarr can grab completed files without guessing paths.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\">6. Radarr\/Sonarr: root folders &amp; completed download handling<\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>In each app, add a root folder that matches the mounted paths (<code>\/movies<\/code> for Radarr, <code>\/tv<\/code> for Sonarr). Under Settings \u2192 Download Clients, point to qBittorrent, tick \u201cCompleted Download Handling,\u201d and set the category to match what you created (<code>movies<\/code> or <code>tv<\/code>). This keeps imports clean and prevents cross-contamination between TV and movie downloads.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\">7. Jellyseerr: hook to Radarr\/Sonarr and control access<\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>Connect Jellyseerr to both Radarr and Sonarr via Settings \u2192 Services (URLs <code>http:\/\/radarr:7878<\/code> and <code>http:\/\/sonarr:8989<\/code> on the shared network). Set default quality profiles and root folders there. Enable authentication (e.g., Plex, Jellyfin, or local accounts) and toggle approval flow if you want to review requests before they hit Radarr\/Sonarr.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<h3 class=\"wp-block-heading\">8. Gluetun: VPN sanity checks<\/h3>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>After starting the stack, check Gluetun logs for \u201cVPN connected\u201d and \u201cPublic IP\u201d to confirm the tunnel is up. If your VPN supports port forwarding, verify the forwarded port shows in logs; qBittorrent will use it automatically. Keep the timezone and DNS set explicitly to avoid surprises when troubleshooting.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading --><\/p>\n<h2 class=\"wp-block-heading\">Benefits of Running Everything Behind Docker<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><strong>Portability<\/strong><br \/>Move your entire media setup to a new machine in minutes.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><strong>Reproducibility<\/strong><br \/>Your Compose file becomes documentation \u2013 you always know exactly how things are configured.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><strong>Security<\/strong><br \/>Gluetun + isolated networks = no accidental IP leaks.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p><strong>Automation<\/strong><br \/>You spend less time babysitting and more time enjoying your library.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:heading --><\/p>\n<h2 class=\"wp-block-heading\">Final Thoughts<\/h2>\n<p><!-- \/wp:heading --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>This stack is one of the cleanest, most efficient ways to automate your entire media pipeline while keeping traffic hidden behind a VPN. It&#8217;s reliable, low-maintenance, and easy to extend. You can add more indexers, switch torrent clients, or even integrate a full Jellyfin\/Plex library on top of it.<\/p>\n<p><!-- \/wp:paragraph --><\/p>\n<p><!-- wp:paragraph --><\/p>\n<p>If you&#8217;re looking for a private, powerful home media automation setup, this combo of Gluetun, Prowlarr, qBittorrent, Radarr, Sonarr, and Jellyseerr is hard to beat.<\/p>\n<p><!-- \/wp:paragraph --><\/p>","protected":false},"excerpt":{"rendered":"<p>A complete guide to running Gluetun, Prowlarr, qBittorrent, Radarr, Sonarr &amp; Jellyseerr in a single stack If you want a fully automated, privacy-friendly, hands-off media workflow, a modern Docker stack can handle everything for you \u2013 searching, downloading, organizing, and even request management. In this post, I&#8217;ll walk through the architecture I&#8217;m using: a tightly&#8230;<\/p>\n","protected":false},"author":1,"featured_media":123,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-148","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","article","has-excerpt","has-avatar","has-author","has-date","has-comment-count","has-category-meta","has-read-more","has-title","has-post-media","thumbnail-"],"jetpack_featured_media_url":"https:\/\/alliehere.com\/blog\/wp-content\/uploads\/2025\/11\/ChatGPT-Image-Nov-16-2025-07_51_10-AM.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/posts\/148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/comments?post=148"}],"version-history":[{"count":24,"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/posts\/148\/revisions"}],"predecessor-version":[{"id":208,"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/posts\/148\/revisions\/208"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/media\/123"}],"wp:attachment":[{"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/media?parent=148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/categories?post=148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alliehere.com\/blog\/wp-json\/wp\/v2\/tags?post=148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}