Skip to content

Emby

Description / nameInput element
Your domain name

Overview

Emby is a media server designed to organize, play, and stream audio and video to a variety of devices.


Configuration

See Adding a Subdomain on how to add the subdomain emby to your DNS provider.

Note: You can skip this step if you are using Cloudflare with Saltbox.

Deployment

sb install emby

Usage

Visit https://emby.iYOUR_DOMAIN_NAMEi.

Basics

Initial Setup

  1. Visit https://emby.iYOUR_DOMAIN_NAMEi.

  2. Select your preferred display language. Click Next.

  3. Type the following and click Next:

    • Username: The username you wwant to use to log into Emby

    • New Password: A strong password you'll use to log into Emby

    • New Password Confirm: That same password again

    • Emby connect username or email address: your Emby Connect username (important)

  4. Confirm the message by clicking Got It.

  5. Confirm the link in your email.

  6. Skip the adding of the libraries. Click Next.

  7. Select your Preferred Metadata Language and Country (English and United States are recommended) and click Next.

  8. Uncheck Enable automatic port mapping. Click Next.

  9. Check to accept the terms. Click Next.

  10. Click Finish.

  11. You will now be taken to the Dashboard view.

Settings

  1. Go to Settings.

  2. Go to Transcoding.

  3. Under Enable hardware acceleration when available, select Advanced.

  4. Under Transcoding temporary path, type in or choose /transcode.

  5. Click Save.

Libraries

In this section, we will add two libraries: one for Movies and one for TV Shows.

Add Movie Library

  1. Go to Settings.

  2. Go to Library.

  3. Click + New Library.

  4. Under Content type, select Movies.

  5. Click + next to Folders.

  6. Type in or choose /mnt/unionfs/Media/Movies. Click OK.

    Note: These paths are for the standard library setup. If you have customized it, use those paths instead.

  7. Click OK once more.

Add TV Shows Library

  1. Go to Settings.

  2. Go to Library.

  3. Click + New Library.

  4. Under Content type, select TV shows.

  5. Click + next to Folders.

  6. Type in or choose /mnt/unionfs/Media/TV. Click OK.

    Note: These paths are for the standard library setup. If you have customized it, use those paths instead.

  7. Click OK once more.

API Key

Instructions below will guide you through creating an API Key for a specific app.

  1. Click the Settings icon.

  2. Under Advanced, click API Keys.

  3. Click + New API Key.

  4. Fill in an App name (e.g. Ombi) and click OK.

  5. You have now have created an Api Key for your app.

Role Defaults

Use the Inventory to customize variables. (1)

  1. This role supports multiple instances via emby_instances.

    Example override

    emby_role_web_subdomain: "custom"
    

    Applies to all instances of emby

    emby2_web_subdomain: "custom2"
    

    Applies to the instance named emby2

    Avoid overriding variables ending in _default

    When overriding variables that end in _default (like emby_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 _custom variable (like emby_docker_envs_custom) to add your changes. Custom values are merged with defaults, ensuring you receive updates.

emby_instances
# Type: list
emby_instances: ["emby"]

Example Override

# Type: list
emby_instances: ["emby", "emby2"]
emby_role_config_settings_is_behind_proxyemby2_config_settings_is_behind_proxy
# Type: string
emby_role_config_settings_is_behind_proxy: "true"
# Type: string
emby2_config_settings_is_behind_proxy: "true"
emby_role_config_settings_wan_ddnsemby2_config_settings_wan_ddns
# Type: string
emby_role_config_settings_wan_ddns: "{{ lookup('role_var', '_web_subdomain', role='emby') }}.{{ lookup('role_var', '_web_domain', role='emby') }}"
# Type: string
emby2_config_settings_wan_ddns: "{{ lookup('role_var', '_web_subdomain', role='emby') }}.{{ lookup('role_var', '_web_domain', role='emby') }}"
emby_role_config_settings_public_portemby2_config_settings_public_port
# Type: string
emby_role_config_settings_public_port: "80"
# Type: string
emby2_config_settings_public_port: "80"
emby_role_config_settings_public_https_portemby2_config_settings_public_https_port
# Type: string
emby_role_config_settings_public_https_port: "443"
# Type: string
emby2_config_settings_public_https_port: "443"
emby_role_config_settings_enable_httpsemby2_config_settings_enable_https
# Type: string
emby_role_config_settings_enable_https: "true"
# Type: string
emby2_config_settings_enable_https: "true"
emby_role_config_settings_require_httpsemby2_config_settings_require_https
# Type: string
emby_role_config_settings_require_https: "false"
# Type: string
emby2_config_settings_require_https: "false"
emby_role_config_settings_enable_upnpemby2_config_settings_enable_upnp
# Type: string
emby_role_config_settings_enable_upnp: "false"
# Type: string
emby2_config_settings_enable_upnp: "false"
emby_role_config_settings_database_cache_size_mbemby2_config_settings_database_cache_size_mb
# Type: string
emby_role_config_settings_database_cache_size_mb: "1024"
# Type: string
emby2_config_settings_database_cache_size_mb: "1024"
emby_role_web_subdomainemby2_web_subdomain
# Type: string
emby_role_web_subdomain: "{{ emby_name }}"
# Type: string
emby2_web_subdomain: "{{ emby_name }}"
emby_role_web_domainemby2_web_domain
# Type: string
emby_role_web_domain: "{{ user.domain }}"
# Type: string
emby2_web_domain: "{{ user.domain }}"
emby_role_web_portemby2_web_port
# Type: string
emby_role_web_port: "8096"
# Type: string
emby2_web_port: "8096"
emby_role_web_urlemby2_web_url
# Type: string
emby_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='emby') + '.' + lookup('role_var', '_web_domain', role='emby')
                    if (lookup('role_var', '_web_subdomain', role='emby') | length > 0)
                    else lookup('role_var', '_web_domain', role='emby')) }}"
# Type: string
emby2_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='emby') + '.' + lookup('role_var', '_web_domain', role='emby')
                if (lookup('role_var', '_web_subdomain', role='emby') | length > 0)
                else lookup('role_var', '_web_domain', role='emby')) }}"
emby_role_dns_recordemby2_dns_record
# Type: string
emby_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='emby') }}"
# Type: string
emby2_dns_record: "{{ lookup('role_var', '_web_subdomain', role='emby') }}"
emby_role_dns_zoneemby2_dns_zone
# Type: string
emby_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='emby') }}"
# Type: string
emby2_dns_zone: "{{ lookup('role_var', '_web_domain', role='emby') }}"
emby_role_dns_proxyemby2_dns_proxy
# Type: bool (true/false)
emby_role_dns_proxy: "{{ dns_proxied }}"
# Type: bool (true/false)
emby2_dns_proxy: "{{ dns_proxied }}"
emby_role_traefik_sso_middlewareemby2_traefik_sso_middleware
# Type: string
emby_role_traefik_sso_middleware: ""
# Type: string
emby2_traefik_sso_middleware: ""
emby_role_traefik_middleware_defaultemby2_traefik_middleware_default
# Type: string
emby_role_traefik_middleware_default: "{{ traefik_default_middleware
                                          + (',themepark-' + emby_name
                                            if (lookup('role_var', '_themepark_enabled', role='emby') and global_themepark_plugin_enabled)
                                            else '') }}"
# Type: string
emby2_traefik_middleware_default: "{{ traefik_default_middleware
                                      + (',themepark-' + emby_name
                                        if (lookup('role_var', '_themepark_enabled', role='emby') and global_themepark_plugin_enabled)
                                        else '') }}"
emby_role_traefik_middleware_customemby2_traefik_middleware_custom
# Type: string
emby_role_traefik_middleware_custom: ""
# Type: string
emby2_traefik_middleware_custom: ""
emby_role_traefik_certresolveremby2_traefik_certresolver
# Type: string
emby_role_traefik_certresolver: "{{ traefik_default_certresolver }}"
# Type: string
emby2_traefik_certresolver: "{{ traefik_default_certresolver }}"
emby_role_traefik_enabledemby2_traefik_enabled
# Type: bool (true/false)
emby_role_traefik_enabled: true
# Type: bool (true/false)
emby2_traefik_enabled: true
emby_role_traefik_gzip_enabledemby2_traefik_gzip_enabled
# Type: bool (true/false)
emby_role_traefik_gzip_enabled: false
# Type: bool (true/false)
emby2_traefik_gzip_enabled: false
emby_role_traefik_api_enabledemby2_traefik_api_enabled
# Type: bool (true/false)
emby_role_traefik_api_enabled: false
# Type: bool (true/false)
emby2_traefik_api_enabled: false
emby_role_traefik_api_endpointemby2_traefik_api_endpoint
# Type: string
emby_role_traefik_api_endpoint: ""
# Type: string
emby2_traefik_api_endpoint: ""
emby_role_themepark_enabledemby2_themepark_enabled
# Options can be found at https://github.com/themepark-dev/theme.park
# Type: bool (true/false)
emby_role_themepark_enabled: false
# Options can be found at https://github.com/themepark-dev/theme.park
# Type: bool (true/false)
emby2_themepark_enabled: false
emby_role_themepark_appemby2_themepark_app
# Type: string
emby_role_themepark_app: "emby"
# Type: string
emby2_themepark_app: "emby"
emby_role_themepark_themeemby2_themepark_theme
# Type: string
emby_role_themepark_theme: "{{ global_themepark_theme }}"
# Type: string
emby2_themepark_theme: "{{ global_themepark_theme }}"
emby_role_themepark_domainemby2_themepark_domain
# Type: string
emby_role_themepark_domain: "{{ global_themepark_domain }}"
# Type: string
emby2_themepark_domain: "{{ global_themepark_domain }}"
emby_role_themepark_addonsemby2_themepark_addons
# Type: list
emby_role_themepark_addons: []
# Type: list
emby2_themepark_addons: []
emby_role_config_settings_defaultemby2_config_settings_default
# Type: list
emby_role_config_settings_default:
  - xpath: 'IsBehindProxy'
    value: "{{ lookup('role_var', '_config_settings_is_behind_proxy', role='emby') }}"
  - xpath: 'WanDdns'
    value: "{{ lookup('role_var', '_config_settings_wan_ddns', role='emby') }}"
  - xpath: 'PublicPort'
    value: "{{ lookup('role_var', '_config_settings_public_port', role='emby') }}"
  - xpath: 'PublicHttpsPort'
    value: "{{ lookup('role_var', '_config_settings_public_https_port', role='emby') }}"
  - xpath: 'EnableHttps'
    value: "{{ lookup('role_var', '_config_settings_enable_https', role='emby') }}"
  - xpath: 'RequireHttps'
    value: "{{ lookup('role_var', '_config_settings_require_https', role='emby') }}"
  - xpath: 'EnableUPnP'
    value: "{{ lookup('role_var', '_config_settings_enable_upnp', role='emby') }}"
  - xpath: 'DatabaseCacheSizeMB'
    value: "{{ lookup('role_var', '_config_settings_database_cache_size_mb', role='emby') }}"
# Type: list
emby2_config_settings_default:
  - xpath: 'IsBehindProxy'
    value: "{{ lookup('role_var', '_config_settings_is_behind_proxy', role='emby') }}"
  - xpath: 'WanDdns'
    value: "{{ lookup('role_var', '_config_settings_wan_ddns', role='emby') }}"
  - xpath: 'PublicPort'
    value: "{{ lookup('role_var', '_config_settings_public_port', role='emby') }}"
  - xpath: 'PublicHttpsPort'
    value: "{{ lookup('role_var', '_config_settings_public_https_port', role='emby') }}"
  - xpath: 'EnableHttps'
    value: "{{ lookup('role_var', '_config_settings_enable_https', role='emby') }}"
  - xpath: 'RequireHttps'
    value: "{{ lookup('role_var', '_config_settings_require_https', role='emby') }}"
  - xpath: 'EnableUPnP'
    value: "{{ lookup('role_var', '_config_settings_enable_upnp', role='emby') }}"
  - xpath: 'DatabaseCacheSizeMB'
    value: "{{ lookup('role_var', '_config_settings_database_cache_size_mb', role='emby') }}"
emby_role_config_settings_customemby2_config_settings_custom
# Type: list
emby_role_config_settings_custom: []
# Type: list
emby2_config_settings_custom: []
emby_role_config_settings_listemby2_config_settings_list
# Type: string
emby_role_config_settings_list: "{{ lookup('role_var', '_config_settings_default', role='emby') + lookup('role_var', '_config_settings_custom', role='emby') }}"
# Type: string
emby2_config_settings_list: "{{ lookup('role_var', '_config_settings_default', role='emby') + lookup('role_var', '_config_settings_custom', role='emby') }}"

Container

emby_role_docker_containeremby2_docker_container
# Type: string
emby_role_docker_container: "{{ emby_name }}"
# Type: string
emby2_docker_container: "{{ emby_name }}"

Image

emby_role_docker_image_pullemby2_docker_image_pull
# Type: bool (true/false)
emby_role_docker_image_pull: true
# Type: bool (true/false)
emby2_docker_image_pull: true
emby_role_docker_image_repoemby2_docker_image_repo
# Type: string
emby_role_docker_image_repo: "lscr.io/linuxserver/emby"
# Type: string
emby2_docker_image_repo: "lscr.io/linuxserver/emby"
emby_role_docker_image_tagemby2_docker_image_tag
# Type: string
emby_role_docker_image_tag: "latest"
# Type: string
emby2_docker_image_tag: "latest"
emby_role_docker_imageemby2_docker_image
# Type: string
emby_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='emby') }}:{{ lookup('role_var', '_docker_image_tag', role='emby') }}"
# Type: string
emby2_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='emby') }}:{{ lookup('role_var', '_docker_image_tag', role='emby') }}"

Envs

emby_role_docker_envs_defaultemby2_docker_envs_default
# Type: dict
emby_role_docker_envs_default:
  PUID: "{{ uid }}"
  PGID: "{{ gid }}"
  TZ: "{{ tz }}"
# Type: dict
emby2_docker_envs_default:
  PUID: "{{ uid }}"
  PGID: "{{ gid }}"
  TZ: "{{ tz }}"
emby_role_docker_envs_customemby2_docker_envs_custom
# Type: dict
emby_role_docker_envs_custom: {}
# Type: dict
emby2_docker_envs_custom: {}

Volumes

emby_role_docker_volumes_defaultemby2_docker_volumes_default
# Type: list
emby_role_docker_volumes_default:
  - "{{ emby_role_paths_location }}:/config"
  - "{{ server_appdata_path }}/scripts:/scripts"
  - "/dev/shm:/dev/shm"
  - "{{ emby_role_paths_transcodes_location }}:/transcode"
# Type: list
emby2_docker_volumes_default:
  - "{{ emby_role_paths_location }}:/config"
  - "{{ server_appdata_path }}/scripts:/scripts"
  - "/dev/shm:/dev/shm"
  - "{{ emby_role_paths_transcodes_location }}:/transcode"
emby_role_docker_volumes_legacyemby2_docker_volumes_legacy
# Type: list
emby_role_docker_volumes_legacy:
  - "/mnt/unionfs/Media:/data"
# Type: list
emby2_docker_volumes_legacy:
  - "/mnt/unionfs/Media:/data"
emby_role_docker_volumes_customemby2_docker_volumes_custom
# Type: list
emby_role_docker_volumes_custom: []
# Type: list
emby2_docker_volumes_custom: []

Mounts

emby_role_docker_mounts_defaultemby2_docker_mounts_default
# Type: list
emby_role_docker_mounts_default:
  - target: /tmp
    type: tmpfs
# Type: list
emby2_docker_mounts_default:
  - target: /tmp
    type: tmpfs
emby_role_docker_mounts_customemby2_docker_mounts_custom
# Type: list
emby_role_docker_mounts_custom: []
# Type: list
emby2_docker_mounts_custom: []

Labels

emby_role_docker_labels_defaultemby2_docker_labels_default
# Type: dict
emby_role_docker_labels_default: {}
# Type: dict
emby2_docker_labels_default: {}
emby_role_docker_labels_customemby2_docker_labels_custom
# Type: dict
emby_role_docker_labels_custom: {}
# Type: dict
emby2_docker_labels_custom: {}

Hostname

emby_role_docker_hostnameemby2_docker_hostname
# Type: string
emby_role_docker_hostname: "{{ emby_name }}"
# Type: string
emby2_docker_hostname: "{{ emby_name }}"

Networks

emby_role_docker_networks_aliasemby2_docker_networks_alias
# Type: string
emby_role_docker_networks_alias: "{{ emby_name }}"
# Type: string
emby2_docker_networks_alias: "{{ emby_name }}"
emby_role_docker_networks_defaultemby2_docker_networks_default
# Type: list
emby_role_docker_networks_default: []
# Type: list
emby2_docker_networks_default: []
emby_role_docker_networks_customemby2_docker_networks_custom
# Type: list
emby_role_docker_networks_custom: []
# Type: list
emby2_docker_networks_custom: []

Restart Policy

emby_role_docker_restart_policyemby2_docker_restart_policy
# Type: string
emby_role_docker_restart_policy: unless-stopped
# Type: string
emby2_docker_restart_policy: unless-stopped

State

emby_role_docker_stateemby2_docker_state
# Type: string
emby_role_docker_state: started
# Type: string
emby2_docker_state: started

The following advanced options are available via create_docker_container but are not defined in the role. See: docker_container module

Resource Limits

emby_role_docker_blkio_weightemby2_docker_blkio_weight
# Type: int
emby_role_docker_blkio_weight:
# Type: int
emby2_docker_blkio_weight:
emby_role_docker_cpu_periodemby2_docker_cpu_period
# Type: int
emby_role_docker_cpu_period:
# Type: int
emby2_docker_cpu_period:
emby_role_docker_cpu_quotaemby2_docker_cpu_quota
# Type: int
emby_role_docker_cpu_quota:
# Type: int
emby2_docker_cpu_quota:
emby_role_docker_cpu_sharesemby2_docker_cpu_shares
# Type: int
emby_role_docker_cpu_shares:
# Type: int
emby2_docker_cpu_shares:
emby_role_docker_cpusemby2_docker_cpus
# Type: string
emby_role_docker_cpus:
# Type: string
emby2_docker_cpus:
emby_role_docker_cpuset_cpusemby2_docker_cpuset_cpus
# Type: string
emby_role_docker_cpuset_cpus:
# Type: string
emby2_docker_cpuset_cpus:
emby_role_docker_cpuset_memsemby2_docker_cpuset_mems
# Type: string
emby_role_docker_cpuset_mems:
# Type: string
emby2_docker_cpuset_mems:
emby_role_docker_kernel_memoryemby2_docker_kernel_memory
# Type: string
emby_role_docker_kernel_memory:
# Type: string
emby2_docker_kernel_memory:
emby_role_docker_memoryemby2_docker_memory
# Type: string
emby_role_docker_memory:
# Type: string
emby2_docker_memory:
emby_role_docker_memory_reservationemby2_docker_memory_reservation
# Type: string
emby_role_docker_memory_reservation:
# Type: string
emby2_docker_memory_reservation:
emby_role_docker_memory_swapemby2_docker_memory_swap
# Type: string
emby_role_docker_memory_swap:
# Type: string
emby2_docker_memory_swap:
emby_role_docker_memory_swappinessemby2_docker_memory_swappiness
# Type: int
emby_role_docker_memory_swappiness:
# Type: int
emby2_docker_memory_swappiness:
emby_role_docker_shm_sizeemby2_docker_shm_size
# Type: string
emby_role_docker_shm_size:
# Type: string
emby2_docker_shm_size:

Security & Devices

emby_role_docker_cap_dropemby2_docker_cap_drop
# Type: list
emby_role_docker_cap_drop:
# Type: list
emby2_docker_cap_drop:
emby_role_docker_cgroupns_modeemby2_docker_cgroupns_mode
# Type: string
emby_role_docker_cgroupns_mode:
# Type: string
emby2_docker_cgroupns_mode:
emby_role_docker_device_cgroup_rulesemby2_docker_device_cgroup_rules
# Type: list
emby_role_docker_device_cgroup_rules:
# Type: list
emby2_docker_device_cgroup_rules:
emby_role_docker_device_read_bpsemby2_docker_device_read_bps
# Type: list
emby_role_docker_device_read_bps:
# Type: list
emby2_docker_device_read_bps:
emby_role_docker_device_read_iopsemby2_docker_device_read_iops
# Type: list
emby_role_docker_device_read_iops:
# Type: list
emby2_docker_device_read_iops:
emby_role_docker_device_requestsemby2_docker_device_requests
# Type: list
emby_role_docker_device_requests:
# Type: list
emby2_docker_device_requests:
emby_role_docker_device_write_bpsemby2_docker_device_write_bps
# Type: list
emby_role_docker_device_write_bps:
# Type: list
emby2_docker_device_write_bps:
emby_role_docker_device_write_iopsemby2_docker_device_write_iops
# Type: list
emby_role_docker_device_write_iops:
# Type: list
emby2_docker_device_write_iops:
emby_role_docker_devicesemby2_docker_devices
# Type: list
emby_role_docker_devices:
# Type: list
emby2_docker_devices:
emby_role_docker_devices_defaultemby2_docker_devices_default
# Type: string
emby_role_docker_devices_default:
# Type: string
emby2_docker_devices_default:
emby_role_docker_groupsemby2_docker_groups
# Type: list
emby_role_docker_groups:
# Type: list
emby2_docker_groups:
emby_role_docker_privilegedemby2_docker_privileged
# Type: bool (true/false)
emby_role_docker_privileged:
# Type: bool (true/false)
emby2_docker_privileged:
emby_role_docker_security_optsemby2_docker_security_opts
# Type: list
emby_role_docker_security_opts:
# Type: list
emby2_docker_security_opts:
emby_role_docker_useremby2_docker_user
# Type: string
emby_role_docker_user:
# Type: string
emby2_docker_user:
emby_role_docker_userns_modeemby2_docker_userns_mode
# Type: string
emby_role_docker_userns_mode:
# Type: string
emby2_docker_userns_mode:

Networking

emby_role_docker_dns_optsemby2_docker_dns_opts
# Type: list
emby_role_docker_dns_opts:
# Type: list
emby2_docker_dns_opts:
emby_role_docker_dns_search_domainsemby2_docker_dns_search_domains
# Type: list
emby_role_docker_dns_search_domains:
# Type: list
emby2_docker_dns_search_domains:
emby_role_docker_dns_serversemby2_docker_dns_servers
# Type: list
emby_role_docker_dns_servers:
# Type: list
emby2_docker_dns_servers:
emby_role_docker_domainnameemby2_docker_domainname
# Type: string
emby_role_docker_domainname:
# Type: string
emby2_docker_domainname:
emby_role_docker_exposed_portsemby2_docker_exposed_ports
# Type: list
emby_role_docker_exposed_ports:
# Type: list
emby2_docker_exposed_ports:
emby_role_docker_hostsemby2_docker_hosts
# Type: dict
emby_role_docker_hosts:
# Type: dict
emby2_docker_hosts:
emby_role_docker_hosts_use_commonemby2_docker_hosts_use_common
# Type: bool (true/false)
emby_role_docker_hosts_use_common:
# Type: bool (true/false)
emby2_docker_hosts_use_common:
emby_role_docker_ipc_modeemby2_docker_ipc_mode
# Type: string
emby_role_docker_ipc_mode:
# Type: string
emby2_docker_ipc_mode:
emby_role_docker_linksemby2_docker_links
# Type: list
emby_role_docker_links:
# Type: list
emby2_docker_links:
emby_role_docker_network_modeemby2_docker_network_mode
# Type: string
emby_role_docker_network_mode:
# Type: string
emby2_docker_network_mode:
emby_role_docker_pid_modeemby2_docker_pid_mode
# Type: string
emby_role_docker_pid_mode:
# Type: string
emby2_docker_pid_mode:
emby_role_docker_portsemby2_docker_ports
# Type: list
emby_role_docker_ports:
# Type: list
emby2_docker_ports:
emby_role_docker_utsemby2_docker_uts
# Type: string
emby_role_docker_uts:
# Type: string
emby2_docker_uts:

Storage

emby_role_docker_keep_volumesemby2_docker_keep_volumes
# Type: bool (true/false)
emby_role_docker_keep_volumes:
# Type: bool (true/false)
emby2_docker_keep_volumes:
emby_role_docker_storage_optsemby2_docker_storage_opts
# Type: dict
emby_role_docker_storage_opts:
# Type: dict
emby2_docker_storage_opts:
emby_role_docker_tmpfsemby2_docker_tmpfs
# Type: list
emby_role_docker_tmpfs:
# Type: list
emby2_docker_tmpfs:
emby_role_docker_volume_driveremby2_docker_volume_driver
# Type: string
emby_role_docker_volume_driver:
# Type: string
emby2_docker_volume_driver:
emby_role_docker_volumes_fromemby2_docker_volumes_from
# Type: list
emby_role_docker_volumes_from:
# Type: list
emby2_docker_volumes_from:
emby_role_docker_volumes_globalemby2_docker_volumes_global
# Type: bool (true/false)
emby_role_docker_volumes_global:
# Type: bool (true/false)
emby2_docker_volumes_global:
emby_role_docker_working_diremby2_docker_working_dir
# Type: string
emby_role_docker_working_dir:
# Type: string
emby2_docker_working_dir:

Monitoring & Lifecycle

emby_role_docker_auto_removeemby2_docker_auto_remove
# Type: bool (true/false)
emby_role_docker_auto_remove:
# Type: bool (true/false)
emby2_docker_auto_remove:
emby_role_docker_cleanupemby2_docker_cleanup
# Type: bool (true/false)
emby_role_docker_cleanup:
# Type: bool (true/false)
emby2_docker_cleanup:
emby_role_docker_force_killemby2_docker_force_kill
# Type: string
emby_role_docker_force_kill:
# Type: string
emby2_docker_force_kill:
emby_role_docker_healthcheckemby2_docker_healthcheck
# Type: dict
emby_role_docker_healthcheck:
# Type: dict
emby2_docker_healthcheck:
emby_role_docker_healthy_wait_timeoutemby2_docker_healthy_wait_timeout
# Type: int
emby_role_docker_healthy_wait_timeout:
# Type: int
emby2_docker_healthy_wait_timeout:
emby_role_docker_initemby2_docker_init
# Type: bool (true/false)
emby_role_docker_init:
# Type: bool (true/false)
emby2_docker_init:
emby_role_docker_kill_signalemby2_docker_kill_signal
# Type: string
emby_role_docker_kill_signal:
# Type: string
emby2_docker_kill_signal:
emby_role_docker_log_driveremby2_docker_log_driver
# Type: string
emby_role_docker_log_driver:
# Type: string
emby2_docker_log_driver:
emby_role_docker_log_optionsemby2_docker_log_options
# Type: dict
emby_role_docker_log_options:
# Type: dict
emby2_docker_log_options:
emby_role_docker_oom_killeremby2_docker_oom_killer
# Type: bool (true/false)
emby_role_docker_oom_killer:
# Type: bool (true/false)
emby2_docker_oom_killer:
emby_role_docker_oom_score_adjemby2_docker_oom_score_adj
# Type: int
emby_role_docker_oom_score_adj:
# Type: int
emby2_docker_oom_score_adj:
emby_role_docker_output_logsemby2_docker_output_logs
# Type: bool (true/false)
emby_role_docker_output_logs:
# Type: bool (true/false)
emby2_docker_output_logs:
emby_role_docker_pausedemby2_docker_paused
# Type: bool (true/false)
emby_role_docker_paused:
# Type: bool (true/false)
emby2_docker_paused:
emby_role_docker_recreateemby2_docker_recreate
# Type: bool (true/false)
emby_role_docker_recreate:
# Type: bool (true/false)
emby2_docker_recreate:
emby_role_docker_restart_retriesemby2_docker_restart_retries
# Type: int
emby_role_docker_restart_retries:
# Type: int
emby2_docker_restart_retries:
emby_role_docker_stop_timeoutemby2_docker_stop_timeout
# Type: int
emby_role_docker_stop_timeout:
# Type: int
emby2_docker_stop_timeout:

Other Options

emby_role_docker_capabilitiesemby2_docker_capabilities
# Type: list
emby_role_docker_capabilities:
# Type: list
emby2_docker_capabilities:
emby_role_docker_cgroup_parentemby2_docker_cgroup_parent
# Type: string
emby_role_docker_cgroup_parent:
# Type: string
emby2_docker_cgroup_parent:
emby_role_docker_commandsemby2_docker_commands
# Type: list
emby_role_docker_commands:
# Type: list
emby2_docker_commands:
emby_role_docker_create_timeoutemby2_docker_create_timeout
# Type: int
emby_role_docker_create_timeout:
# Type: int
emby2_docker_create_timeout:
emby_role_docker_entrypointemby2_docker_entrypoint
# Type: string
emby_role_docker_entrypoint:
# Type: string
emby2_docker_entrypoint:
emby_role_docker_env_fileemby2_docker_env_file
# Type: string
emby_role_docker_env_file:
# Type: string
emby2_docker_env_file:
emby_role_docker_labels_use_commonemby2_docker_labels_use_common
# Type: bool (true/false)
emby_role_docker_labels_use_common:
# Type: bool (true/false)
emby2_docker_labels_use_common:
emby_role_docker_read_onlyemby2_docker_read_only
# Type: bool (true/false)
emby_role_docker_read_only:
# Type: bool (true/false)
emby2_docker_read_only:
emby_role_docker_runtimeemby2_docker_runtime
# Type: string
emby_role_docker_runtime:
# Type: string
emby2_docker_runtime:
emby_role_docker_sysctlsemby2_docker_sysctls
# Type: list
emby_role_docker_sysctls:
# Type: list
emby2_docker_sysctls:
emby_role_docker_ulimitsemby2_docker_ulimits
# Type: list
emby_role_docker_ulimits:
# Type: list
emby2_docker_ulimits:
emby_role_autoheal_enabledemby2_autoheal_enabled
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
emby_role_autoheal_enabled: true
# Enable or disable Autoheal monitoring for containers created when deploying
# Type: bool (true/false)
emby2_autoheal_enabled: true
emby_role_config_settings_customemby2_config_settings_custom
# Type: string
emby_role_config_settings_custom:
# Type: string
emby2_config_settings_custom:
emby_role_config_settings_database_cache_size_mbemby2_config_settings_database_cache_size_mb
# Type: string
emby_role_config_settings_database_cache_size_mb:
# Type: string
emby2_config_settings_database_cache_size_mb:
emby_role_config_settings_defaultemby2_config_settings_default
# Type: string
emby_role_config_settings_default:
# Type: string
emby2_config_settings_default:
emby_role_config_settings_enable_httpsemby2_config_settings_enable_https
# Type: string
emby_role_config_settings_enable_https:
# Type: string
emby2_config_settings_enable_https:
emby_role_config_settings_enable_upnpemby2_config_settings_enable_upnp
# Type: string
emby_role_config_settings_enable_upnp:
# Type: string
emby2_config_settings_enable_upnp:
emby_role_config_settings_is_behind_proxyemby2_config_settings_is_behind_proxy
# Type: bool (true/false)
emby_role_config_settings_is_behind_proxy:
# Type: bool (true/false)
emby2_config_settings_is_behind_proxy:
emby_role_config_settings_public_https_portemby2_config_settings_public_https_port
# Type: string (quoted number)
emby_role_config_settings_public_https_port:
# Type: string (quoted number)
emby2_config_settings_public_https_port:
emby_role_config_settings_public_portemby2_config_settings_public_port
# Type: string (quoted number)
emby_role_config_settings_public_port:
# Type: string (quoted number)
emby2_config_settings_public_port:
emby_role_config_settings_require_httpsemby2_config_settings_require_https
# Type: string
emby_role_config_settings_require_https:
# Type: string
emby2_config_settings_require_https:
emby_role_config_settings_wan_ddnsemby2_config_settings_wan_ddns
# Type: string
emby_role_config_settings_wan_ddns:
# Type: string
emby2_config_settings_wan_ddns:
emby_role_depends_onemby2_depends_on
# List of container dependencies that must be running before containers start
# Type: string
emby_role_depends_on: ""
# List of container dependencies that must be running before containers start
# Type: string
emby2_depends_on: ""
emby_role_depends_on_delayemby2_depends_on_delay
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
emby_role_depends_on_delay: "0"
# Delay in seconds before starting containers after dependencies are ready
# Type: string (quoted number)
emby2_depends_on_delay: "0"
emby_role_depends_on_healthchecksemby2_depends_on_healthchecks
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
emby_role_depends_on_healthchecks:
# Enable healthcheck waiting for container dependencies
# Type: string ("true"/"false")
emby2_depends_on_healthchecks:
emby_role_diun_enabledemby2_diun_enabled
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
emby_role_diun_enabled: true
# Enable or disable Diun update notifications for containers created when deploying
# Type: bool (true/false)
emby2_diun_enabled: true
emby_role_dns_enabledemby2_dns_enabled
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
emby_role_dns_enabled: true
# Enable or disable automatic DNS record creation for containers
# Type: bool (true/false)
emby2_dns_enabled: true
emby_role_docker_controlleremby2_docker_controller
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
emby_role_docker_controller: true
# Enable or disable Saltbox Docker Controller management for containers
# Type: bool (true/false)
emby2_docker_controller: true
emby_role_docker_image_repoemby2_docker_image_repo
# Type: string
emby_role_docker_image_repo:
# Type: string
emby2_docker_image_repo:
emby_role_docker_image_tagemby2_docker_image_tag
# Type: string
emby_role_docker_image_tag:
# Type: string
emby2_docker_image_tag:
emby_role_docker_volumes_downloademby2_docker_volumes_download
# Type: bool (true/false)
emby_role_docker_volumes_download:
# Type: bool (true/false)
emby2_docker_volumes_download:
emby_role_themepark_addonsemby2_themepark_addons
# Type: string
emby_role_themepark_addons:
# Type: string
emby2_themepark_addons:
emby_role_themepark_appemby2_themepark_app
# Type: string
emby_role_themepark_app:
# Type: string
emby2_themepark_app:
emby_role_themepark_enabledemby2_themepark_enabled
# Type: bool (true/false)
emby_role_themepark_enabled:
# Type: bool (true/false)
emby2_themepark_enabled:
emby_role_themepark_themeemby2_themepark_theme
# Type: string
emby_role_themepark_theme:
# Type: string
emby2_themepark_theme:
emby_role_traefik_api_endpointemby2_traefik_api_endpoint
# Type: dict/omit
emby_role_traefik_api_endpoint:
# Type: dict/omit
emby2_traefik_api_endpoint:
emby_role_traefik_api_middlewareemby2_traefik_api_middleware
# Type: string
emby_role_traefik_api_middleware:
# Type: string
emby2_traefik_api_middleware:
emby_role_traefik_api_middleware_httpemby2_traefik_api_middleware_http
# Type: string
emby_role_traefik_api_middleware_http:
# Type: string
emby2_traefik_api_middleware_http:
emby_role_traefik_autodetect_enabledemby2_traefik_autodetect_enabled
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
emby_role_traefik_autodetect_enabled: false
# Enable Traefik autodetect middleware for containers
# Type: bool (true/false)
emby2_traefik_autodetect_enabled: false
emby_role_traefik_certresolveremby2_traefik_certresolver
# Type: string
emby_role_traefik_certresolver:
# Type: string
emby2_traefik_certresolver:
emby_role_traefik_crowdsec_enabledemby2_traefik_crowdsec_enabled
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
emby_role_traefik_crowdsec_enabled: false
# Enable CrowdSec middleware for containers
# Type: bool (true/false)
emby2_traefik_crowdsec_enabled: false
emby_role_traefik_error_pages_enabledemby2_traefik_error_pages_enabled
# Enable custom error pages middleware for containers
# Type: bool (true/false)
emby_role_traefik_error_pages_enabled: false
# Enable custom error pages middleware for containers
# Type: bool (true/false)
emby2_traefik_error_pages_enabled: false
emby_role_traefik_gzip_enabledemby2_traefik_gzip_enabled
# Enable gzip compression middleware for containers
# Type: bool (true/false)
emby_role_traefik_gzip_enabled: false
# Enable gzip compression middleware for containers
# Type: bool (true/false)
emby2_traefik_gzip_enabled: false
emby_role_traefik_middleware_httpemby2_traefik_middleware_http
# Type: string
emby_role_traefik_middleware_http:
# Type: string
emby2_traefik_middleware_http:
emby_role_traefik_middleware_http_api_insecureemby2_traefik_middleware_http_api_insecure
# Type: bool (true/false)
emby_role_traefik_middleware_http_api_insecure:
# Type: bool (true/false)
emby2_traefik_middleware_http_api_insecure:
emby_role_traefik_middleware_http_insecureemby2_traefik_middleware_http_insecure
# Type: bool (true/false)
emby_role_traefik_middleware_http_insecure:
# Type: bool (true/false)
emby2_traefik_middleware_http_insecure:
emby_role_traefik_priorityemby2_traefik_priority
# Type: string
emby_role_traefik_priority:
# Type: string
emby2_traefik_priority:
emby_role_traefik_robot_enabledemby2_traefik_robot_enabled
# Enable robots.txt middleware for containers
# Type: bool (true/false)
emby_role_traefik_robot_enabled: true
# Enable robots.txt middleware for containers
# Type: bool (true/false)
emby2_traefik_robot_enabled: true
emby_role_traefik_tailscale_enabledemby2_traefik_tailscale_enabled
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
emby_role_traefik_tailscale_enabled: false
# Enable Tailscale-specific Traefik configuration for containers
# Type: bool (true/false)
emby2_traefik_tailscale_enabled: false
emby_role_traefik_wildcard_enabledemby2_traefik_wildcard_enabled
# Enable wildcard certificate for containers
# Type: bool (true/false)
emby_role_traefik_wildcard_enabled: true
# Enable wildcard certificate for containers
# Type: bool (true/false)
emby2_traefik_wildcard_enabled: true
emby_role_web_domainemby2_web_domain
# Type: string
emby_role_web_domain:
# Type: string
emby2_web_domain:
emby_role_web_fqdn_overrideemby2_web_fqdn_override
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
emby_role_web_fqdn_override:
# Override the Traefik fully qualified domain name (FQDN) for containers
# Type: list
emby2_web_fqdn_override:

Example Override

emby_role_web_fqdn_override:
  - "{{ traefik_host }}"
  - "emby2.{{ user.domain }}"
  - "emby.otherdomain.tld"

Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries

Example Override

emby2_web_fqdn_override:
  - "{{ traefik_host }}"
  - "emby2.{{ user.domain }}"
  - "emby.otherdomain.tld"

Note: Include {{ traefik_host }} to preserve the default FQDN alongside your custom entries

emby_role_web_host_overrideemby2_web_host_override
# Override the Traefik web host configuration for containers
# Type: string
emby_role_web_host_override:
# Override the Traefik web host configuration for containers
# Type: string
emby2_web_host_override:

Example Override

emby_role_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'emby2.' + user.domain }}`)"

Note: Use {{ traefik_host }} to include the default host configuration in your custom rule

Example Override

emby2_web_host_override: "Host(`{{ traefik_host }}`) || Host(`{{ 'emby2.' + user.domain }}`)"

Note: Use {{ traefik_host }} to include the default host configuration in your custom rule

emby_role_web_http_portemby2_web_http_port
# Type: string (quoted number)
emby_role_web_http_port:
# Type: string (quoted number)
emby2_web_http_port:
emby_role_web_http_schemeemby2_web_http_scheme
# Type: string ("http"/"https")
emby_role_web_http_scheme:
# Type: string ("http"/"https")
emby2_web_http_scheme:
emby_role_web_http_serverstransportemby2_web_http_serverstransport
# Type: dict/omit
emby_role_web_http_serverstransport:
# Type: dict/omit
emby2_web_http_serverstransport:
emby_role_web_schemeemby2_web_scheme
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
emby_role_web_scheme:
# URL scheme to use for web access to containers
# Type: string ("http"/"https")
emby2_web_scheme:
emby_role_web_serverstransportemby2_web_serverstransport
# Type: dict/omit
emby_role_web_serverstransport:
# Type: dict/omit
emby2_web_serverstransport:
emby_role_web_subdomainemby2_web_subdomain
# Type: string
emby_role_web_subdomain:
# Type: string
emby2_web_subdomain: