name: Arr-Stack

services:
  gluetun:
    image: qmcgaw/gluetun:v3
    cap_add:
      - NET_ADMIN
    network_mode: bridge
    ports:
      # Gluetun
      - 18888:8888/tcp # Tinyproxy
      - 18388:8388/tcp # Shadowsocks
      - 18388:8388/udp # Shadowsocks
      - 18000:8000/tcp # Built-in HTTP control server
      # QBittorrent 
      - 18998:18998 # qBittorrent UI
      - 16881:16881
      - 16881:16881/udp
      - 18112:8112 # deluge
    environment:
      - VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER}
      - TZ=${TZ}
      - OPENVPN_USER=${OPENVPN_USER} # Your username
      - OPENVPN_PASSWORD=${OPENVPN_PASSWORD} # Your password
      - SERVER_REGIONS=${SERVER_REGIONS} # Your region, e.g. US East. No quotes.
      - FIREWALL_OUTBOUND_SUBNETS=${FIREWALL_OUTBOUND_SUBNETS}
      - SHADOWSOCKS=${SHADOWSOCKS}
      - SHADOWSOCKS_PASSWORD=${SHADOWSOCKS_PASSWORD}
      - HTTPPROXY=${HTTPPROXY} # Enable the internal HTTP proxy
      - HTTPPROXY_STEALTH=${HTTPPROXY_STEALTH} # Stealth mode means HTTP proxy headers are not added to your requests
    restart: unless-stopped

  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
      - WEBUI_PORT=18998
      - TORRENTING_PORT=16881
    volumes:
      - ${ROOT}/qBittorrent/config:/config
      - ${MEDIA}/unsorted:/downloads
    restart: unless-stopped
    network_mode: service:gluetun
    depends_on:
      - gluetun

  deluge:
    image: lscr.io/linuxserver/deluge
    restart: unless-stopped
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    volumes:
      - ${MEDIA}/unsorted:/downloads
      - ${ROOT}/Config/deluge:/config
    network_mode: service:gluetun 
    depends_on:
      - gluetun