qBittorentVPN
version: "3.3"
services:
  qbittorrentvpn:
    image: trigus42/qbittorrentvpn
    container_name: qbittorrentvpn
    privileged: true   
    environment:
      ## Not needed when using Wireguard
      # - VPN_USERNAME=myvpnusername
      # - VPN_PASSWORD=myvpnpassword
      - PUID=998 #optional
      - PGID=100 #optional
      ## This environment variable doesn't exist
      # - WEBUI_PORT_ENV=8991 #optional
      ## This neither
      # - INCOMING_PORT_ENV=8999 #optional
      - VPN_ENABLED=yes
      - LAN_NETWORK=192.168.1.0/24 # Or 192.168.0.0/24 depending on network
      - NAME_SERVERS=1.1.1.1,1.0.0.1
    ports:
      ## As you mentioned you need to set WebUI\HostHeaderValidation=false in the qBittorrent.conf but then this is perfectly fine
      - 8991:8080
      ## You probably don't want to be directly connectable (circumventing the VPN)
      ## If you want to be connectable, you have to use a VPN that allows port forwarding (you don't have to connectable for most things, except if you use private trackers)
      ## This didn't do much anyway cause you didn't allow the ports in the firewall using ADDITIONAL_PORTS
      # - 8999:8999
      # - 8999:8999/udp
    volumes:
      - /srv/path/Files/QBittorentVPN/config:/config
      - /srv/path/Files/QBittorentVPN/downloads:/downloads
    restart: unless-stopped
Optionnal : set WebUI\HostHeaderValidation=false in the qBittorrent.conf
Default creditentials 
admin
adminadmin
DOESN'T WORK WITH VIVALDI BROWSER !
| Variable | Required | Function | Example | Default | 
|---|---|---|---|---|
VPN_ENABLED | 
Yes | Enable VPN (yes/no)? | VPN_ENABLED=yes | 
yes | 
VPN_TYPE | 
Yes | WireGuard or OpenVPN (wireguard/openvpn)? | VPN_TYPE=wireguard | 
openvpn | 
VPN_USERNAME | 
No | If username and password provided, configures ovpn file automatically | VPN_USERNAME=ad8f64c02a2de | 
|
VPN_PASSWORD | 
No | If username and password provided, configures ovpn file automatically | VPN_PASSWORD=ac98df79ed7fb | 
|
LAN_NETWORK | 
Yes (atleast one) | Comma delimited local Network's with CIDR notation | LAN_NETWORK=192.168.0.0/24,10.10.0.0/24 | 
|
ENABLE_SSL | 
No | Let the container handle SSL (yes/no)? | ENABLE_SSL=yes | 
yes | 
NAME_SERVERS | 
No | Comma delimited name servers | NAME_SERVERS=1.1.1.1,1.0.0.1 | 
1.1.1.1,1.0.0.1 | 
PUID | 
No | UID applied to /config files and /downloads | PUID=99 | 
99 | 
PGID | 
No | GID applied to /config files and /downloads | PGID=100 | 
100 | 
UMASK | 
No | UMASK=002 | 
002 | 
|
HEALTH_CHECK_HOST | 
No | This is the host or IP that the healthcheck script will use to check an active connection | HEALTH_CHECK_HOST=one.one.one.one | 
one.one.one.one | 
HEALTH_CHECK_INTERVAL | 
No | This is the time in seconds that the container waits to see if the internet connection still works (check if VPN died) | HEALTH_CHECK_INTERVAL=300 | 
300 | 
HEALTH_CHECK_SILENT | 
No | Set to 1 to supress the 'Network is up' message. Defaults to 1 if unset. | 
HEALTH_CHECK_SILENT=1 | 
1 | 
INSTALL_PYTHON3 | 
No | Set this to yes to let the container install Python3. | 
INSTALL_PYTHON3=yes | 
no | 
ADDITIONAL_PORTS | 
No | Adding a comma delimited list of ports will allow these ports via the iptables script. | ADDITIONAL_PORTS=1234,8112 |