ruTorrent¶
| Description / name | Input element |
|---|---|
| Your domain name |
Overview¶
ruTorrent is a front-end for the popular, lightweight, and extensible BitTorrent client rTorrent.
Migrating from the old Docker image
On November 1, 2026, this role switched to crazymax/rtorrent-rutorrent, which uses a different layout for its application data than the previous image.
There is no automatic migration. The role now stores the data in /opt/rtorrent-rutorrent (by default), so the existing /opt/rutorrent folder is left untouched. If you wish to carry the data over, you must move the relevant parts to where the new container expects them.
Deployment¶
sb install sandbox-rutorrent
Usage¶
| Service | URL | Access control |
|---|---|---|
| Web | https://rutorrent.iYOUR_DOMAIN_NAMEi | Traefik SSO |
| WebDAV | https://rutorrent-webdav.iYOUR_DOMAIN_NAMEi | Basic Auth |
| API | https://rutorrent.iYOUR_DOMAIN_NAMEi/RPC | Basic Auth |
Unpacking¶
Unpackerr is the recommended tool for the job. This role removes ruTorrent's unpack plugin by default, as its functionality is too limited for standard Saltbox workflows.
Role Defaults¶
Variables can be customized using the Inventory. (1)
-
This role supports multiple instances via
rutorrent_instances.Example override
rutorrent_role_web_subdomain: "custom"Applies to all instances of rutorrent
rutorrent2_web_subdomain: "custom2"Applies to the instance named rutorrent2
Avoid overriding variables ending in
_defaultWhen overriding variables that end in
_default(likerutorrent_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 (likerutorrent_docker_envs_custom) to add your changes. Custom values are merged with defaults, ensuring you receive updates.
rutorrent_instances
# Type: list
rutorrent_instances: ["rutorrent"]
Example Override
# Type: list
rutorrent_instances: ["rutorrent", "rutorrent2"]
rutorrent_role_webdav_enablerutorrent2_webdav_enable
# Enable the WebDAV endpoint
# Type: bool (true/false)
rutorrent_role_webdav_enable: true
# Enable the WebDAV endpoint
# Type: bool (true/false)
rutorrent2_webdav_enable: true
rutorrent_role_manage_rt_config_enablerutorrent2_manage_rt_config_enable
# Allow the role to manage the rTorrent configuration
# Type: bool (true/false)
rutorrent_role_manage_rt_config_enable: true
# Allow the role to manage the rTorrent configuration
# Type: bool (true/false)
rutorrent2_manage_rt_config_enable: true
rutorrent_role_public_trackers_enablerutorrent2_public_trackers_enable
# Enable public tracker connectivity
# Type: bool (true/false)
rutorrent_role_public_trackers_enable: false
# Enable public tracker connectivity
# Type: bool (true/false)
rutorrent2_public_trackers_enable: false
rutorrent_role_trim_plugins_enablerutorrent2_trim_plugins_enable
# Remove a curated set of redundant ruTorrent plugins
# Type: bool (true/false)
rutorrent_role_trim_plugins_enable: true
# Remove a curated set of redundant ruTorrent plugins
# Type: bool (true/false)
rutorrent2_trim_plugins_enable: true
rutorrent_role_theme_reposrutorrent2_theme_repos
# Third-party ruTorrent themes to include through git clone
# Type: list
rutorrent_role_theme_repos:
- { name: "club-QuickBox", url: "https://github.com/QuickBox/club-QuickBox.git", version: "latest" }
# Third-party ruTorrent themes to include through git clone
# Type: list
rutorrent2_theme_repos:
- { name: "club-QuickBox", url: "https://github.com/QuickBox/club-QuickBox.git", version: "latest" }
rutorrent_role_plugin_reposrutorrent2_plugin_repos
# Third-party ruTorrent plugins to include through git clone
# Same format as `_theme_repos`
# Type: list
rutorrent_role_plugin_repos: []
# Third-party ruTorrent plugins to include through git clone
# Same format as `_theme_repos`
# Type: list
rutorrent2_plugin_repos: []
rutorrent_role_wan_iprutorrent2_wan_ip
# Public IP address reported to the tracker
# Type: string
rutorrent_role_wan_ip: ""
# Public IP address reported to the tracker
# Type: string
rutorrent2_wan_ip: ""
rutorrent_role_wan_ip_cmdrutorrent2_wan_ip_cmd
# Command to resolve the Public IP address
# Type: string
rutorrent_role_wan_ip_cmd: ""
# Command to resolve the Public IP address
# Type: string
rutorrent2_wan_ip_cmd: ""
rutorrent_role_memory_limitrutorrent2_memory_limit
# PHP memory limit
# Type: string
rutorrent_role_memory_limit: ""
# PHP memory limit
# Type: string
rutorrent2_memory_limit: ""
rutorrent_role_upload_max_sizerutorrent2_upload_max_size
# Upload max size
# Type: string
rutorrent_role_upload_max_size: ""
# Upload max size
# Type: string
rutorrent2_upload_max_size: ""
rutorrent_role_clear_envrutorrent2_clear_env
# Clear environment in FPM workers
# Valid values: "yes", "no"
# Type: string
rutorrent_role_clear_env: ""
# Clear environment in FPM workers
# Valid values: "yes", "no"
# Type: string
rutorrent2_clear_env: ""
rutorrent_role_opcache_mem_sizerutorrent2_opcache_mem_size
# PHP OpCache memory consumption
# Type: string
rutorrent_role_opcache_mem_size: ""
# PHP OpCache memory consumption
# Type: string
rutorrent2_opcache_mem_size: ""
rutorrent_role_max_file_uploadsrutorrent2_max_file_uploads
# Maximum number of files allowed to be uploaded simultaneously
# Type: string
rutorrent_role_max_file_uploads: ""
# Maximum number of files allowed to be uploaded simultaneously
# Type: string
rutorrent2_max_file_uploads: ""
rutorrent_role_real_ip_fromrutorrent2_real_ip_from
# Trusted addresses that are known to send correct replacement addresses
# Type: string
rutorrent_role_real_ip_from: ""
# Trusted addresses that are known to send correct replacement addresses
# Type: string
rutorrent2_real_ip_from: ""
rutorrent_role_real_ip_headerrutorrent2_real_ip_header
# Request header field whose value will be used to replace the client address
# Type: string
rutorrent_role_real_ip_header: ""
# Request header field whose value will be used to replace the client address
# Type: string
rutorrent2_real_ip_header: ""
rutorrent_role_log_ip_varrutorrent2_log_ip_var
# Another variable to retrieve the remote IP address for access log_format on Nginx
# Type: string
rutorrent_role_log_ip_var: ""
# Another variable to retrieve the remote IP address for access log_format on Nginx
# Type: string
rutorrent2_log_ip_var: ""
rutorrent_role_log_accessrutorrent2_log_access
# Enable output access log
# Valid values: "true", "false"
# Type: string
rutorrent_role_log_access: ""
# Enable output access log
# Valid values: "true", "false"
# Type: string
rutorrent2_log_access: ""
rutorrent_role_xmlrpc_size_limitrutorrent2_xmlrpc_size_limit
# Maximum body size of XMLRPC calls
# Type: string
rutorrent_role_xmlrpc_size_limit: ""
# Maximum body size of XMLRPC calls
# Type: string
rutorrent2_xmlrpc_size_limit: ""
rutorrent_role_rt_log_levelrutorrent2_rt_log_level
# rTorrent log level
# Type: string
rutorrent_role_rt_log_level: ""
# rTorrent log level
# Type: string
rutorrent2_rt_log_level: ""
rutorrent_role_rt_log_executerutorrent2_rt_log_execute
# Log executed commands to /data/rtorrent/log/execute.log
# Valid values: "true", "false"
# Type: string
rutorrent_role_rt_log_execute: ""
# Log executed commands to /data/rtorrent/log/execute.log
# Valid values: "true", "false"
# Type: string
rutorrent2_rt_log_execute: ""
rutorrent_role_rt_log_xmlrpcrutorrent2_rt_log_xmlrpc
# Log XMLRPC queries to /data/rtorrent/log/xmlrpc.log
# Valid values: "true", "false"
# Type: string
rutorrent_role_rt_log_xmlrpc: ""
# Log XMLRPC queries to /data/rtorrent/log/xmlrpc.log
# Valid values: "true", "false"
# Type: string
rutorrent2_rt_log_xmlrpc: ""
rutorrent_role_rt_session_save_secondsrutorrent2_rt_session_save_seconds
# Seconds between writing torrent information to disk
# Type: string
rutorrent_role_rt_session_save_seconds: ""
# Seconds between writing torrent information to disk
# Type: string
rutorrent2_rt_session_save_seconds: ""
rutorrent_role_rt_session_fdatasyncrutorrent2_rt_session_fdatasync
# Force fdatasync when saving sessions
# Valid values: "true", "false"
# Type: string
rutorrent_role_rt_session_fdatasync: ""
# Force fdatasync when saving sessions
# Valid values: "true", "false"
# Type: string
rutorrent2_rt_session_fdatasync: ""
rutorrent_role_rt_tracker_delay_scraperutorrent2_rt_tracker_delay_scrape
# Delay tracker announces at startup
# Valid values: "true", "false"
# Type: string
rutorrent_role_rt_tracker_delay_scrape: ""
# Delay tracker announces at startup
# Valid values: "true", "false"
# Type: string
rutorrent2_rt_tracker_delay_scrape: ""
rutorrent_role_rt_receive_buffer_sizerutorrent2_rt_receive_buffer_size
# Sets the default TCP receive buffer size
# Type: string
rutorrent_role_rt_receive_buffer_size: ""
# Sets the default TCP receive buffer size
# Type: string
rutorrent2_rt_receive_buffer_size: ""
rutorrent_role_rt_send_buffer_sizerutorrent2_rt_send_buffer_size
# Sets the default TCP send buffer size
# Type: string
rutorrent_role_rt_send_buffer_size: ""
# Sets the default TCP send buffer size
# Type: string
rutorrent2_rt_send_buffer_size: ""
rutorrent_role_rt_preallocate_typerutorrent2_rt_preallocate_type
# Type of disk space preallocation
# Valid values: "0", "1", "2"
# Type: string
rutorrent_role_rt_preallocate_type: ""
# Type of disk space preallocation
# Valid values: "0", "1", "2"
# Type: string
rutorrent2_rt_preallocate_type: ""
rutorrent_role_rt_dht_portrutorrent2_rt_dht_port
# DHT UDP port
# Type: string
rutorrent_role_rt_dht_port: ""
# DHT UDP port
# Type: string
rutorrent2_rt_dht_port: ""
rutorrent_role_rt_inc_portrutorrent2_rt_inc_port
# Incoming connections port
# Type: string
rutorrent_role_rt_inc_port: ""
# Incoming connections port
# Type: string
rutorrent2_rt_inc_port: ""
rutorrent_role_ru_remove_core_pluginsrutorrent2_ru_remove_core_plugins
# Comma-separated list of core plugins to remove
# Type: string
rutorrent_role_ru_remove_core_plugins: ""
# Comma-separated list of core plugins to remove
# Type: string
rutorrent2_ru_remove_core_plugins: ""
rutorrent_role_ru_http_user_agentrutorrent2_ru_http_user_agent
# ruTorrent HTTP user agent
# Type: string
rutorrent_role_ru_http_user_agent: ""
# ruTorrent HTTP user agent
# Type: string
rutorrent2_ru_http_user_agent: ""
rutorrent_role_ru_http_time_outrutorrent2_ru_http_time_out
# ruTorrent HTTP timeout in seconds
# Type: string
rutorrent_role_ru_http_time_out: ""
# ruTorrent HTTP timeout in seconds
# Type: string
rutorrent2_ru_http_time_out: ""
rutorrent_role_ru_http_use_gziprutorrent2_ru_http_use_gzip
# Use HTTP Gzip compression
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_http_use_gzip: ""
# Use HTTP Gzip compression
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_http_use_gzip: ""
rutorrent_role_ru_http_verify_certificatesrutorrent2_ru_http_verify_certificates
# Verify HTTPS server and proxy certificates
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_http_verify_certificates: ""
# Verify HTTPS server and proxy certificates
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_http_verify_certificates: ""
rutorrent_role_ru_rpc_time_outrutorrent2_ru_rpc_time_out
# ruTorrent RPC timeout in seconds
# Type: string
rutorrent_role_ru_rpc_time_out: ""
# ruTorrent RPC timeout in seconds
# Type: string
rutorrent2_ru_rpc_time_out: ""
rutorrent_role_ru_log_rpc_callsrutorrent2_ru_log_rpc_calls
# Log ruTorrent RPC calls
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_log_rpc_calls: ""
# Log ruTorrent RPC calls
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_log_rpc_calls: ""
rutorrent_role_ru_log_rpc_faultsrutorrent2_ru_log_rpc_faults
# Log ruTorrent RPC faults
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_log_rpc_faults: ""
# Log ruTorrent RPC faults
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_log_rpc_faults: ""
rutorrent_role_ru_php_use_gziprutorrent2_ru_php_use_gzip
# Use PHP Gzip compression
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_php_use_gzip: ""
# Use PHP Gzip compression
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_php_use_gzip: ""
rutorrent_role_ru_php_gzip_levelrutorrent2_ru_php_gzip_level
# PHP Gzip compression level
# Type: string
rutorrent_role_ru_php_gzip_level: ""
# PHP Gzip compression level
# Type: string
rutorrent2_ru_php_gzip_level: ""
rutorrent_role_ru_schedule_randrutorrent2_ru_schedule_rand
# Random delay for scheduler start, from 0 to this value in seconds
# Type: string
rutorrent_role_ru_schedule_rand: ""
# Random delay for scheduler start, from 0 to this value in seconds
# Type: string
rutorrent2_ru_schedule_rand: ""
rutorrent_role_ru_log_filerutorrent2_ru_log_file
# ruTorrent log file path for error messages
# Type: string
rutorrent_role_ru_log_file: ""
# ruTorrent log file path for error messages
# Type: string
rutorrent2_ru_log_file: ""
rutorrent_role_ru_do_diagnosticrutorrent2_ru_do_diagnostic
# Enable ruTorrent diagnostics such as permission checking
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_do_diagnostic: ""
# Enable ruTorrent diagnostics such as permission checking
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_do_diagnostic: ""
rutorrent_role_ru_cached_plugin_loadingrutorrent2_ru_cached_plugin_loading
# Enable rapid cached loading of ruTorrent plugins
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_cached_plugin_loading: ""
# Enable rapid cached loading of ruTorrent plugins
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_cached_plugin_loading: ""
rutorrent_role_ru_save_uploaded_torrentsrutorrent2_ru_save_uploaded_torrents
# Save torrents added through ruTorrent in /data/rutorrent/share/torrents
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_save_uploaded_torrents: ""
# Save torrents added through ruTorrent in /data/rutorrent/share/torrents
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_save_uploaded_torrents: ""
rutorrent_role_ru_overwrite_uploaded_torrentsrutorrent2_ru_overwrite_uploaded_torrents
# Overwrite existing uploaded .torrent files
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_overwrite_uploaded_torrents: ""
# Overwrite existing uploaded .torrent files
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_overwrite_uploaded_torrents: ""
rutorrent_role_ru_forbid_user_settingsrutorrent2_ru_forbid_user_settings
# Allow a single-user style configuration even with web authentication
# Valid values: "true", "false"
# Type: string
rutorrent_role_ru_forbid_user_settings: ""
# Allow a single-user style configuration even with web authentication
# Valid values: "true", "false"
# Type: string
rutorrent2_ru_forbid_user_settings: ""
rutorrent_role_ru_localerutorrent2_ru_locale
# Default ruTorrent locale
# Type: string
rutorrent_role_ru_locale: ""
# Default ruTorrent locale
# Type: string
rutorrent2_ru_locale: ""
rutorrent_role_web_subdomainrutorrent2_web_subdomain
# Type: string
rutorrent_role_web_subdomain: "{{ rutorrent_name }}"
# Type: string
rutorrent2_web_subdomain: "{{ rutorrent_name }}"
rutorrent_role_web_domainrutorrent2_web_domain
# Type: string
rutorrent_role_web_domain: "{{ user.domain }}"
# Type: string
rutorrent2_web_domain: "{{ user.domain }}"
rutorrent_role_web_portrutorrent2_web_port
# Type: string
rutorrent_role_web_port: "8080"
# Type: string
rutorrent2_web_port: "8080"
rutorrent_role_web_urlrutorrent2_web_url
# Type: string
rutorrent_role_web_url: "{{ lookup('role_web', role='rutorrent', scheme='https') }}"
# Type: string
rutorrent2_web_url: "{{ lookup('role_web', role='rutorrent', scheme='https') }}"
rutorrent_role_web_api_portrutorrent2_web_api_port
# Type: string
rutorrent_role_web_api_port: "8000"
# Type: string
rutorrent2_web_api_port: "8000"
rutorrent_role_webdav_subdomainrutorrent2_webdav_subdomain
# Type: string
rutorrent_role_webdav_subdomain: "{{ rutorrent_name }}-webdav"
# Type: string
rutorrent2_webdav_subdomain: "{{ rutorrent_name }}-webdav"
rutorrent_role_webdav_domainrutorrent2_webdav_domain
# Type: string
rutorrent_role_webdav_domain: "{{ user.domain }}"
# Type: string
rutorrent2_webdav_domain: "{{ user.domain }}"
rutorrent_role_webdav_portrutorrent2_webdav_port
# Type: string
rutorrent_role_webdav_port: "9000"
# Type: string
rutorrent2_webdav_port: "9000"
rutorrent_role_webdav_hostrutorrent2_webdav_host
# Type: string
rutorrent_role_webdav_host: "{{ lookup('role_web', role='rutorrent', endpoint='webdav') }}"
# Type: string
rutorrent2_webdav_host: "{{ lookup('role_web', role='rutorrent', endpoint='webdav') }}"
rutorrent_role_dns_recordrutorrent2_dns_record
# Type: string
rutorrent_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='rutorrent') }}"
# Type: string
rutorrent2_dns_record: "{{ lookup('role_var', '_web_subdomain', role='rutorrent') }}"
rutorrent_role_dns_zonerutorrent2_dns_zone
# Type: string
rutorrent_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='rutorrent') }}"
# Type: string
rutorrent2_dns_zone: "{{ lookup('role_var', '_web_domain', role='rutorrent') }}"
rutorrent_role_dns_proxyrutorrent2_dns_proxy
# Type: bool (true/false)
rutorrent_role_dns_proxy: "{{ dns_proxied }}"
# Type: bool (true/false)
rutorrent2_dns_proxy: "{{ dns_proxied }}"
rutorrent_role_webdav_dns_recordrutorrent2_webdav_dns_record
# Type: string
rutorrent_role_webdav_dns_record: "{{ lookup('role_var', '_webdav_subdomain', role='rutorrent') }}"
# Type: string
rutorrent2_webdav_dns_record: "{{ lookup('role_var', '_webdav_subdomain', role='rutorrent') }}"
rutorrent_role_webdav_dns_zonerutorrent2_webdav_dns_zone
# Type: string
rutorrent_role_webdav_dns_zone: "{{ lookup('role_var', '_webdav_domain', role='rutorrent') }}"
# Type: string
rutorrent2_webdav_dns_zone: "{{ lookup('role_var', '_webdav_domain', role='rutorrent') }}"
rutorrent_role_webdav_dns_proxyrutorrent2_webdav_dns_proxy
# Type: bool (true/false)
rutorrent_role_webdav_dns_proxy: "{{ dns_proxied }}"
# Type: bool (true/false)
rutorrent2_webdav_dns_proxy: "{{ dns_proxied }}"
rutorrent_role_traefik_sso_middlewarerutorrent2_traefik_sso_middleware
# Type: string
rutorrent_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"
# Type: string
rutorrent2_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"
rutorrent_role_traefik_middleware_defaultrutorrent2_traefik_middleware_default
# Type: string
rutorrent_role_traefik_middleware_default: "{{ traefik_default_middleware }}"
# Type: string
rutorrent2_traefik_middleware_default: "{{ traefik_default_middleware }}"
rutorrent_role_traefik_middleware_customrutorrent2_traefik_middleware_custom
# Type: string
rutorrent_role_traefik_middleware_custom: ""
# Type: string
rutorrent2_traefik_middleware_custom: ""
rutorrent_role_traefik_middleware_basicauthrutorrent2_traefik_middleware_basicauth
# Type: string
rutorrent_role_traefik_middleware_basicauth: "{{ rutorrent_name }}-auth,{{ traefik_default_middleware_api }}"
# Type: string
rutorrent2_traefik_middleware_basicauth: "{{ rutorrent_name }}-auth,{{ traefik_default_middleware_api }}"
rutorrent_role_traefik_middleware_default_apirutorrent2_traefik_middleware_default_api
# Type: string
rutorrent_role_traefik_middleware_default_api: "{{ lookup('role_var', '_traefik_middleware_basicauth', role='rutorrent') }}"
# Type: string
rutorrent2_traefik_middleware_default_api: "{{ lookup('role_var', '_traefik_middleware_basicauth', role='rutorrent') }}"
rutorrent_role_traefik_middleware_custom_apirutorrent2_traefik_middleware_custom_api
# Type: string
rutorrent_role_traefik_middleware_custom_api: ""
# Type: string
rutorrent2_traefik_middleware_custom_api: ""
rutorrent_role_traefik_certresolverrutorrent2_traefik_certresolver
# Type: string
rutorrent_role_traefik_certresolver: "{{ traefik_default_certresolver }}"
# Type: string
rutorrent2_traefik_certresolver: "{{ traefik_default_certresolver }}"
rutorrent_role_traefik_enabledrutorrent2_traefik_enabled
# Type: bool (true/false)
rutorrent_role_traefik_enabled: true
# Type: bool (true/false)
rutorrent2_traefik_enabled: true
rutorrent_role_traefik_api_enabledrutorrent2_traefik_api_enabled
# Type: bool (true/false)
rutorrent_role_traefik_api_enabled: true
# Type: bool (true/false)
rutorrent2_traefik_api_enabled: true
rutorrent_role_traefik_api_endpointrutorrent2_traefik_api_endpoint
# Type: string
rutorrent_role_traefik_api_endpoint: "PathPrefix(`/RPC`)"
# Type: string
rutorrent2_traefik_api_endpoint: "PathPrefix(`/RPC`)"
rutorrent_role_traefik_middleware_webdavrutorrent2_traefik_middleware_webdav
# Type: string
rutorrent_role_traefik_middleware_webdav: "{{ lookup('role_var', '_traefik_middleware_basicauth', role='rutorrent') }}"
# Type: string
rutorrent2_traefik_middleware_webdav: "{{ lookup('role_var', '_traefik_middleware_basicauth', role='rutorrent') }}"
rutorrent_role_traefik_certresolver_webdavrutorrent2_traefik_certresolver_webdav
# Type: string
rutorrent_role_traefik_certresolver_webdav: "{{ lookup('role_var', '_traefik_certresolver', role='rutorrent') }}"
# Type: string
rutorrent2_traefik_certresolver_webdav: "{{ lookup('role_var', '_traefik_certresolver', role='rutorrent') }}"
rutorrent_role_traefik_webdav_enabledrutorrent2_traefik_webdav_enabled
# Type: bool (true/false)
rutorrent_role_traefik_webdav_enabled: "{{ lookup('role_var', '_webdav_enable', role='rutorrent') | bool }}"
# Type: bool (true/false)
rutorrent2_traefik_webdav_enabled: "{{ lookup('role_var', '_webdav_enable', role='rutorrent') | bool }}"
The role allocates the first available port within the inclusive low and high bounds and retains it while it remains within those bounds and free of conflicts. Override an instance's bounds to change the allowed range; set both bounds to the same value to require one exact port, including for an existing assignment.
Existing assignments are stored in /opt/saltbox/port-assignments.json. On each role run, a saved port outside the current bounds or in conflict is reassigned within the current bounds, with a warning showing the old port, new port, and reason.
These bounds also apply to ports manually changed in that file. If no port is available within the bounds, allocation fails without changing the registry.
rutorrent_role_port_dht_low_boundrutorrent2_port_dht_low_bound
# Type: int
rutorrent_role_port_dht_low_bound: "{{ lookup('role_var', '_rt_dht_port', role='rutorrent', default=6881, default_if_empty=true) | int }}"
# Type: int
rutorrent2_port_dht_low_bound: "{{ lookup('role_var', '_rt_dht_port', role='rutorrent', default=6881, default_if_empty=true) | int }}"
rutorrent_role_port_dht_high_boundrutorrent2_port_dht_high_bound
# Type: string
rutorrent_role_port_dht_high_bound: "{{ lookup('role_var', '_port_dht_low_bound', role='rutorrent') + 10 }}"
# Type: string
rutorrent2_port_dht_high_bound: "{{ lookup('role_var', '_port_dht_low_bound', role='rutorrent') + 10 }}"
rutorrent_role_port_peer_low_boundrutorrent2_port_peer_low_bound
# Type: int
rutorrent_role_port_peer_low_bound: "{{ lookup('role_var', '_rt_inc_port', role='rutorrent', default=50000, default_if_empty=true) | int }}"
# Type: int
rutorrent2_port_peer_low_bound: "{{ lookup('role_var', '_rt_inc_port', role='rutorrent', default=50000, default_if_empty=true) | int }}"
rutorrent_role_port_peer_high_boundrutorrent2_port_peer_high_bound
# Type: string
rutorrent_role_port_peer_high_bound: "{{ lookup('role_var', '_port_peer_low_bound', role='rutorrent') + 10 }}"
# Type: string
rutorrent2_port_peer_high_bound: "{{ lookup('role_var', '_port_peer_low_bound', role='rutorrent') + 10 }}"
Container
rutorrent_role_docker_containerrutorrent2_docker_container
# Type: string
rutorrent_role_docker_container: "{{ rutorrent_name }}"
# Type: string
rutorrent2_docker_container: "{{ rutorrent_name }}"
Image
rutorrent_role_docker_image_pullrutorrent2_docker_image_pull
# Type: bool (true/false)
rutorrent_role_docker_image_pull: true
# Type: bool (true/false)
rutorrent2_docker_image_pull: true
rutorrent_role_docker_image_reporutorrent2_docker_image_repo
# Type: string
rutorrent_role_docker_image_repo: "crazymax/rtorrent-rutorrent"
# Type: string
rutorrent2_docker_image_repo: "crazymax/rtorrent-rutorrent"
rutorrent_role_docker_image_tagrutorrent2_docker_image_tag
# Type: string
rutorrent_role_docker_image_tag: "latest"
# Type: string
rutorrent2_docker_image_tag: "latest"
rutorrent_role_docker_imagerutorrent2_docker_image
# Type: string
rutorrent_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='rutorrent') }}:{{ lookup('role_var', '_docker_image_tag', role='rutorrent') }}"
# Type: string
rutorrent2_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='rutorrent') }}:{{ lookup('role_var', '_docker_image_tag', role='rutorrent') }}"
Ports
rutorrent_role_docker_ports_defaultrutorrent2_docker_ports_default
# Type: list
rutorrent_role_docker_ports_default:
- "{{ rutorrent_port_assignment.ports.peer }}:{{ rutorrent_port_assignment.ports.peer }}"
# Type: list
rutorrent2_docker_ports_default:
- "{{ rutorrent_port_assignment.ports.peer }}:{{ rutorrent_port_assignment.ports.peer }}"
rutorrent_role_docker_ports_dhtrutorrent2_docker_ports_dht
# Type: list
rutorrent_role_docker_ports_dht:
- "{{ rutorrent_port_assignment.ports.dht }}:{{ rutorrent_port_assignment.ports.dht }}/udp"
# Type: list
rutorrent2_docker_ports_dht:
- "{{ rutorrent_port_assignment.ports.dht }}:{{ rutorrent_port_assignment.ports.dht }}/udp"
rutorrent_role_docker_ports_customrutorrent2_docker_ports_custom
# Type: list
rutorrent_role_docker_ports_custom: []
# Type: list
rutorrent2_docker_ports_custom: []
Envs
Skip docs
rutorrent_role_docker_envs_ru_remove_core_pluginsrutorrent2_docker_envs_ru_remove_core_plugins
# Type: bool (true/false)
rutorrent_role_docker_envs_ru_remove_core_plugins: "{{ lookup('role_var', '_trim_plugins_enable', role='rutorrent') | bool
| ternary('_cloudflare,autotools,cookies,extsearch,feeds,ipad,loginmgr,rss,rssurlrewrite,rutracker_check,unpack', '')
| split(',') | union(lookup('role_var', '_ru_remove_core_plugins', role='rutorrent') | split(','))
| select | map('trim') | join(',') }}"
# Type: bool (true/false)
rutorrent2_docker_envs_ru_remove_core_plugins: "{{ lookup('role_var', '_trim_plugins_enable', role='rutorrent') | bool
| ternary('_cloudflare,autotools,cookies,extsearch,feeds,ipad,loginmgr,rss,rssurlrewrite,rutracker_check,unpack', '')
| split(',') | union(lookup('role_var', '_ru_remove_core_plugins', role='rutorrent') | split(','))
| select | map('trim') | join(',') }}"
rutorrent_role_docker_envs_defaultrutorrent2_docker_envs_default
# Type: dict
rutorrent_role_docker_envs_default:
PUID: "{{ uid }}"
PGID: "{{ gid }}"
TZ: "{{ tz }}"
WAN_IP: "{{ lookup('role_var', '_wan_ip', role='rutorrent', default=omit, default_if_empty=true) }}"
WAN_IP_CMD: "{{ lookup('role_var', '_wan_ip_cmd', role='rutorrent', default=omit, default_if_empty=true) }}"
MEMORY_LIMIT: "{{ lookup('role_var', '_memory_limit', role='rutorrent', default=omit, default_if_empty=true) }}"
UPLOAD_MAX_SIZE: "{{ lookup('role_var', '_upload_max_size', role='rutorrent', default=omit, default_if_empty=true) }}"
CLEAR_ENV: "{{ lookup('role_var', '_clear_env', role='rutorrent', default=omit, default_if_empty=true) }}"
OPCACHE_MEM_SIZE: "{{ lookup('role_var', '_opcache_mem_size', role='rutorrent', default=omit, default_if_empty=true) }}"
MAX_FILE_UPLOADS: "{{ lookup('role_var', '_max_file_uploads', role='rutorrent', default=omit, default_if_empty=true) }}"
REAL_IP_FROM: "{{ lookup('role_var', '_real_ip_from', role='rutorrent', default=omit, default_if_empty=true) }}"
REAL_IP_HEADER: "{{ lookup('role_var', '_real_ip_header', role='rutorrent', default=omit, default_if_empty=true) }}"
LOG_IP_VAR: "{{ lookup('role_var', '_log_ip_var', role='rutorrent', default=omit, default_if_empty=true) }}"
LOG_ACCESS: "{{ lookup('role_var', '_log_access', role='rutorrent', default=omit, default_if_empty=true) }}"
XMLRPC_SIZE_LIMIT: "{{ lookup('role_var', '_xmlrpc_size_limit', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_LOG_LEVEL: "{{ lookup('role_var', '_rt_log_level', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_LOG_EXECUTE: "{{ lookup('role_var', '_rt_log_execute', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_LOG_XMLRPC: "{{ lookup('role_var', '_rt_log_xmlrpc', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_SESSION_SAVE_SECONDS: "{{ lookup('role_var', '_rt_session_save_seconds', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_SESSION_FDATASYNC: "{{ lookup('role_var', '_rt_session_fdatasync', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_TRACKER_DELAY_SCRAPE: "{{ lookup('role_var', '_rt_tracker_delay_scrape', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_RECEIVE_BUFFER_SIZE: "{{ lookup('role_var', '_rt_receive_buffer_size', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_SEND_BUFFER_SIZE: "{{ lookup('role_var', '_rt_send_buffer_size', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_PREALLOCATE_TYPE: "{{ lookup('role_var', '_rt_preallocate_type', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_DHT_PORT: "{{ rutorrent_port_assignment.ports.dht | string
if (rutorrent_port_assignment.ports.dht | default(6881)) != 6881
else omit }}"
RT_INC_PORT: "{{ rutorrent_port_assignment.ports.peer | string
if (rutorrent_port_assignment.ports.peer | default(50000)) != 50000
else omit }}"
RU_REMOVE_CORE_PLUGINS: "{{ lookup('role_var', '_docker_envs_ru_remove_core_plugins', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_HTTP_USER_AGENT: "{{ lookup('role_var', '_ru_http_user_agent', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_HTTP_TIME_OUT: "{{ lookup('role_var', '_ru_http_time_out', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_HTTP_USE_GZIP: "{{ lookup('role_var', '_ru_http_use_gzip', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_HTTP_VERIFY_CERTIFICATES: "{{ lookup('role_var', '_ru_http_verify_certificates', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_RPC_TIME_OUT: "{{ lookup('role_var', '_ru_rpc_time_out', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_LOG_RPC_CALLS: "{{ lookup('role_var', '_ru_log_rpc_calls', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_LOG_RPC_FAULTS: "{{ lookup('role_var', '_ru_log_rpc_faults', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_PHP_USE_GZIP: "{{ lookup('role_var', '_ru_php_use_gzip', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_PHP_GZIP_LEVEL: "{{ lookup('role_var', '_ru_php_gzip_level', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_SCHEDULE_RAND: "{{ lookup('role_var', '_ru_schedule_rand', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_LOG_FILE: "{{ lookup('role_var', '_ru_log_file', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_DO_DIAGNOSTIC: "{{ lookup('role_var', '_ru_do_diagnostic', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_CACHED_PLUGIN_LOADING: "{{ lookup('role_var', '_ru_cached_plugin_loading', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_SAVE_UPLOADED_TORRENTS: "{{ lookup('role_var', '_ru_save_uploaded_torrents', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_OVERWRITE_UPLOADED_TORRENTS: "{{ lookup('role_var', '_ru_overwrite_uploaded_torrents', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_FORBID_USER_SETTINGS: "{{ lookup('role_var', '_ru_forbid_user_settings', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_LOCALE: "{{ lookup('role_var', '_ru_locale', role='rutorrent', default=omit, default_if_empty=true) }}"
# Type: dict
rutorrent2_docker_envs_default:
PUID: "{{ uid }}"
PGID: "{{ gid }}"
TZ: "{{ tz }}"
WAN_IP: "{{ lookup('role_var', '_wan_ip', role='rutorrent', default=omit, default_if_empty=true) }}"
WAN_IP_CMD: "{{ lookup('role_var', '_wan_ip_cmd', role='rutorrent', default=omit, default_if_empty=true) }}"
MEMORY_LIMIT: "{{ lookup('role_var', '_memory_limit', role='rutorrent', default=omit, default_if_empty=true) }}"
UPLOAD_MAX_SIZE: "{{ lookup('role_var', '_upload_max_size', role='rutorrent', default=omit, default_if_empty=true) }}"
CLEAR_ENV: "{{ lookup('role_var', '_clear_env', role='rutorrent', default=omit, default_if_empty=true) }}"
OPCACHE_MEM_SIZE: "{{ lookup('role_var', '_opcache_mem_size', role='rutorrent', default=omit, default_if_empty=true) }}"
MAX_FILE_UPLOADS: "{{ lookup('role_var', '_max_file_uploads', role='rutorrent', default=omit, default_if_empty=true) }}"
REAL_IP_FROM: "{{ lookup('role_var', '_real_ip_from', role='rutorrent', default=omit, default_if_empty=true) }}"
REAL_IP_HEADER: "{{ lookup('role_var', '_real_ip_header', role='rutorrent', default=omit, default_if_empty=true) }}"
LOG_IP_VAR: "{{ lookup('role_var', '_log_ip_var', role='rutorrent', default=omit, default_if_empty=true) }}"
LOG_ACCESS: "{{ lookup('role_var', '_log_access', role='rutorrent', default=omit, default_if_empty=true) }}"
XMLRPC_SIZE_LIMIT: "{{ lookup('role_var', '_xmlrpc_size_limit', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_LOG_LEVEL: "{{ lookup('role_var', '_rt_log_level', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_LOG_EXECUTE: "{{ lookup('role_var', '_rt_log_execute', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_LOG_XMLRPC: "{{ lookup('role_var', '_rt_log_xmlrpc', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_SESSION_SAVE_SECONDS: "{{ lookup('role_var', '_rt_session_save_seconds', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_SESSION_FDATASYNC: "{{ lookup('role_var', '_rt_session_fdatasync', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_TRACKER_DELAY_SCRAPE: "{{ lookup('role_var', '_rt_tracker_delay_scrape', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_RECEIVE_BUFFER_SIZE: "{{ lookup('role_var', '_rt_receive_buffer_size', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_SEND_BUFFER_SIZE: "{{ lookup('role_var', '_rt_send_buffer_size', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_PREALLOCATE_TYPE: "{{ lookup('role_var', '_rt_preallocate_type', role='rutorrent', default=omit, default_if_empty=true) }}"
RT_DHT_PORT: "{{ rutorrent_port_assignment.ports.dht | string
if (rutorrent_port_assignment.ports.dht | default(6881)) != 6881
else omit }}"
RT_INC_PORT: "{{ rutorrent_port_assignment.ports.peer | string
if (rutorrent_port_assignment.ports.peer | default(50000)) != 50000
else omit }}"
RU_REMOVE_CORE_PLUGINS: "{{ lookup('role_var', '_docker_envs_ru_remove_core_plugins', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_HTTP_USER_AGENT: "{{ lookup('role_var', '_ru_http_user_agent', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_HTTP_TIME_OUT: "{{ lookup('role_var', '_ru_http_time_out', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_HTTP_USE_GZIP: "{{ lookup('role_var', '_ru_http_use_gzip', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_HTTP_VERIFY_CERTIFICATES: "{{ lookup('role_var', '_ru_http_verify_certificates', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_RPC_TIME_OUT: "{{ lookup('role_var', '_ru_rpc_time_out', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_LOG_RPC_CALLS: "{{ lookup('role_var', '_ru_log_rpc_calls', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_LOG_RPC_FAULTS: "{{ lookup('role_var', '_ru_log_rpc_faults', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_PHP_USE_GZIP: "{{ lookup('role_var', '_ru_php_use_gzip', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_PHP_GZIP_LEVEL: "{{ lookup('role_var', '_ru_php_gzip_level', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_SCHEDULE_RAND: "{{ lookup('role_var', '_ru_schedule_rand', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_LOG_FILE: "{{ lookup('role_var', '_ru_log_file', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_DO_DIAGNOSTIC: "{{ lookup('role_var', '_ru_do_diagnostic', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_CACHED_PLUGIN_LOADING: "{{ lookup('role_var', '_ru_cached_plugin_loading', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_SAVE_UPLOADED_TORRENTS: "{{ lookup('role_var', '_ru_save_uploaded_torrents', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_OVERWRITE_UPLOADED_TORRENTS: "{{ lookup('role_var', '_ru_overwrite_uploaded_torrents', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_FORBID_USER_SETTINGS: "{{ lookup('role_var', '_ru_forbid_user_settings', role='rutorrent', default=omit, default_if_empty=true) }}"
RU_LOCALE: "{{ lookup('role_var', '_ru_locale', role='rutorrent', default=omit, default_if_empty=true) }}"
rutorrent_role_docker_envs_customrutorrent2_docker_envs_custom
# Type: dict
rutorrent_role_docker_envs_custom: {}
# Type: dict
rutorrent2_docker_envs_custom: {}
Volumes
rutorrent_role_docker_volumes_downloadrutorrent2_docker_volumes_download
# Type: bool (true/false)
rutorrent_role_docker_volumes_download: false
# Type: bool (true/false)
rutorrent2_docker_volumes_download: false
rutorrent_role_docker_volumes_defaultrutorrent2_docker_volumes_default
# Type: list
rutorrent_role_docker_volumes_default:
- "{{ lookup('role_var', '_paths_location', role='rutorrent') }}:/data"
- "{{ lookup('role_var', '_paths_downloads_location', role='rutorrent') }}:/downloads"
- "{{ lookup('role_var', '_paths_location', role='rutorrent') }}/passwd:/passwd"
# Type: list
rutorrent2_docker_volumes_default:
- "{{ lookup('role_var', '_paths_location', role='rutorrent') }}:/data"
- "{{ lookup('role_var', '_paths_downloads_location', role='rutorrent') }}:/downloads"
- "{{ lookup('role_var', '_paths_location', role='rutorrent') }}/passwd:/passwd"
rutorrent_role_docker_volumes_customrutorrent2_docker_volumes_custom
# Type: list
rutorrent_role_docker_volumes_custom: []
# Type: list
rutorrent2_docker_volumes_custom: []
Labels
rutorrent_role_docker_labels_defaultrutorrent2_docker_labels_default
# Type: list
rutorrent_role_docker_labels_default:
- '{ "traefik.http.middlewares.{{ rutorrent_name }}-auth.basicauth.usersfile": "/etc/traefik/auth" }'
# Type: list
rutorrent2_docker_labels_default:
- '{ "traefik.http.middlewares.{{ rutorrent_name }}-auth.basicauth.usersfile": "/etc/traefik/auth" }'
rutorrent_role_docker_labels_webdav_templaterutorrent2_docker_labels_webdav_template
# Type: list
rutorrent_role_docker_labels_webdav_template:
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.entrypoints": "{{ traefik_entrypoint_web }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.service": "{{ rutorrent_name }}-webdav" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.rule": "Host(`{{ lookup("role_var", "_webdav_host", role="rutorrent") }}`)" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.middlewares": "{{ traefik_default_middleware_http_api }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.priority": "20" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.entrypoints": "{{ traefik_entrypoint_websecure }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.service": "{{ rutorrent_name }}-webdav" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.rule": "Host(`{{ lookup("role_var", "_webdav_host", role="rutorrent") }}`)" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.tls.options": "securetls@file" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.tls.certresolver": "{{ rutorrent_role_docker_labels_webdav_certificate_plan_lookup.certresolver }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.middlewares": "{{ lookup("role_var", "_traefik_middleware_webdav", role="rutorrent") }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.priority": "20" }'
- '{ "traefik.http.services.{{ rutorrent_name }}-webdav.loadbalancer.server.port": "{{ lookup("role_var", "_webdav_port", role="rutorrent") }}" }'
# Type: list
rutorrent2_docker_labels_webdav_template:
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.entrypoints": "{{ traefik_entrypoint_web }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.service": "{{ rutorrent_name }}-webdav" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.rule": "Host(`{{ lookup("role_var", "_webdav_host", role="rutorrent") }}`)" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.middlewares": "{{ traefik_default_middleware_http_api }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav-http.priority": "20" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.entrypoints": "{{ traefik_entrypoint_websecure }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.service": "{{ rutorrent_name }}-webdav" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.rule": "Host(`{{ lookup("role_var", "_webdav_host", role="rutorrent") }}`)" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.tls.options": "securetls@file" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.tls.certresolver": "{{ rutorrent_role_docker_labels_webdav_certificate_plan_lookup.certresolver }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.middlewares": "{{ lookup("role_var", "_traefik_middleware_webdav", role="rutorrent") }}" }'
- '{ "traefik.http.routers.{{ rutorrent_name }}-webdav.priority": "20" }'
- '{ "traefik.http.services.{{ rutorrent_name }}-webdav.loadbalancer.server.port": "{{ lookup("role_var", "_webdav_port", role="rutorrent") }}" }'
rutorrent_role_docker_labels_webdav_certificate_domainsrutorrent2_docker_labels_webdav_certificate_domains
# Type: string
rutorrent_role_docker_labels_webdav_certificate_domains: "{{ rutorrent_role_docker_labels_webdav_certificate_plan_lookup.domains }}"
# Type: string
rutorrent2_docker_labels_webdav_certificate_domains: "{{ rutorrent_role_docker_labels_webdav_certificate_plan_lookup.domains }}"
rutorrent_role_docker_labels_webdav_certificatesrutorrent2_docker_labels_webdav_certificates
# Type: dict
rutorrent_role_docker_labels_webdav_certificates: "{{ rutorrent_role_docker_labels_webdav_certificate_domains
| traefik_certificate_labels(rutorrent_name + '-webdav') }}"
# Type: dict
rutorrent2_docker_labels_webdav_certificates: "{{ rutorrent_role_docker_labels_webdav_certificate_domains
| traefik_certificate_labels(rutorrent_name + '-webdav') }}"
rutorrent_role_docker_labels_webdavrutorrent2_docker_labels_webdav
# Type: dict
rutorrent_role_docker_labels_webdav: "{{ ((rutorrent_role_docker_labels_webdav_template | map('from_json') | combine)
| combine(rutorrent_role_docker_labels_webdav_certificates))
if (lookup('role_var', '_traefik_webdav_enabled', role='rutorrent') | bool)
else {} }}"
# Type: dict
rutorrent2_docker_labels_webdav: "{{ ((rutorrent_role_docker_labels_webdav_template | map('from_json') | combine)
| combine(rutorrent_role_docker_labels_webdav_certificates))
if (lookup('role_var', '_traefik_webdav_enabled', role='rutorrent') | bool)
else {} }}"
rutorrent_role_docker_labels_customrutorrent2_docker_labels_custom
# Type: dict
rutorrent_role_docker_labels_custom: {}
# Type: dict
rutorrent2_docker_labels_custom: {}
Hostname
rutorrent_role_docker_hostnamerutorrent2_docker_hostname
# Type: string
rutorrent_role_docker_hostname: "{{ rutorrent_name }}"
# Type: string
rutorrent2_docker_hostname: "{{ rutorrent_name }}"
Networks
rutorrent_role_docker_networks_aliasrutorrent2_docker_networks_alias
# Type: string
rutorrent_role_docker_networks_alias: "{{ rutorrent_name }}"
# Type: string
rutorrent2_docker_networks_alias: "{{ rutorrent_name }}"
rutorrent_role_docker_networks_defaultrutorrent2_docker_networks_default
# Type: list
rutorrent_role_docker_networks_default: []
# Type: list
rutorrent2_docker_networks_default: []
rutorrent_role_docker_networks_customrutorrent2_docker_networks_custom
# Type: list
rutorrent_role_docker_networks_custom: []
# Type: list
rutorrent2_docker_networks_custom: []
Restart Policy
rutorrent_role_docker_restart_policyrutorrent2_docker_restart_policy
# Type: string
rutorrent_role_docker_restart_policy: unless-stopped
# Type: string
rutorrent2_docker_restart_policy: unless-stopped
Stop Timeout
rutorrent_role_docker_stop_timeoutrutorrent2_docker_stop_timeout
# Type: int
rutorrent_role_docker_stop_timeout: 10
# Type: int
rutorrent2_docker_stop_timeout: 10
The following advanced options are available via create_docker_container but are not defined in the role. See: docker_container module
A blank value is YAML null and inherits any lower-precedence role or shared default. Explicit Ansible omit is accepted only for optional Docker settings; default-backed and required settings reject it. Use the documented typed empty value, such as "", [], or {}, when disabling a guaranteed setting.
GPU
rutorrent_role_docker_gpu_enabledrutorrent2_docker_gpu_enabled
# Set this to true to let the app use a GPU.
# Intel access also requires gpu.intel: true.
# NVIDIA access also requires nvidia_enabled: true.
# This setting does not install or enable GPU support on the server.
# Type: bool (true/false)
rutorrent_role_docker_gpu_enabled: false
# Set this to true to let the app use a GPU.
# Intel access also requires gpu.intel: true.
# NVIDIA access also requires nvidia_enabled: true.
# This setting does not install or enable GPU support on the server.
# Type: bool (true/false)
rutorrent2_docker_gpu_enabled: false
rutorrent_role_docker_nvidia_disabledrutorrent2_docker_nvidia_disabled
# Set this to true to turn off automatic NVIDIA access for this app.
# It only has an effect when the app's _docker_gpu_enabled option and
# nvidia_enabled are both true.
# Automatic /dev/dri access may remain.
# Type: bool (true/false)
rutorrent_role_docker_nvidia_disabled: false
# Set this to true to turn off automatic NVIDIA access for this app.
# It only has an effect when the app's _docker_gpu_enabled option and
# nvidia_enabled are both true.
# Automatic /dev/dri access may remain.
# Type: bool (true/false)
rutorrent2_docker_nvidia_disabled: false
rutorrent_role_docker_dev_dri_disabledrutorrent2_docker_dev_dri_disabled
# Set this to true to stop Saltbox from automatically sharing the
# server's /dev/dri video devices with this app.
# It only has an effect when the app's _docker_gpu_enabled option is true
# and either gpu.intel or nvidia_enabled is true.
# NVIDIA-specific access may remain.
# Type: bool (true/false)
rutorrent_role_docker_dev_dri_disabled: false
# Set this to true to stop Saltbox from automatically sharing the
# server's /dev/dri video devices with this app.
# It only has an effect when the app's _docker_gpu_enabled option is true
# and either gpu.intel or nvidia_enabled is true.
# NVIDIA-specific access may remain.
# Type: bool (true/false)
rutorrent2_docker_dev_dri_disabled: false
Resource Limits
rutorrent_role_docker_blkio_weightrutorrent2_docker_blkio_weight
# Type: int
rutorrent_role_docker_blkio_weight:
# Type: int
rutorrent2_docker_blkio_weight:
rutorrent_role_docker_cpu_periodrutorrent2_docker_cpu_period
# Type: int
rutorrent_role_docker_cpu_period:
# Type: int
rutorrent2_docker_cpu_period:
rutorrent_role_docker_cpu_quotarutorrent2_docker_cpu_quota
# Type: int
rutorrent_role_docker_cpu_quota:
# Type: int
rutorrent2_docker_cpu_quota:
rutorrent_role_docker_cpu_sharesrutorrent2_docker_cpu_shares
# Type: int
rutorrent_role_docker_cpu_shares:
# Type: int
rutorrent2_docker_cpu_shares:
rutorrent_role_docker_cpusrutorrent2_docker_cpus
# CPU allocation accepted as a numeric string, such as 1.5
# Type: string (quoted number)
rutorrent_role_docker_cpus:
# CPU allocation accepted as a numeric string, such as 1.5
# Type: string (quoted number)
rutorrent2_docker_cpus:
rutorrent_role_docker_cpuset_cpusrutorrent2_docker_cpuset_cpus
# Type: string
rutorrent_role_docker_cpuset_cpus:
# Type: string
rutorrent2_docker_cpuset_cpus:
rutorrent_role_docker_cpuset_memsrutorrent2_docker_cpuset_mems
# Type: string
rutorrent_role_docker_cpuset_mems:
# Type: string
rutorrent2_docker_cpuset_mems:
rutorrent_role_docker_kernel_memoryrutorrent2_docker_kernel_memory
# Type: string
rutorrent_role_docker_kernel_memory:
# Type: string
rutorrent2_docker_kernel_memory:
rutorrent_role_docker_memoryrutorrent2_docker_memory
# Type: string
rutorrent_role_docker_memory:
# Type: string
rutorrent2_docker_memory:
rutorrent_role_docker_memory_reservationrutorrent2_docker_memory_reservation
# Type: string
rutorrent_role_docker_memory_reservation:
# Type: string
rutorrent2_docker_memory_reservation:
rutorrent_role_docker_memory_swaprutorrent2_docker_memory_swap
# Type: string
rutorrent_role_docker_memory_swap:
# Type: string
rutorrent2_docker_memory_swap:
rutorrent_role_docker_memory_swappinessrutorrent2_docker_memory_swappiness
# Type: int
rutorrent_role_docker_memory_swappiness:
# Type: int
rutorrent2_docker_memory_swappiness:
rutorrent_role_docker_shm_sizerutorrent2_docker_shm_size
# Type: string
rutorrent_role_docker_shm_size:
# Type: string
rutorrent2_docker_shm_size:
Security & Devices
rutorrent_role_docker_cap_droprutorrent2_docker_cap_drop
# Type: list
rutorrent_role_docker_cap_drop:
# Type: list
rutorrent2_docker_cap_drop:
rutorrent_role_docker_cgroupns_moderutorrent2_docker_cgroupns_mode
# Type: string
rutorrent_role_docker_cgroupns_mode:
# Type: string
rutorrent2_docker_cgroupns_mode:
rutorrent_role_docker_device_cgroup_rulesrutorrent2_docker_device_cgroup_rules
# Type: list
rutorrent_role_docker_device_cgroup_rules:
# Type: list
rutorrent2_docker_device_cgroup_rules:
rutorrent_role_docker_device_read_bpsrutorrent2_docker_device_read_bps
# Type: list
rutorrent_role_docker_device_read_bps:
# Type: list
rutorrent2_docker_device_read_bps:
rutorrent_role_docker_device_read_iopsrutorrent2_docker_device_read_iops
# Type: list
rutorrent_role_docker_device_read_iops:
# Type: list
rutorrent2_docker_device_read_iops:
rutorrent_role_docker_device_requestsrutorrent2_docker_device_requests
# Type: list
rutorrent_role_docker_device_requests:
# Type: list
rutorrent2_docker_device_requests:
rutorrent_role_docker_device_write_bpsrutorrent2_docker_device_write_bps
# Type: list
rutorrent_role_docker_device_write_bps:
# Type: list
rutorrent2_docker_device_write_bps:
rutorrent_role_docker_device_write_iopsrutorrent2_docker_device_write_iops
# Type: list
rutorrent_role_docker_device_write_iops:
# Type: list
rutorrent2_docker_device_write_iops:
rutorrent_role_docker_devicesrutorrent2_docker_devices
# Type: list
rutorrent_role_docker_devices:
# Type: list
rutorrent2_docker_devices:
rutorrent_role_docker_groupsrutorrent2_docker_groups
# Type: list
rutorrent_role_docker_groups:
# Type: list
rutorrent2_docker_groups:
rutorrent_role_docker_privilegedrutorrent2_docker_privileged
# Type: bool (true/false)
rutorrent_role_docker_privileged:
# Type: bool (true/false)
rutorrent2_docker_privileged:
rutorrent_role_docker_security_optsrutorrent2_docker_security_opts
# Type: list
rutorrent_role_docker_security_opts:
# Type: list
rutorrent2_docker_security_opts:
rutorrent_role_docker_userrutorrent2_docker_user
# Type: string
rutorrent_role_docker_user:
# Type: string
rutorrent2_docker_user:
rutorrent_role_docker_userns_moderutorrent2_docker_userns_mode
# Type: string
rutorrent_role_docker_userns_mode:
# Type: string
rutorrent2_docker_userns_mode:
Networking
rutorrent_role_docker_dns_optsrutorrent2_docker_dns_opts
# Type: list
rutorrent_role_docker_dns_opts:
# Type: list
rutorrent2_docker_dns_opts:
rutorrent_role_docker_dns_search_domainsrutorrent2_docker_dns_search_domains
# Type: list
rutorrent_role_docker_dns_search_domains:
# Type: list
rutorrent2_docker_dns_search_domains:
rutorrent_role_docker_dns_serversrutorrent2_docker_dns_servers
# Type: list
rutorrent_role_docker_dns_servers:
# Type: list
rutorrent2_docker_dns_servers:
rutorrent_role_docker_domainnamerutorrent2_docker_domainname
# Type: string
rutorrent_role_docker_domainname:
# Type: string
rutorrent2_docker_domainname:
rutorrent_role_docker_exposed_portsrutorrent2_docker_exposed_ports
# Type: list
rutorrent_role_docker_exposed_ports:
# Type: list
rutorrent2_docker_exposed_ports:
rutorrent_role_docker_hostsrutorrent2_docker_hosts
# Type: dict
rutorrent_role_docker_hosts:
# Type: dict
rutorrent2_docker_hosts:
rutorrent_role_docker_hosts_use_commonrutorrent2_docker_hosts_use_common
# Type: bool (true/false)
rutorrent_role_docker_hosts_use_common:
# Type: bool (true/false)
rutorrent2_docker_hosts_use_common:
rutorrent_role_docker_ipc_moderutorrent2_docker_ipc_mode
# Type: string
rutorrent_role_docker_ipc_mode:
# Type: string
rutorrent2_docker_ipc_mode:
rutorrent_role_docker_linksrutorrent2_docker_links
# Type: list
rutorrent_role_docker_links:
# Type: list
rutorrent2_docker_links:
rutorrent_role_docker_network_moderutorrent2_docker_network_mode
# Type: string
rutorrent_role_docker_network_mode:
# Type: string
rutorrent2_docker_network_mode:
rutorrent_role_docker_pid_moderutorrent2_docker_pid_mode
# Type: string
rutorrent_role_docker_pid_mode:
# Type: string
rutorrent2_docker_pid_mode:
rutorrent_role_docker_utsrutorrent2_docker_uts
# Type: string
rutorrent_role_docker_uts:
# Type: string
rutorrent2_docker_uts:
Storage
rutorrent_role_docker_keep_volumesrutorrent2_docker_keep_volumes
# Type: bool (true/false)
rutorrent_role_docker_keep_volumes:
# Type: bool (true/false)
rutorrent2_docker_keep_volumes:
rutorrent_role_docker_mountsrutorrent2_docker_mounts
# Type: list
rutorrent_role_docker_mounts:
# Type: list
rutorrent2_docker_mounts:
rutorrent_role_docker_storage_optsrutorrent2_docker_storage_opts
# Type: dict
rutorrent_role_docker_storage_opts:
# Type: dict
rutorrent2_docker_storage_opts:
rutorrent_role_docker_tmpfsrutorrent2_docker_tmpfs
# Type: list
rutorrent_role_docker_tmpfs:
# Type: list
rutorrent2_docker_tmpfs:
rutorrent_role_docker_volume_driverrutorrent2_docker_volume_driver
# Type: string
rutorrent_role_docker_volume_driver:
# Type: string
rutorrent2_docker_volume_driver:
rutorrent_role_docker_volumes_fromrutorrent2_docker_volumes_from
# Type: list
rutorrent_role_docker_volumes_from:
# Type: list
rutorrent2_docker_volumes_from:
rutorrent_role_docker_volumes_globalrutorrent2_docker_volumes_global
# Type: bool (true/false)
rutorrent_role_docker_volumes_global:
# Type: bool (true/false)
rutorrent2_docker_volumes_global:
rutorrent_role_docker_working_dirrutorrent2_docker_working_dir
# Type: string
rutorrent_role_docker_working_dir:
# Type: string
rutorrent2_docker_working_dir:
Monitoring & Lifecycle
rutorrent_role_docker_auto_removerutorrent2_docker_auto_remove
# Type: bool (true/false)
rutorrent_role_docker_auto_remove:
# Type: bool (true/false)
rutorrent2_docker_auto_remove:
rutorrent_role_docker_cleanuprutorrent2_docker_cleanup
# Type: bool (true/false)
rutorrent_role_docker_cleanup:
# Type: bool (true/false)
rutorrent2_docker_cleanup:
rutorrent_role_docker_force_killrutorrent2_docker_force_kill
# Type: bool (true/false)
rutorrent_role_docker_force_kill:
# Type: bool (true/false)
rutorrent2_docker_force_kill:
rutorrent_role_docker_healthcheckrutorrent2_docker_healthcheck
# Type: dict
rutorrent_role_docker_healthcheck:
# Type: dict
rutorrent2_docker_healthcheck:
rutorrent_role_docker_healthy_wait_timeoutrutorrent2_docker_healthy_wait_timeout
# Healthy-state wait timeout in seconds
# Type: int
rutorrent_role_docker_healthy_wait_timeout:
# Healthy-state wait timeout in seconds
# Type: int
rutorrent2_docker_healthy_wait_timeout:
rutorrent_role_docker_initrutorrent2_docker_init
# Type: bool (true/false)
rutorrent_role_docker_init:
# Type: bool (true/false)
rutorrent2_docker_init:
rutorrent_role_docker_kill_signalrutorrent2_docker_kill_signal
# Type: string
rutorrent_role_docker_kill_signal:
# Type: string
rutorrent2_docker_kill_signal:
rutorrent_role_docker_log_driverrutorrent2_docker_log_driver
# Type: string
rutorrent_role_docker_log_driver:
# Type: string
rutorrent2_docker_log_driver:
rutorrent_role_docker_log_optionsrutorrent2_docker_log_options
# Type: dict
rutorrent_role_docker_log_options:
# Type: dict
rutorrent2_docker_log_options:
rutorrent_role_docker_oom_killerrutorrent2_docker_oom_killer
# Type: bool (true/false)
rutorrent_role_docker_oom_killer:
# Type: bool (true/false)
rutorrent2_docker_oom_killer:
rutorrent_role_docker_oom_score_adjrutorrent2_docker_oom_score_adj
# Type: int
rutorrent_role_docker_oom_score_adj:
# Type: int
rutorrent2_docker_oom_score_adj:
rutorrent_role_docker_output_logsrutorrent2_docker_output_logs
# Type: bool (true/false)
rutorrent_role_docker_output_logs:
# Type: bool (true/false)
rutorrent2_docker_output_logs:
rutorrent_role_docker_pausedrutorrent2_docker_paused
# Type: bool (true/false)
rutorrent_role_docker_paused:
# Type: bool (true/false)
rutorrent2_docker_paused:
rutorrent_role_docker_recreaterutorrent2_docker_recreate
# Type: bool (true/false)
rutorrent_role_docker_recreate:
# Type: bool (true/false)
rutorrent2_docker_recreate:
rutorrent_role_docker_restart_retriesrutorrent2_docker_restart_retries
# Type: int
rutorrent_role_docker_restart_retries:
# Type: int
rutorrent2_docker_restart_retries:
rutorrent_role_docker_stop_signalrutorrent2_docker_stop_signal
# Type: string
rutorrent_role_docker_stop_signal:
# Type: string
rutorrent2_docker_stop_signal:
Other Options
rutorrent_role_docker_capabilitiesrutorrent2_docker_capabilities
# Type: list
rutorrent_role_docker_capabilities:
# Type: list
rutorrent2_docker_capabilities:
rutorrent_role_docker_cgroup_parentrutorrent2_docker_cgroup_parent
# Type: string
rutorrent_role_docker_cgroup_parent:
# Type: string
rutorrent2_docker_cgroup_parent:
rutorrent_role_docker_commandsrutorrent2_docker_commands
# Type: list
rutorrent_role_docker_commands:
# Type: list
rutorrent2_docker_commands:
rutorrent_role_docker_create_timeoutrutorrent2_docker_create_timeout
# Type: int
rutorrent_role_docker_create_timeout:
# Type: int
rutorrent2_docker_create_timeout:
rutorrent_role_docker_entrypointrutorrent2_docker_entrypoint
# Type: list
rutorrent_role_docker_entrypoint:
# Type: list
rutorrent2_docker_entrypoint:
rutorrent_role_docker_env_filerutorrent2_docker_env_file
# Type: string
rutorrent_role_docker_env_file:
# Type: string
rutorrent2_docker_env_file:
rutorrent_role_docker_labels_use_commonrutorrent2_docker_labels_use_common
# Type: bool (true/false)
rutorrent_role_docker_labels_use_common:
# Type: bool (true/false)
rutorrent2_docker_labels_use_common:
rutorrent_role_docker_read_onlyrutorrent2_docker_read_only
# Type: bool (true/false)
rutorrent_role_docker_read_only:
# Type: bool (true/false)
rutorrent2_docker_read_only:
rutorrent_role_docker_runtimerutorrent2_docker_runtime
# Type: string
rutorrent_role_docker_runtime:
# Type: string
rutorrent2_docker_runtime:
rutorrent_role_docker_sysctlsrutorrent2_docker_sysctls
# Type: dict
rutorrent_role_docker_sysctls:
# Type: dict
rutorrent2_docker_sysctls:
rutorrent_role_docker_ulimitsrutorrent2_docker_ulimits
# Type: list
rutorrent_role_docker_ulimits:
# Type: list
rutorrent2_docker_ulimits:
rutorrent_role_autoheal_enabledrutorrent2_autoheal_enabled
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
rutorrent_role_autoheal_enabled: true
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
rutorrent2_autoheal_enabled: true
rutorrent_role_depends_onrutorrent2_depends_on
# List of container dependencies that must be running before containers start
# Type: string
rutorrent_role_depends_on: ""
# List of container dependencies that must be running before containers start
# Type: string
rutorrent2_depends_on: ""
rutorrent_role_depends_on_delayrutorrent2_depends_on_delay
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
rutorrent_role_depends_on_delay: "0"
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
rutorrent2_depends_on_delay: "0"
rutorrent_role_depends_on_healthchecksrutorrent2_depends_on_healthchecks
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
rutorrent_role_depends_on_healthchecks:
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
rutorrent2_depends_on_healthchecks:
rutorrent_role_diun_enabledrutorrent2_diun_enabled
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
rutorrent_role_diun_enabled: true
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
rutorrent2_diun_enabled: true
rutorrent_role_dns_enabledrutorrent2_dns_enabled
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
rutorrent_role_dns_enabled: true
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
rutorrent2_dns_enabled: true
rutorrent_role_docker_controllerrutorrent2_docker_controller
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
rutorrent_role_docker_controller: true
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
rutorrent2_docker_controller: true
rutorrent_role_docker_networks_alias_customrutorrent2_docker_networks_alias_custom
# Type: list
rutorrent_role_docker_networks_alias_custom:
# Type: list
rutorrent2_docker_networks_alias_custom:
rutorrent_role_paths_folders_list_customrutorrent2_paths_folders_list_custom
# Extra directories to create
# Type: list
rutorrent_role_paths_folders_list_custom:
# Extra directories to create
# Type: list
rutorrent2_paths_folders_list_custom:
rutorrent_role_paths_grouprutorrent2_paths_group
# Group for directories created by the role
# Type: string
rutorrent_role_paths_group:
# Group for directories created by the role
# Type: string
rutorrent2_paths_group:
rutorrent_role_paths_ownerrutorrent2_paths_owner
# Owner for directories created by the role
# Type: string
rutorrent_role_paths_owner:
# Owner for directories created by the role
# Type: string
rutorrent2_paths_owner:
rutorrent_role_paths_permissionsrutorrent2_paths_permissions
# Permissions for directories created by the role
# Type: string
rutorrent_role_paths_permissions:
# Permissions for directories created by the role
# Type: string
rutorrent2_paths_permissions:
rutorrent_role_paths_recursiverutorrent2_paths_recursive
# Apply owner and group recursively without changing child modes
# Type: bool (true/false)
rutorrent_role_paths_recursive:
# Apply owner and group recursively without changing child modes
# Type: bool (true/false)
rutorrent2_paths_recursive:
rutorrent_role_themepark_addonsrutorrent2_themepark_addons
# ThemePark addon names to enable
# Type: list
rutorrent_role_themepark_addons:
# ThemePark addon names to enable
# Type: list
rutorrent2_themepark_addons:
rutorrent_role_themepark_apprutorrent2_themepark_app
# Type: string
rutorrent_role_themepark_app:
# Type: string
rutorrent2_themepark_app:
rutorrent_role_themepark_themerutorrent2_themepark_theme
# Type: string
rutorrent_role_themepark_theme:
# Type: string
rutorrent2_themepark_theme:
rutorrent_role_traefik_api_middleware_httprutorrent2_traefik_api_middleware_http
# Type: string
rutorrent_role_traefik_api_middleware_http:
# Type: string
rutorrent2_traefik_api_middleware_http:
rutorrent_role_traefik_autodetect_enabledrutorrent2_traefik_autodetect_enabled
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
rutorrent_role_traefik_autodetect_enabled: false
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
rutorrent2_traefik_autodetect_enabled: false
rutorrent_role_traefik_crowdsec_enabledrutorrent2_traefik_crowdsec_enabled
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
rutorrent_role_traefik_crowdsec_enabled: false
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
rutorrent2_traefik_crowdsec_enabled: false
rutorrent_role_traefik_error_pages_enabledrutorrent2_traefik_error_pages_enabled
# Enable custom error pages middleware for containers
# Type: bool (true/false)
rutorrent_role_traefik_error_pages_enabled: false
# Enable custom error pages middleware for containers
# Type: bool (true/false)
rutorrent2_traefik_error_pages_enabled: false
rutorrent_role_traefik_gzip_enabledrutorrent2_traefik_gzip_enabled
# Enable gzip compression middleware for containers
# Type: bool (true/false)
rutorrent_role_traefik_gzip_enabled: false
# Enable gzip compression middleware for containers
# Type: bool (true/false)
rutorrent2_traefik_gzip_enabled: false
rutorrent_role_traefik_middleware_httprutorrent2_traefik_middleware_http
# Type: string
rutorrent_role_traefik_middleware_http:
# Type: string
rutorrent2_traefik_middleware_http:
rutorrent_role_traefik_middleware_http_api_insecurerutorrent2_traefik_middleware_http_api_insecure
# Type: bool (true/false)
rutorrent_role_traefik_middleware_http_api_insecure:
# Type: bool (true/false)
rutorrent2_traefik_middleware_http_api_insecure:
rutorrent_role_traefik_middleware_http_insecurerutorrent2_traefik_middleware_http_insecure
# Type: bool (true/false)
rutorrent_role_traefik_middleware_http_insecure:
# Type: bool (true/false)
rutorrent2_traefik_middleware_http_insecure:
rutorrent_role_traefik_priorityrutorrent2_traefik_priority
# Type: string
rutorrent_role_traefik_priority:
# Type: string
rutorrent2_traefik_priority:
rutorrent_role_traefik_robot_enabledrutorrent2_traefik_robot_enabled
# Enable robots.txt middleware for containers
# Type: bool (true/false)
rutorrent_role_traefik_robot_enabled: true
# Enable robots.txt middleware for containers
# Type: bool (true/false)
rutorrent2_traefik_robot_enabled: true
rutorrent_role_traefik_tailscale_enabledrutorrent2_traefik_tailscale_enabled
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
rutorrent_role_traefik_tailscale_enabled: false
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
rutorrent2_traefik_tailscale_enabled: false
rutorrent_role_traefik_wildcard_enabledrutorrent2_traefik_wildcard_enabled
# Enable wildcard certificate for containers
# Type: bool (true/false)
rutorrent_role_traefik_wildcard_enabled: true
# Enable wildcard certificate for containers
# Type: bool (true/false)
rutorrent2_traefik_wildcard_enabled: true
rutorrent_role_web_api_http_portrutorrent2_web_api_http_port
# Type: string (quoted number)
rutorrent_role_web_api_http_port:
# Type: string (quoted number)
rutorrent2_web_api_http_port:
rutorrent_role_web_api_http_schemerutorrent2_web_api_http_scheme
# Type: string ("http"/"https")
rutorrent_role_web_api_http_scheme:
# Type: string ("http"/"https")
rutorrent2_web_api_http_scheme:
rutorrent_role_web_api_http_serverstransportrutorrent2_web_api_http_serverstransport
# Type: dict/omit
rutorrent_role_web_api_http_serverstransport:
# Type: dict/omit
rutorrent2_web_api_http_serverstransport:
rutorrent_role_web_api_schemerutorrent2_web_api_scheme
# Type: string ("http"/"https")
rutorrent_role_web_api_scheme:
# Type: string ("http"/"https")
rutorrent2_web_api_scheme:
rutorrent_role_web_api_serverstransportrutorrent2_web_api_serverstransport
# Type: dict/omit
rutorrent_role_web_api_serverstransport:
# Type: dict/omit
rutorrent2_web_api_serverstransport:
rutorrent_role_web_fqdn_overriderutorrent2_web_fqdn_override
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
rutorrent_role_web_fqdn_override:
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
rutorrent2_web_fqdn_override:
Example Override
rutorrent_role_web_fqdn_override:
- "{{ traefik_host }}"
- "rutorrent2.{{ user.domain }}"
- "rutorrent.otherdomain.tld"
Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries
Example Override
rutorrent2_web_fqdn_override:
- "{{ traefik_host }}"
- "rutorrent2.{{ user.domain }}"
- "rutorrent.otherdomain.tld"
Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries
rutorrent_role_web_host_overriderutorrent2_web_host_override
# Override the Traefik web host configuration for containers
# Type: string
rutorrent_role_web_host_override:
# Override the Traefik web host configuration for containers
# Type: string
rutorrent2_web_host_override:
Example Override
rutorrent_role_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'rutorrent2.' + user.domain }}`)"
Note: Use {{ traefik_host }} to include the default host configuration in your custom rule
Example Override
rutorrent2_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'rutorrent2.' + user.domain }}`)"
Note: Use {{ traefik_host }} to include the default host configuration in your custom rule
rutorrent_role_web_http_portrutorrent2_web_http_port
# Type: string (quoted number)
rutorrent_role_web_http_port:
# Type: string (quoted number)
rutorrent2_web_http_port:
rutorrent_role_web_http_schemerutorrent2_web_http_scheme
# Type: string ("http"/"https")
rutorrent_role_web_http_scheme:
# Type: string ("http"/"https")
rutorrent2_web_http_scheme:
rutorrent_role_web_http_serverstransportrutorrent2_web_http_serverstransport
# Type: dict/omit
rutorrent_role_web_http_serverstransport:
# Type: dict/omit
rutorrent2_web_http_serverstransport:
rutorrent_role_web_schemerutorrent2_web_scheme
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
rutorrent_role_web_scheme:
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
rutorrent2_web_scheme:
rutorrent_role_web_serverstransportrutorrent2_web_serverstransport
# Type: dict/omit
rutorrent_role_web_serverstransport:
# Type: dict/omit
rutorrent2_web_serverstransport: