arch-qbittorrentvpn¶
| Description / name | Input element |
|---|---|
| Your domain name |
Overview¶
arch-qbittorrentvpn is a qbittorrent container which includes OpenVPN and WireGuard to ensure a secure and private connection to the Internet, including use of iptables to prevent IP leakage when the tunnel is down. It also includes Privoxy to allow unfiltered access to index sites.
Deployment¶
In /opt/sandbox/settings.yml, adjust the following:
qbittorrentvpn:
vpn_pass: your_vpn_password
vpn_prov: pia
vpn_user: your_vpn_username
vpn_client: wireguard
As described in the github readme linked above, then run the role:
sb install sandbox-qbittorrentvpn
Step 01 - Please login in to ProtonVPN-Account
Step 02 - Under "OpenVPN / IKEv2 username" section —> Copy this OpenVPN / IKEv2 username [Yeah, somehow this username is required for Wireguard]
Step 03 - Go to ProtonVPN-Downloads
Step 04 - Scroll down to "WireGuard configuration" - Please fill/select your desired settings for the configuration.
Step 05 - Under "3. Select VPN options" —> Turn on "NAT-PMP (Port Forwarding)" —> Now download the config file and rename it to wg0.conf
Now, In /opt/sandbox/settings.yml, adjust the following:
qbittorrentvpn:
vpn_pass: "protonvpn-account-password"
vpn_prov: "protonvpn"
vpn_user: "<OpenVPN / IKEv2 username>+pmp" #which we've copied from Step 02
vpn_client: "wireguard"
qbittorrentvpn:
vpn_pass: "xdfasdicmb"
vpn_prov: "protonvpn"
vpn_user: "zuqWGtyy7SMGQM8C+pmp"
vpn_client: "wireguard"
sb install sandbox-qbittorrentvpn
While the above command runs, go to this directory /opt/qbittorrentvpn/wireguard (Use FTP file manager like WinSCP)
if you don't see this directory wait for few seconds, while the previous command creates this.
Now copy & paste your wg0.conf' file (Refer Step 05) in this directory & Wait for the command line to complete.
If everything went well, you should seePlaybook /opt/sandbox/sandbox.yml executed successfully.`
Usage¶
Visit https://qbittorrentvpn.iYOUR_DOMAIN_NAMEi.
Role Defaults¶
Use the Inventory to customize variables. (1)
-
This role supports multiple instances via
qbittorrentvpn_instances.Example override
qbittorrentvpn_role_web_subdomain: "custom"Applies to all instances of qbittorrentvpn
qbittorrentvpn2_web_subdomain: "custom2"Applies to the instance named qbittorrentvpn2
Avoid overriding variables ending in
_defaultWhen overriding variables that end in
_default(likeqbittorrentvpn_docker_envs_default), you replace the entire default configuration. Future updates that add new default values will not be applied to your setup, potentially breaking functionality.Instead, use the corresponding
_customvariable (likeqbittorrentvpn_docker_envs_custom) to add your changes. Custom values are merged with defaults, ensuring you receive updates.
qbittorrentvpn_instances
# Type: list
qbittorrentvpn_instances: ["qbittorrentvpn"]
Example Override
# Type: list
qbittorrentvpn_instances: ["qbittorrentvpn", "qbittorrentvpn2"]
qbittorrentvpn_log_level_daemonqbittorrentvpn2_log_level_daemon
# Type: string
qbittorrentvpn_log_level_daemon: info
# Type: string
qbittorrentvpn2_log_level_daemon: info
qbittorrentvpn_log_level_webqbittorrentvpn2_log_level_web
# Type: string
qbittorrentvpn_log_level_web: info
# Type: string
qbittorrentvpn2_log_level_web: info
qbittorrentvpn_name_serversqbittorrentvpn2_name_servers
# Type: string
qbittorrentvpn_name_servers: "84.200.69.80,1.1.1.1,84.200.70.40,1.0.0.1"
# Type: string
qbittorrentvpn2_name_servers: "84.200.69.80,1.1.1.1,84.200.70.40,1.0.0.1"
qbittorrentvpn_lan_networkqbittorrentvpn2_lan_network
# Type: string
qbittorrentvpn_lan_network: "172.19.0.0/16"
# Type: string
qbittorrentvpn2_lan_network: "172.19.0.0/16"
qbittorrentvpn_role_web_subdomainqbittorrentvpn2_web_subdomain
# Type: string
qbittorrentvpn_role_web_subdomain: "{{ qbittorrentvpn_name }}"
# Type: string
qbittorrentvpn2_web_subdomain: "{{ qbittorrentvpn_name }}"
qbittorrentvpn_role_web_domainqbittorrentvpn2_web_domain
# Type: string
qbittorrentvpn_role_web_domain: "{{ user.domain }}"
# Type: string
qbittorrentvpn2_web_domain: "{{ user.domain }}"
qbittorrentvpn_role_web_portqbittorrentvpn2_web_port
# Type: string
qbittorrentvpn_role_web_port: "8080"
# Type: string
qbittorrentvpn2_web_port: "8080"
qbittorrentvpn_role_web_urlqbittorrentvpn2_web_url
# Type: string
qbittorrentvpn_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='qbittorrentvpn') + '.' + lookup('role_var', '_web_domain', role='qbittorrentvpn')
if (lookup('role_var', '_web_subdomain', role='qbittorrentvpn') | length > 0)
else lookup('role_var', '_web_domain', role='qbittorrentvpn')) }}"
# Type: string
qbittorrentvpn2_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='qbittorrentvpn') + '.' + lookup('role_var', '_web_domain', role='qbittorrentvpn')
if (lookup('role_var', '_web_subdomain', role='qbittorrentvpn') | length > 0)
else lookup('role_var', '_web_domain', role='qbittorrentvpn')) }}"
qbittorrentvpn_role_dns_recordqbittorrentvpn2_dns_record
# Type: string
qbittorrentvpn_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='qbittorrentvpn') }}"
# Type: string
qbittorrentvpn2_dns_record: "{{ lookup('role_var', '_web_subdomain', role='qbittorrentvpn') }}"
qbittorrentvpn_role_dns_zoneqbittorrentvpn2_dns_zone
# Type: string
qbittorrentvpn_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='qbittorrentvpn') }}"
# Type: string
qbittorrentvpn2_dns_zone: "{{ lookup('role_var', '_web_domain', role='qbittorrentvpn') }}"
qbittorrentvpn_role_dns_proxyqbittorrentvpn2_dns_proxy
# Type: bool (true/false)
qbittorrentvpn_role_dns_proxy: "{{ dns_proxied }}"
# Type: bool (true/false)
qbittorrentvpn2_dns_proxy: "{{ dns_proxied }}"
qbittorrentvpn_role_traefik_sso_middlewareqbittorrentvpn2_traefik_sso_middleware
# Type: string
qbittorrentvpn_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"
# Type: string
qbittorrentvpn2_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"
qbittorrentvpn_role_traefik_middleware_defaultqbittorrentvpn2_traefik_middleware_default
# Type: string
qbittorrentvpn_role_traefik_middleware_default: "{{ traefik_default_middleware }}"
# Type: string
qbittorrentvpn2_traefik_middleware_default: "{{ traefik_default_middleware }}"
qbittorrentvpn_role_traefik_middleware_customqbittorrentvpn2_traefik_middleware_custom
# Type: string
qbittorrentvpn_role_traefik_middleware_custom: ""
# Type: string
qbittorrentvpn2_traefik_middleware_custom: ""
qbittorrentvpn_role_traefik_certresolverqbittorrentvpn2_traefik_certresolver
# Type: string
qbittorrentvpn_role_traefik_certresolver: "{{ traefik_default_certresolver }}"
# Type: string
qbittorrentvpn2_traefik_certresolver: "{{ traefik_default_certresolver }}"
qbittorrentvpn_role_traefik_enabledqbittorrentvpn2_traefik_enabled
# Type: bool (true/false)
qbittorrentvpn_role_traefik_enabled: true
# Type: bool (true/false)
qbittorrentvpn2_traefik_enabled: true
qbittorrentvpn_role_traefik_api_enabledqbittorrentvpn2_traefik_api_enabled
# Type: bool (true/false)
qbittorrentvpn_role_traefik_api_enabled: true
# Type: bool (true/false)
qbittorrentvpn2_traefik_api_enabled: true
qbittorrentvpn_role_traefik_api_endpointqbittorrentvpn2_traefik_api_endpoint
# Type: string
qbittorrentvpn_role_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/command`) || PathPrefix(`/query`) || PathPrefix(`/login`) || PathPrefix(`/sync`)"
# Type: string
qbittorrentvpn2_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/command`) || PathPrefix(`/query`) || PathPrefix(`/login`) || PathPrefix(`/sync`)"
Container
qbittorrentvpn_role_docker_containerqbittorrentvpn2_docker_container
# Type: string
qbittorrentvpn_role_docker_container: "{{ qbittorrentvpn_name }}"
# Type: string
qbittorrentvpn2_docker_container: "{{ qbittorrentvpn_name }}"
Image
qbittorrentvpn_role_docker_image_pullqbittorrentvpn2_docker_image_pull
# Type: bool (true/false)
qbittorrentvpn_role_docker_image_pull: true
# Type: bool (true/false)
qbittorrentvpn2_docker_image_pull: true
qbittorrentvpn_role_docker_image_repoqbittorrentvpn2_docker_image_repo
# Type: string
qbittorrentvpn_role_docker_image_repo: "binhex/arch-qbittorrentvpn"
# Type: string
qbittorrentvpn2_docker_image_repo: "binhex/arch-qbittorrentvpn"
qbittorrentvpn_role_docker_image_tagqbittorrentvpn2_docker_image_tag
# Type: string
qbittorrentvpn_role_docker_image_tag: "latest"
# Type: string
qbittorrentvpn2_docker_image_tag: "latest"
qbittorrentvpn_role_docker_imageqbittorrentvpn2_docker_image
# Type: string
qbittorrentvpn_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='qbittorrentvpn') }}:{{ lookup('role_var', '_docker_image_tag', role='qbittorrentvpn') }}"
# Type: string
qbittorrentvpn2_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='qbittorrentvpn') }}:{{ lookup('role_var', '_docker_image_tag', role='qbittorrentvpn') }}"
Envs
qbittorrentvpn_role_docker_envs_defaultqbittorrentvpn2_docker_envs_default
# Type: dict
qbittorrentvpn_role_docker_envs_default:
PUID: "{{ uid }}"
PGID: "{{ gid }}"
TZ: "{{ tz }}"
UMASK_SET: "002"
VPN_ENABLED: "yes"
VPN_USER: "{{ qbittorrentvpn.vpn_user | default('username', true) }}"
VPN_PASS: "{{ qbittorrentvpn.vpn_pass | default('password', true) }}"
VPN_PROV: "{{ qbittorrentvpn.vpn_prov | default('pia', true) }}"
VPN_CLIENT: "{{ qbittorrentvpn.vpn_client | default('wireguard', true) }}"
STRICT_PORT_FORWARD: "yes"
ENABLE_PRIVOXY: "no"
LAN_NETWORK: "{{ qbittorrentvpn_lan_network }}"
NAME_SERVERS: "{{ qbittorrentvpn_name_servers }}"
# Type: dict
qbittorrentvpn2_docker_envs_default:
PUID: "{{ uid }}"
PGID: "{{ gid }}"
TZ: "{{ tz }}"
UMASK_SET: "002"
VPN_ENABLED: "yes"
VPN_USER: "{{ qbittorrentvpn.vpn_user | default('username', true) }}"
VPN_PASS: "{{ qbittorrentvpn.vpn_pass | default('password', true) }}"
VPN_PROV: "{{ qbittorrentvpn.vpn_prov | default('pia', true) }}"
VPN_CLIENT: "{{ qbittorrentvpn.vpn_client | default('wireguard', true) }}"
STRICT_PORT_FORWARD: "yes"
ENABLE_PRIVOXY: "no"
LAN_NETWORK: "{{ qbittorrentvpn_lan_network }}"
NAME_SERVERS: "{{ qbittorrentvpn_name_servers }}"
qbittorrentvpn_role_docker_envs_customqbittorrentvpn2_docker_envs_custom
# Type: dict
qbittorrentvpn_role_docker_envs_custom: {}
# Type: dict
qbittorrentvpn2_docker_envs_custom: {}
Volumes
qbittorrentvpn_role_docker_volumes_defaultqbittorrentvpn2_docker_volumes_default
# Type: list
qbittorrentvpn_role_docker_volumes_default:
- "{{ lookup('role_var', '_paths_location', role='qbittorrentvpn') }}:/config"
- "{{ server_appdata_path }}/scripts:/scripts"
# Type: list
qbittorrentvpn2_docker_volumes_default:
- "{{ lookup('role_var', '_paths_location', role='qbittorrentvpn') }}:/config"
- "{{ server_appdata_path }}/scripts:/scripts"
qbittorrentvpn_role_docker_volumes_customqbittorrentvpn2_docker_volumes_custom
# Type: list
qbittorrentvpn_role_docker_volumes_custom: []
# Type: list
qbittorrentvpn2_docker_volumes_custom: []
Hostname
qbittorrentvpn_role_docker_hostnameqbittorrentvpn2_docker_hostname
# Type: string
qbittorrentvpn_role_docker_hostname: "{{ qbittorrentvpn_name }}"
# Type: string
qbittorrentvpn2_docker_hostname: "{{ qbittorrentvpn_name }}"
Networks
qbittorrentvpn_role_docker_networks_aliasqbittorrentvpn2_docker_networks_alias
# Type: string
qbittorrentvpn_role_docker_networks_alias: "{{ qbittorrentvpn_name }}"
# Type: string
qbittorrentvpn2_docker_networks_alias: "{{ qbittorrentvpn_name }}"
qbittorrentvpn_role_docker_networks_defaultqbittorrentvpn2_docker_networks_default
# Type: list
qbittorrentvpn_role_docker_networks_default: []
# Type: list
qbittorrentvpn2_docker_networks_default: []
qbittorrentvpn_role_docker_networks_customqbittorrentvpn2_docker_networks_custom
# Type: list
qbittorrentvpn_role_docker_networks_custom: []
# Type: list
qbittorrentvpn2_docker_networks_custom: []
Capabilities
qbittorrentvpn_role_docker_capabilities_defaultqbittorrentvpn2_docker_capabilities_default
# Type: list
qbittorrentvpn_role_docker_capabilities_default:
- NET_ADMIN
# Type: list
qbittorrentvpn2_docker_capabilities_default:
- NET_ADMIN
qbittorrentvpn_role_docker_capabilities_customqbittorrentvpn2_docker_capabilities_custom
# Type: list
qbittorrentvpn_role_docker_capabilities_custom: []
# Type: list
qbittorrentvpn2_docker_capabilities_custom: []
Sysctls
qbittorrentvpn_role_docker_sysctlsqbittorrentvpn2_docker_sysctls
# Type: dict
qbittorrentvpn_role_docker_sysctls:
net.ipv4.conf.all.src_valid_mark: "1"
# Type: dict
qbittorrentvpn2_docker_sysctls:
net.ipv4.conf.all.src_valid_mark: "1"
Restart Policy
qbittorrentvpn_role_docker_restart_policyqbittorrentvpn2_docker_restart_policy
# Type: string
qbittorrentvpn_role_docker_restart_policy: unless-stopped
# Type: string
qbittorrentvpn2_docker_restart_policy: unless-stopped
Stop Timeout
qbittorrentvpn_role_docker_stop_timeoutqbittorrentvpn2_docker_stop_timeout
# Type: int
qbittorrentvpn_role_docker_stop_timeout: 900
# Type: int
qbittorrentvpn2_docker_stop_timeout: 900
State
qbittorrentvpn_role_docker_stateqbittorrentvpn2_docker_state
# Type: string
qbittorrentvpn_role_docker_state: started
# Type: string
qbittorrentvpn2_docker_state: started
Privileged
qbittorrentvpn_role_docker_privilegedqbittorrentvpn2_docker_privileged
# Type: bool (true/false)
qbittorrentvpn_role_docker_privileged: true
# Type: bool (true/false)
qbittorrentvpn2_docker_privileged: true
The following advanced options are available via create_docker_container but are not defined in the role. See: docker_container module
Resource Limits
qbittorrentvpn_role_docker_blkio_weightqbittorrentvpn2_docker_blkio_weight
# Type: int
qbittorrentvpn_role_docker_blkio_weight:
# Type: int
qbittorrentvpn2_docker_blkio_weight:
qbittorrentvpn_role_docker_cpu_periodqbittorrentvpn2_docker_cpu_period
# Type: int
qbittorrentvpn_role_docker_cpu_period:
# Type: int
qbittorrentvpn2_docker_cpu_period:
qbittorrentvpn_role_docker_cpu_quotaqbittorrentvpn2_docker_cpu_quota
# Type: int
qbittorrentvpn_role_docker_cpu_quota:
# Type: int
qbittorrentvpn2_docker_cpu_quota:
qbittorrentvpn_role_docker_cpu_sharesqbittorrentvpn2_docker_cpu_shares
# Type: int
qbittorrentvpn_role_docker_cpu_shares:
# Type: int
qbittorrentvpn2_docker_cpu_shares:
qbittorrentvpn_role_docker_cpusqbittorrentvpn2_docker_cpus
# Type: string
qbittorrentvpn_role_docker_cpus:
# Type: string
qbittorrentvpn2_docker_cpus:
qbittorrentvpn_role_docker_cpuset_cpusqbittorrentvpn2_docker_cpuset_cpus
# Type: string
qbittorrentvpn_role_docker_cpuset_cpus:
# Type: string
qbittorrentvpn2_docker_cpuset_cpus:
qbittorrentvpn_role_docker_cpuset_memsqbittorrentvpn2_docker_cpuset_mems
# Type: string
qbittorrentvpn_role_docker_cpuset_mems:
# Type: string
qbittorrentvpn2_docker_cpuset_mems:
qbittorrentvpn_role_docker_kernel_memoryqbittorrentvpn2_docker_kernel_memory
# Type: string
qbittorrentvpn_role_docker_kernel_memory:
# Type: string
qbittorrentvpn2_docker_kernel_memory:
qbittorrentvpn_role_docker_memoryqbittorrentvpn2_docker_memory
# Type: string
qbittorrentvpn_role_docker_memory:
# Type: string
qbittorrentvpn2_docker_memory:
qbittorrentvpn_role_docker_memory_reservationqbittorrentvpn2_docker_memory_reservation
# Type: string
qbittorrentvpn_role_docker_memory_reservation:
# Type: string
qbittorrentvpn2_docker_memory_reservation:
qbittorrentvpn_role_docker_memory_swapqbittorrentvpn2_docker_memory_swap
# Type: string
qbittorrentvpn_role_docker_memory_swap:
# Type: string
qbittorrentvpn2_docker_memory_swap:
qbittorrentvpn_role_docker_memory_swappinessqbittorrentvpn2_docker_memory_swappiness
# Type: int
qbittorrentvpn_role_docker_memory_swappiness:
# Type: int
qbittorrentvpn2_docker_memory_swappiness:
qbittorrentvpn_role_docker_shm_sizeqbittorrentvpn2_docker_shm_size
# Type: string
qbittorrentvpn_role_docker_shm_size:
# Type: string
qbittorrentvpn2_docker_shm_size:
Security & Devices
qbittorrentvpn_role_docker_cap_dropqbittorrentvpn2_docker_cap_drop
# Type: list
qbittorrentvpn_role_docker_cap_drop:
# Type: list
qbittorrentvpn2_docker_cap_drop:
qbittorrentvpn_role_docker_cgroupns_modeqbittorrentvpn2_docker_cgroupns_mode
# Type: string
qbittorrentvpn_role_docker_cgroupns_mode:
# Type: string
qbittorrentvpn2_docker_cgroupns_mode:
qbittorrentvpn_role_docker_device_cgroup_rulesqbittorrentvpn2_docker_device_cgroup_rules
# Type: list
qbittorrentvpn_role_docker_device_cgroup_rules:
# Type: list
qbittorrentvpn2_docker_device_cgroup_rules:
qbittorrentvpn_role_docker_device_read_bpsqbittorrentvpn2_docker_device_read_bps
# Type: list
qbittorrentvpn_role_docker_device_read_bps:
# Type: list
qbittorrentvpn2_docker_device_read_bps:
qbittorrentvpn_role_docker_device_read_iopsqbittorrentvpn2_docker_device_read_iops
# Type: list
qbittorrentvpn_role_docker_device_read_iops:
# Type: list
qbittorrentvpn2_docker_device_read_iops:
qbittorrentvpn_role_docker_device_requestsqbittorrentvpn2_docker_device_requests
# Type: list
qbittorrentvpn_role_docker_device_requests:
# Type: list
qbittorrentvpn2_docker_device_requests:
qbittorrentvpn_role_docker_device_write_bpsqbittorrentvpn2_docker_device_write_bps
# Type: list
qbittorrentvpn_role_docker_device_write_bps:
# Type: list
qbittorrentvpn2_docker_device_write_bps:
qbittorrentvpn_role_docker_device_write_iopsqbittorrentvpn2_docker_device_write_iops
# Type: list
qbittorrentvpn_role_docker_device_write_iops:
# Type: list
qbittorrentvpn2_docker_device_write_iops:
qbittorrentvpn_role_docker_devicesqbittorrentvpn2_docker_devices
# Type: list
qbittorrentvpn_role_docker_devices:
# Type: list
qbittorrentvpn2_docker_devices:
qbittorrentvpn_role_docker_devices_defaultqbittorrentvpn2_docker_devices_default
# Type: string
qbittorrentvpn_role_docker_devices_default:
# Type: string
qbittorrentvpn2_docker_devices_default:
qbittorrentvpn_role_docker_groupsqbittorrentvpn2_docker_groups
# Type: list
qbittorrentvpn_role_docker_groups:
# Type: list
qbittorrentvpn2_docker_groups:
qbittorrentvpn_role_docker_security_optsqbittorrentvpn2_docker_security_opts
# Type: list
qbittorrentvpn_role_docker_security_opts:
# Type: list
qbittorrentvpn2_docker_security_opts:
qbittorrentvpn_role_docker_userqbittorrentvpn2_docker_user
# Type: string
qbittorrentvpn_role_docker_user:
# Type: string
qbittorrentvpn2_docker_user:
qbittorrentvpn_role_docker_userns_modeqbittorrentvpn2_docker_userns_mode
# Type: string
qbittorrentvpn_role_docker_userns_mode:
# Type: string
qbittorrentvpn2_docker_userns_mode:
Networking
qbittorrentvpn_role_docker_dns_optsqbittorrentvpn2_docker_dns_opts
# Type: list
qbittorrentvpn_role_docker_dns_opts:
# Type: list
qbittorrentvpn2_docker_dns_opts:
qbittorrentvpn_role_docker_dns_search_domainsqbittorrentvpn2_docker_dns_search_domains
# Type: list
qbittorrentvpn_role_docker_dns_search_domains:
# Type: list
qbittorrentvpn2_docker_dns_search_domains:
qbittorrentvpn_role_docker_dns_serversqbittorrentvpn2_docker_dns_servers
# Type: list
qbittorrentvpn_role_docker_dns_servers:
# Type: list
qbittorrentvpn2_docker_dns_servers:
qbittorrentvpn_role_docker_domainnameqbittorrentvpn2_docker_domainname
# Type: string
qbittorrentvpn_role_docker_domainname:
# Type: string
qbittorrentvpn2_docker_domainname:
qbittorrentvpn_role_docker_exposed_portsqbittorrentvpn2_docker_exposed_ports
# Type: list
qbittorrentvpn_role_docker_exposed_ports:
# Type: list
qbittorrentvpn2_docker_exposed_ports:
qbittorrentvpn_role_docker_hostsqbittorrentvpn2_docker_hosts
# Type: dict
qbittorrentvpn_role_docker_hosts:
# Type: dict
qbittorrentvpn2_docker_hosts:
qbittorrentvpn_role_docker_hosts_use_commonqbittorrentvpn2_docker_hosts_use_common
# Type: bool (true/false)
qbittorrentvpn_role_docker_hosts_use_common:
# Type: bool (true/false)
qbittorrentvpn2_docker_hosts_use_common:
qbittorrentvpn_role_docker_ipc_modeqbittorrentvpn2_docker_ipc_mode
# Type: string
qbittorrentvpn_role_docker_ipc_mode:
# Type: string
qbittorrentvpn2_docker_ipc_mode:
qbittorrentvpn_role_docker_linksqbittorrentvpn2_docker_links
# Type: list
qbittorrentvpn_role_docker_links:
# Type: list
qbittorrentvpn2_docker_links:
qbittorrentvpn_role_docker_network_modeqbittorrentvpn2_docker_network_mode
# Type: string
qbittorrentvpn_role_docker_network_mode:
# Type: string
qbittorrentvpn2_docker_network_mode:
qbittorrentvpn_role_docker_pid_modeqbittorrentvpn2_docker_pid_mode
# Type: string
qbittorrentvpn_role_docker_pid_mode:
# Type: string
qbittorrentvpn2_docker_pid_mode:
qbittorrentvpn_role_docker_portsqbittorrentvpn2_docker_ports
# Type: list
qbittorrentvpn_role_docker_ports:
# Type: list
qbittorrentvpn2_docker_ports:
qbittorrentvpn_role_docker_utsqbittorrentvpn2_docker_uts
# Type: string
qbittorrentvpn_role_docker_uts:
# Type: string
qbittorrentvpn2_docker_uts:
Storage
qbittorrentvpn_role_docker_keep_volumesqbittorrentvpn2_docker_keep_volumes
# Type: bool (true/false)
qbittorrentvpn_role_docker_keep_volumes:
# Type: bool (true/false)
qbittorrentvpn2_docker_keep_volumes:
qbittorrentvpn_role_docker_mountsqbittorrentvpn2_docker_mounts
# Type: list
qbittorrentvpn_role_docker_mounts:
# Type: list
qbittorrentvpn2_docker_mounts:
qbittorrentvpn_role_docker_storage_optsqbittorrentvpn2_docker_storage_opts
# Type: dict
qbittorrentvpn_role_docker_storage_opts:
# Type: dict
qbittorrentvpn2_docker_storage_opts:
qbittorrentvpn_role_docker_tmpfsqbittorrentvpn2_docker_tmpfs
# Type: list
qbittorrentvpn_role_docker_tmpfs:
# Type: list
qbittorrentvpn2_docker_tmpfs:
qbittorrentvpn_role_docker_volume_driverqbittorrentvpn2_docker_volume_driver
# Type: string
qbittorrentvpn_role_docker_volume_driver:
# Type: string
qbittorrentvpn2_docker_volume_driver:
qbittorrentvpn_role_docker_volumes_fromqbittorrentvpn2_docker_volumes_from
# Type: list
qbittorrentvpn_role_docker_volumes_from:
# Type: list
qbittorrentvpn2_docker_volumes_from:
qbittorrentvpn_role_docker_volumes_globalqbittorrentvpn2_docker_volumes_global
# Type: bool (true/false)
qbittorrentvpn_role_docker_volumes_global:
# Type: bool (true/false)
qbittorrentvpn2_docker_volumes_global:
qbittorrentvpn_role_docker_working_dirqbittorrentvpn2_docker_working_dir
# Type: string
qbittorrentvpn_role_docker_working_dir:
# Type: string
qbittorrentvpn2_docker_working_dir:
Monitoring & Lifecycle
qbittorrentvpn_role_docker_auto_removeqbittorrentvpn2_docker_auto_remove
# Type: bool (true/false)
qbittorrentvpn_role_docker_auto_remove:
# Type: bool (true/false)
qbittorrentvpn2_docker_auto_remove:
qbittorrentvpn_role_docker_cleanupqbittorrentvpn2_docker_cleanup
# Type: bool (true/false)
qbittorrentvpn_role_docker_cleanup:
# Type: bool (true/false)
qbittorrentvpn2_docker_cleanup:
qbittorrentvpn_role_docker_force_killqbittorrentvpn2_docker_force_kill
# Type: string
qbittorrentvpn_role_docker_force_kill:
# Type: string
qbittorrentvpn2_docker_force_kill:
qbittorrentvpn_role_docker_healthcheckqbittorrentvpn2_docker_healthcheck
# Type: dict
qbittorrentvpn_role_docker_healthcheck:
# Type: dict
qbittorrentvpn2_docker_healthcheck:
qbittorrentvpn_role_docker_healthy_wait_timeoutqbittorrentvpn2_docker_healthy_wait_timeout
# Type: int
qbittorrentvpn_role_docker_healthy_wait_timeout:
# Type: int
qbittorrentvpn2_docker_healthy_wait_timeout:
qbittorrentvpn_role_docker_initqbittorrentvpn2_docker_init
# Type: bool (true/false)
qbittorrentvpn_role_docker_init:
# Type: bool (true/false)
qbittorrentvpn2_docker_init:
qbittorrentvpn_role_docker_kill_signalqbittorrentvpn2_docker_kill_signal
# Type: string
qbittorrentvpn_role_docker_kill_signal:
# Type: string
qbittorrentvpn2_docker_kill_signal:
qbittorrentvpn_role_docker_log_driverqbittorrentvpn2_docker_log_driver
# Type: string
qbittorrentvpn_role_docker_log_driver:
# Type: string
qbittorrentvpn2_docker_log_driver:
qbittorrentvpn_role_docker_log_optionsqbittorrentvpn2_docker_log_options
# Type: dict
qbittorrentvpn_role_docker_log_options:
# Type: dict
qbittorrentvpn2_docker_log_options:
qbittorrentvpn_role_docker_oom_killerqbittorrentvpn2_docker_oom_killer
# Type: bool (true/false)
qbittorrentvpn_role_docker_oom_killer:
# Type: bool (true/false)
qbittorrentvpn2_docker_oom_killer:
qbittorrentvpn_role_docker_oom_score_adjqbittorrentvpn2_docker_oom_score_adj
# Type: int
qbittorrentvpn_role_docker_oom_score_adj:
# Type: int
qbittorrentvpn2_docker_oom_score_adj:
qbittorrentvpn_role_docker_output_logsqbittorrentvpn2_docker_output_logs
# Type: bool (true/false)
qbittorrentvpn_role_docker_output_logs:
# Type: bool (true/false)
qbittorrentvpn2_docker_output_logs:
qbittorrentvpn_role_docker_pausedqbittorrentvpn2_docker_paused
# Type: bool (true/false)
qbittorrentvpn_role_docker_paused:
# Type: bool (true/false)
qbittorrentvpn2_docker_paused:
qbittorrentvpn_role_docker_recreateqbittorrentvpn2_docker_recreate
# Type: bool (true/false)
qbittorrentvpn_role_docker_recreate:
# Type: bool (true/false)
qbittorrentvpn2_docker_recreate:
qbittorrentvpn_role_docker_restart_retriesqbittorrentvpn2_docker_restart_retries
# Type: int
qbittorrentvpn_role_docker_restart_retries:
# Type: int
qbittorrentvpn2_docker_restart_retries:
Other Options
qbittorrentvpn_role_docker_cgroup_parentqbittorrentvpn2_docker_cgroup_parent
# Type: string
qbittorrentvpn_role_docker_cgroup_parent:
# Type: string
qbittorrentvpn2_docker_cgroup_parent:
qbittorrentvpn_role_docker_commandsqbittorrentvpn2_docker_commands
# Type: list
qbittorrentvpn_role_docker_commands:
# Type: list
qbittorrentvpn2_docker_commands:
qbittorrentvpn_role_docker_create_timeoutqbittorrentvpn2_docker_create_timeout
# Type: int
qbittorrentvpn_role_docker_create_timeout:
# Type: int
qbittorrentvpn2_docker_create_timeout:
qbittorrentvpn_role_docker_entrypointqbittorrentvpn2_docker_entrypoint
# Type: string
qbittorrentvpn_role_docker_entrypoint:
# Type: string
qbittorrentvpn2_docker_entrypoint:
qbittorrentvpn_role_docker_env_fileqbittorrentvpn2_docker_env_file
# Type: string
qbittorrentvpn_role_docker_env_file:
# Type: string
qbittorrentvpn2_docker_env_file:
qbittorrentvpn_role_docker_labelsqbittorrentvpn2_docker_labels
# Type: dict
qbittorrentvpn_role_docker_labels:
# Type: dict
qbittorrentvpn2_docker_labels:
qbittorrentvpn_role_docker_labels_use_commonqbittorrentvpn2_docker_labels_use_common
# Type: bool (true/false)
qbittorrentvpn_role_docker_labels_use_common:
# Type: bool (true/false)
qbittorrentvpn2_docker_labels_use_common:
qbittorrentvpn_role_docker_read_onlyqbittorrentvpn2_docker_read_only
# Type: bool (true/false)
qbittorrentvpn_role_docker_read_only:
# Type: bool (true/false)
qbittorrentvpn2_docker_read_only:
qbittorrentvpn_role_docker_runtimeqbittorrentvpn2_docker_runtime
# Type: string
qbittorrentvpn_role_docker_runtime:
# Type: string
qbittorrentvpn2_docker_runtime:
qbittorrentvpn_role_docker_ulimitsqbittorrentvpn2_docker_ulimits
# Type: list
qbittorrentvpn_role_docker_ulimits:
# Type: list
qbittorrentvpn2_docker_ulimits:
qbittorrentvpn_role_autoheal_enabledqbittorrentvpn2_autoheal_enabled
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
qbittorrentvpn_role_autoheal_enabled: true
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
qbittorrentvpn2_autoheal_enabled: true
qbittorrentvpn_role_depends_onqbittorrentvpn2_depends_on
# List of container dependencies that must be running before containers start
# Type: string
qbittorrentvpn_role_depends_on: ""
# List of container dependencies that must be running before containers start
# Type: string
qbittorrentvpn2_depends_on: ""
qbittorrentvpn_role_depends_on_delayqbittorrentvpn2_depends_on_delay
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
qbittorrentvpn_role_depends_on_delay: "0"
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
qbittorrentvpn2_depends_on_delay: "0"
qbittorrentvpn_role_depends_on_healthchecksqbittorrentvpn2_depends_on_healthchecks
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
qbittorrentvpn_role_depends_on_healthchecks:
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
qbittorrentvpn2_depends_on_healthchecks:
qbittorrentvpn_role_diun_enabledqbittorrentvpn2_diun_enabled
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
qbittorrentvpn_role_diun_enabled: true
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
qbittorrentvpn2_diun_enabled: true
qbittorrentvpn_role_dns_enabledqbittorrentvpn2_dns_enabled
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
qbittorrentvpn_role_dns_enabled: true
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
qbittorrentvpn2_dns_enabled: true
qbittorrentvpn_role_docker_controllerqbittorrentvpn2_docker_controller
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
qbittorrentvpn_role_docker_controller: true
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
qbittorrentvpn2_docker_controller: true
qbittorrentvpn_role_docker_image_repoqbittorrentvpn2_docker_image_repo
# Type: string
qbittorrentvpn_role_docker_image_repo:
# Type: string
qbittorrentvpn2_docker_image_repo:
qbittorrentvpn_role_docker_image_tagqbittorrentvpn2_docker_image_tag
# Type: string
qbittorrentvpn_role_docker_image_tag:
# Type: string
qbittorrentvpn2_docker_image_tag:
qbittorrentvpn_role_docker_volumes_downloadqbittorrentvpn2_docker_volumes_download
# Type: bool (true/false)
qbittorrentvpn_role_docker_volumes_download:
# Type: bool (true/false)
qbittorrentvpn2_docker_volumes_download:
qbittorrentvpn_role_paths_locationqbittorrentvpn2_paths_location
# Type: string
qbittorrentvpn_role_paths_location:
# Type: string
qbittorrentvpn2_paths_location:
qbittorrentvpn_role_themepark_addonsqbittorrentvpn2_themepark_addons
# Type: string
qbittorrentvpn_role_themepark_addons:
# Type: string
qbittorrentvpn2_themepark_addons:
qbittorrentvpn_role_themepark_appqbittorrentvpn2_themepark_app
# Type: string
qbittorrentvpn_role_themepark_app:
# Type: string
qbittorrentvpn2_themepark_app:
qbittorrentvpn_role_themepark_themeqbittorrentvpn2_themepark_theme
# Type: string
qbittorrentvpn_role_themepark_theme:
# Type: string
qbittorrentvpn2_themepark_theme:
qbittorrentvpn_role_traefik_api_endpointqbittorrentvpn2_traefik_api_endpoint
# Type: dict/omit
qbittorrentvpn_role_traefik_api_endpoint:
# Type: dict/omit
qbittorrentvpn2_traefik_api_endpoint:
qbittorrentvpn_role_traefik_api_middlewareqbittorrentvpn2_traefik_api_middleware
# Type: string
qbittorrentvpn_role_traefik_api_middleware:
# Type: string
qbittorrentvpn2_traefik_api_middleware:
qbittorrentvpn_role_traefik_api_middleware_httpqbittorrentvpn2_traefik_api_middleware_http
# Type: string
qbittorrentvpn_role_traefik_api_middleware_http:
# Type: string
qbittorrentvpn2_traefik_api_middleware_http:
qbittorrentvpn_role_traefik_autodetect_enabledqbittorrentvpn2_traefik_autodetect_enabled
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
qbittorrentvpn_role_traefik_autodetect_enabled: false
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
qbittorrentvpn2_traefik_autodetect_enabled: false
qbittorrentvpn_role_traefik_certresolverqbittorrentvpn2_traefik_certresolver
# Type: string
qbittorrentvpn_role_traefik_certresolver:
# Type: string
qbittorrentvpn2_traefik_certresolver:
qbittorrentvpn_role_traefik_crowdsec_enabledqbittorrentvpn2_traefik_crowdsec_enabled
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
qbittorrentvpn_role_traefik_crowdsec_enabled: false
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
qbittorrentvpn2_traefik_crowdsec_enabled: false
qbittorrentvpn_role_traefik_error_pages_enabledqbittorrentvpn2_traefik_error_pages_enabled
# Enable custom error pages middleware for containers
# Type: bool (true/false)
qbittorrentvpn_role_traefik_error_pages_enabled: false
# Enable custom error pages middleware for containers
# Type: bool (true/false)
qbittorrentvpn2_traefik_error_pages_enabled: false
qbittorrentvpn_role_traefik_gzip_enabledqbittorrentvpn2_traefik_gzip_enabled
# Enable gzip compression middleware for containers
# Type: bool (true/false)
qbittorrentvpn_role_traefik_gzip_enabled: false
# Enable gzip compression middleware for containers
# Type: bool (true/false)
qbittorrentvpn2_traefik_gzip_enabled: false
qbittorrentvpn_role_traefik_middleware_httpqbittorrentvpn2_traefik_middleware_http
# Type: string
qbittorrentvpn_role_traefik_middleware_http:
# Type: string
qbittorrentvpn2_traefik_middleware_http:
qbittorrentvpn_role_traefik_middleware_http_api_insecureqbittorrentvpn2_traefik_middleware_http_api_insecure
# Type: bool (true/false)
qbittorrentvpn_role_traefik_middleware_http_api_insecure:
# Type: bool (true/false)
qbittorrentvpn2_traefik_middleware_http_api_insecure:
qbittorrentvpn_role_traefik_middleware_http_insecureqbittorrentvpn2_traefik_middleware_http_insecure
# Type: bool (true/false)
qbittorrentvpn_role_traefik_middleware_http_insecure:
# Type: bool (true/false)
qbittorrentvpn2_traefik_middleware_http_insecure:
qbittorrentvpn_role_traefik_priorityqbittorrentvpn2_traefik_priority
# Type: string
qbittorrentvpn_role_traefik_priority:
# Type: string
qbittorrentvpn2_traefik_priority:
qbittorrentvpn_role_traefik_robot_enabledqbittorrentvpn2_traefik_robot_enabled
# Enable robots.txt middleware for containers
# Type: bool (true/false)
qbittorrentvpn_role_traefik_robot_enabled: true
# Enable robots.txt middleware for containers
# Type: bool (true/false)
qbittorrentvpn2_traefik_robot_enabled: true
qbittorrentvpn_role_traefik_tailscale_enabledqbittorrentvpn2_traefik_tailscale_enabled
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
qbittorrentvpn_role_traefik_tailscale_enabled: false
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
qbittorrentvpn2_traefik_tailscale_enabled: false
qbittorrentvpn_role_traefik_wildcard_enabledqbittorrentvpn2_traefik_wildcard_enabled
# Enable wildcard certificate for containers
# Type: bool (true/false)
qbittorrentvpn_role_traefik_wildcard_enabled: true
# Enable wildcard certificate for containers
# Type: bool (true/false)
qbittorrentvpn2_traefik_wildcard_enabled: true
qbittorrentvpn_role_web_domainqbittorrentvpn2_web_domain
# Type: string
qbittorrentvpn_role_web_domain:
# Type: string
qbittorrentvpn2_web_domain:
qbittorrentvpn_role_web_fqdn_overrideqbittorrentvpn2_web_fqdn_override
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
qbittorrentvpn_role_web_fqdn_override:
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
qbittorrentvpn2_web_fqdn_override:
Example Override
qbittorrentvpn_role_web_fqdn_override:
- "{{ traefik_host }}"
- "qbittorrentvpn2.{{ user.domain }}"
- "qbittorrentvpn.otherdomain.tld"
Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries
Example Override
qbittorrentvpn2_web_fqdn_override:
- "{{ traefik_host }}"
- "qbittorrentvpn2.{{ user.domain }}"
- "qbittorrentvpn.otherdomain.tld"
Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries
qbittorrentvpn_role_web_host_overrideqbittorrentvpn2_web_host_override
# Override the Traefik web host configuration for containers
# Type: string
qbittorrentvpn_role_web_host_override:
# Override the Traefik web host configuration for containers
# Type: string
qbittorrentvpn2_web_host_override:
Example Override
qbittorrentvpn_role_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'qbittorrentvpn2.' + user.domain }}`)"
Note: Use {{ traefik_host }} to include the default host configuration in your custom rule
Example Override
qbittorrentvpn2_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'qbittorrentvpn2.' + user.domain }}`)"
Note: Use {{ traefik_host }} to include the default host configuration in your custom rule
qbittorrentvpn_role_web_http_portqbittorrentvpn2_web_http_port
# Type: string (quoted number)
qbittorrentvpn_role_web_http_port:
# Type: string (quoted number)
qbittorrentvpn2_web_http_port:
qbittorrentvpn_role_web_http_schemeqbittorrentvpn2_web_http_scheme
# Type: string ("http"/"https")
qbittorrentvpn_role_web_http_scheme:
# Type: string ("http"/"https")
qbittorrentvpn2_web_http_scheme:
qbittorrentvpn_role_web_http_serverstransportqbittorrentvpn2_web_http_serverstransport
# Type: dict/omit
qbittorrentvpn_role_web_http_serverstransport:
# Type: dict/omit
qbittorrentvpn2_web_http_serverstransport:
qbittorrentvpn_role_web_schemeqbittorrentvpn2_web_scheme
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
qbittorrentvpn_role_web_scheme:
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
qbittorrentvpn2_web_scheme:
qbittorrentvpn_role_web_serverstransportqbittorrentvpn2_web_serverstransport
# Type: dict/omit
qbittorrentvpn_role_web_serverstransport:
# Type: dict/omit
qbittorrentvpn2_web_serverstransport:
qbittorrentvpn_role_web_subdomainqbittorrentvpn2_web_subdomain
# Type: string
qbittorrentvpn_role_web_subdomain:
# Type: string
qbittorrentvpn2_web_subdomain: