groups: - name: Plex Configuration description: Configure Plex - name: User and Group Configuration description: Configure User and Group for Plex - name: Network Configuration description: Configure Network for Plex - name: Storage Configuration description: Configure Storage for Plex - name: Labels Configuration description: Configure Labels for Plex - name: Resources Configuration description: Configure Resources for Plex questions: - variable: TZ group: Plex Configuration label: Timezone schema: type: string default: Etc/UTC required: true $ref: - definitions/timezone - variable: plex label: "" group: Plex Configuration schema: type: dict attrs: - variable: claim_token label: Claim Token description: | The claim token for the server to obtain a real server token. If not provided, server is will not be automatically logged in. If server is already logged in, this parameter is ignored. You can obtain a claim token to login your server to your plex account by visiting https://www.plex.tv/claim. schema: type: string default: "" private: true - variable: image_selector label: Image description: | The image to use for Plex. schema: type: string default: "image" required: true enum: - value: "image" description: Plex Official Image - value: "plex_pass_image" description: Plex Pass Image - variable: allowed_networks label: Local Networks description: | IP address or IP/netmask entries for networks that will be considered to be on the local network when enforcing bandwidth restrictions.
If set, all other IP addresses will be considered to be on the external network and will be subject to external network bandwidth restrictions.
Additionally, initial setup wizard will not be available on if your client is considered to be on the external network.
If left blank, only the server's subnet is considered to be on the local network.
"Server's subnet" when host network is NOT enabled, is the docker's network. Therefore, all connections from other clients will be considered to be on the external network. schema: type: list default: - 10.0.0.0/8 - 172.16.0.0/12 - 192.168.0.0/16 items: - variable: network label: Network schema: type: string required: true - variable: devices label: Devices description: | Devices to use for Plex.
Example:
Host Device: /dev/dvb
Container Device: /dev/dvb schema: type: list default: [] items: - variable: device label: Device schema: type: dict attrs: - variable: host_device label: Host Device schema: type: string required: true - variable: container_device label: Container Device schema: type: string required: true - variable: additional_envs label: Additional Environment Variables schema: type: list default: [] items: - variable: env label: Environment Variable schema: type: dict attrs: - variable: name label: Name schema: type: string required: true - variable: value label: Value schema: type: string - variable: run_as label: "" group: User and Group Configuration schema: type: dict attrs: - variable: user label: User ID description: The user id that Plex files will be owned by. schema: type: int min: 568 default: 568 required: true - variable: group label: Group ID description: The group id that Plex files will be owned by. schema: type: int min: 568 default: 568 required: true - variable: network label: "" group: Network Configuration schema: type: dict attrs: - variable: web_port label: WebUI Port schema: type: dict show_if: [["host_network", "=", false]] attrs: - variable: bind_mode label: Port Bind Mode description: | The port bind mode.
- Publish: The port will be published on the host for external access.
- Expose: The port will be exposed for inter-container communication.
- None: The port will not be exposed or published.
Note: If the Dockerfile defines an EXPOSE directive, the port will still be exposed for inter-container communication regardless of this setting. schema: type: string default: "published" enum: - value: "published" description: Publish port on the host for external access - value: "exposed" description: Expose port for inter-container communication - value: "" description: None - variable: port_number label: Port Number schema: type: int show_if: [["bind_mode", "=", "published"]] default: 32400 min: 1 max: 65535 required: true - variable: host_ips label: Host IPs description: IPs on the host to bind this port schema: type: list show_if: [["bind_mode", "=", "published"]] default: [] items: - variable: host_ip label: Host IP schema: type: string required: true $ref: - definitions/node_bind_ip - variable: host_network label: Host Network description: | Bind to the host network. It's recommended to keep this disabled. schema: type: boolean default: false - variable: dns_opts label: DNS Options description: | DNS options for the container.
Format: key:value
Example: attempts:3 schema: type: list default: [] items: - variable: option label: Option schema: type: string required: true - variable: storage label: "" group: Storage Configuration schema: type: dict attrs: - variable: data label: Plex Data Storage description: The path to store Plex Data. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system. schema: type: string required: true default: "ix_volume" enum: - value: "host_path" description: Host Path (Path that already exists on the system) - value: "ix_volume" description: ixVolume (Dataset created automatically by the system) - variable: ix_volume_config label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ix_volume"]] $ref: - "normalize/ix_volume" attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: dataset_name label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true hidden: true default: "data" - variable: acl_entries label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] - variable: host_path_config label: Host Path Configuration schema: type: dict show_if: [["type", "=", "host_path"]] attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: path label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["acl_enable", "=", false]] required: true - variable: config label: Plex Configuration Storage description: The path to store Plex Configuration. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system. schema: type: string required: true default: "ix_volume" enum: - value: "host_path" description: Host Path (Path that already exists on the system) - value: "ix_volume" description: ixVolume (Dataset created automatically by the system) - variable: ix_volume_config label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ix_volume"]] $ref: - "normalize/ix_volume" attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: dataset_name label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true hidden: true default: "config" - variable: acl_entries label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] - variable: host_path_config label: Host Path Configuration schema: type: dict show_if: [["type", "=", "host_path"]] attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: path label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["acl_enable", "=", false]] required: true - variable: logs label: Plex Logs Storage description: The path to store Plex Logs. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system.
Temporary: Is a temporary directory that will be created on the disk as a docker volume. tmpfs: Is a temporary directory that will be created on the RAM. schema: type: string required: true default: "temporary" enum: - value: "host_path" description: Host Path (Path that already exists on the system) - value: "ix_volume" description: ixVolume (Dataset created automatically by the system) - value: "temporary" description: Temporary (Temporary directory created on the disk) - value: "tmpfs" description: tmpfs (Temporary directory created on the RAM) - variable: tmpfs_config label: tmpfs Configuration description: The configuration for the tmpfs dataset. schema: type: dict show_if: [["type", "=", "tmpfs"]] attrs: - variable: size label: Tmpfs Size Limit (in Mi) description: | The maximum size (in Mi) of the temporary directory.
For example: 500 schema: type: int default: 500 required: true - variable: ix_volume_config label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ix_volume"]] $ref: - "normalize/ix_volume" attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: dataset_name label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true hidden: true default: "logs" - variable: acl_entries label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] - variable: host_path_config label: Host Path Configuration schema: type: dict show_if: [["type", "=", "host_path"]] attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: path label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["acl_enable", "=", false]] required: true - variable: transcode label: Plex Transcode Storage description: The path to store Plex Transcode. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system. Temporary: Is a temporary directory that will be created on the disk as a docker volume. tmpfs: Is a temporary directory that will be created on the RAM. schema: type: string required: true default: "temporary" enum: - value: "host_path" description: Host Path (Path that already exists on the system) - value: "ix_volume" description: ixVolume (Dataset created automatically by the system) - value: "temporary" description: Temporary (Temporary Directory created on the disk) - value: "tmpfs" description: tmpfs (Temporary directory created on the RAM) - variable: tmpfs_config label: tmpfs Configuration description: The configuration for the tmpfs dataset. schema: type: dict show_if: [["type", "=", "tmpfs"]] attrs: - variable: size label: Tmpfs Size Limit (in Mi) description: | The maximum size (in Mi) of the temporary directory.
For example: 500 schema: type: int default: 500 required: true - variable: ix_volume_config label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ix_volume"]] $ref: - "normalize/ix_volume" attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: dataset_name label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true hidden: true default: "transcode" - variable: acl_entries label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] - variable: host_path_config label: Host Path Configuration schema: type: dict show_if: [["type", "=", "host_path"]] attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: path label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["acl_enable", "=", false]] required: true - variable: additional_storage label: Additional Storage schema: type: list default: [] items: - variable: storageEntry label: Storage Entry schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system.
SMB Share: Is a SMB share that is mounted to as a volume.
Temporary: Is a temporary directory that will be created on the disk as a docker volume.
tmpfs: Is a temporary directory that will be created on the RAM.
schema: type: string required: true default: "ix_volume" enum: - value: "host_path" description: Host Path (Path that already exists on the system) - value: "ix_volume" description: ixVolume (Dataset created automatically by the system) - value: "cifs" description: SMB/CIFS Share (Mounts a volume to a SMB share) - value: "temporary" description: Temporary (Temporary directory created on the disk) - value: "tmpfs" description: Tmpfs (Temporary directory created on the RAM) - variable: read_only label: Read Only description: Mount the volume as read only. schema: type: boolean default: false - variable: mount_path label: Mount Path description: The path inside the container to mount the storage. schema: type: path required: true - variable: tmpfs_config label: Tmpfs Configuration description: The configuration for the tmpfs dataset. schema: type: dict show_if: [["type", "=", "tmpfs"]] attrs: - variable: size label: Tmpfs Size Limit (in Mi) description: | The maximum size (in Mi) of the temporary directory.
For example: 500 schema: type: int default: 500 required: true - variable: host_path_config label: Host Path Configuration schema: type: dict show_if: [["type", "=", "host_path"]] attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: path label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["acl_enable", "=", false]] required: true - variable: ix_volume_config label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ix_volume"]] $ref: - "normalize/ix_volume" attrs: - variable: acl_enable label: Enable ACL description: Enable ACL for the storage. schema: type: boolean default: false - variable: dataset_name label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true default: "storage_entry" - variable: acl_entries label: ACL Configuration schema: type: dict show_if: [["acl_enable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: cifs_config label: SMB Configuration description: The configuration for the SMB dataset. schema: type: dict show_if: [["type", "=", "cifs"]] attrs: - variable: server label: Server description: The server to mount the SMB share. schema: type: string required: true - variable: path label: Path description: The path to mount the SMB share. schema: type: string required: true - variable: username label: Username description: The username to use for the SMB share. schema: type: string required: true - variable: password label: Password description: The password to use for the SMB share. schema: type: string required: true private: true - variable: domain label: Domain description: The domain to use for the SMB share. schema: type: string - variable: labels label: "" group: Labels Configuration schema: type: list default: [] items: - variable: label label: Label schema: type: dict attrs: - variable: key label: Key schema: type: string required: true - variable: value label: Value schema: type: string required: true - variable: containers label: Containers description: Containers where the label should be applied schema: type: list items: - variable: container label: Container schema: type: string required: true enum: - value: plex description: plex - variable: resources label: "" group: Resources Configuration schema: type: dict attrs: - variable: limits label: Limits schema: type: dict attrs: - variable: cpus label: CPUs description: CPUs limit for Plex. schema: type: int default: 2 required: true - variable: memory label: Memory (in MB) description: Memory limit for Plex. schema: type: int default: 4096 required: true - variable: gpus group: Resources Configuration label: GPU Configuration schema: type: dict $ref: - "definitions/gpu_configuration" attrs: []