12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547 |
- {
- "1.2.10": {
- "healthy": true,
- "supported": true,
- "healthy_error": null,
- "location": "/__w/apps/apps/trains/stable/plex/1.2.10",
- "last_update": "2025-09-02 11:33:24",
- "required_features": [],
- "human_version": "1.42.1.10060-4e8b05daf_1.2.10",
- "version": "1.2.10",
- "app_metadata": {
- "annotations": {
- "min_scale_version": "24.10.2.2"
- },
- "app_version": "1.42.1.10060-4e8b05daf",
- "capabilities": [
- {
- "description": "Plex is able to change file ownership arbitrarily",
- "name": "CHOWN"
- },
- {
- "description": "Plex is able to bypass file permission checks",
- "name": "DAC_OVERRIDE"
- },
- {
- "description": "Plex is able to bypass permission checks for file operations",
- "name": "FOWNER"
- },
- {
- "description": "Plex is able to send signals to any process",
- "name": "KILL"
- },
- {
- "description": "Plex is able to change group ID of processes",
- "name": "SETGID"
- },
- {
- "description": "Plex is able to change user ID of processes",
- "name": "SETUID"
- }
- ],
- "categories": [
- "media"
- ],
- "changelog_url": "https://forums.plex.tv/t/plex-media-server/30447/",
- "date_added": "2024-06-04",
- "description": "Plex is a media server that allows you to stream your media to any Plex client.",
- "home": "https://plex.tv",
- "host_mounts": [],
- "icon": "https://media.sys.truenas.net/apps/plex/icons/icon.png",
- "keywords": [
- "plex",
- "media",
- "entertainment",
- "movies",
- "series",
- "tv",
- "streaming"
- ],
- "lib_version": "2.1.49",
- "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
- "maintainers": [
- {
- "email": "dev@ixsystems.com",
- "name": "truenas",
- "url": "https://www.truenas.com/"
- }
- ],
- "name": "plex",
- "run_as_context": [
- {
- "description": "Plex runs as root user.",
- "gid": 0,
- "group_name": "root",
- "uid": 0,
- "user_name": "root"
- }
- ],
- "screenshots": [
- "https://media.sys.truenas.net/apps/plex/screenshots/screenshot1.png",
- "https://media.sys.truenas.net/apps/plex/screenshots/screenshot2.png"
- ],
- "sources": [
- "https://plex.tv",
- "https://hub.docker.com/r/plexinc/pms-docker"
- ],
- "title": "Plex",
- "train": "stable",
- "version": "1.2.10"
- },
- "schema": {
- "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.\nIf not provided, server is will not be automatically logged in.\nIf server is already logged in, this parameter is ignored.\nYou can obtain a claim token to login your server to your plex account\nby visiting https://www.plex.tv/claim.\n",
- "schema": {
- "type": "string",
- "default": "",
- "private": true
- }
- },
- {
- "variable": "image_selector",
- "label": "Image",
- "description": "The image to use for Plex.\n",
- "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\non the local network when enforcing bandwidth restrictions. </br>\nIf set, all other IP addresses will be considered to be on the external\nnetwork and will be subject to external network bandwidth restrictions. </br>\nAdditionally, initial setup wizard will not be available on if your client is considered to be on the external network.</br>\nIf left blank, only the server's subnet is considered to be on the local network. </br>\n\"Server's subnet\" when host network is NOT enabled, is the docker's network. Therefore,\nall connections from other clients will be considered to be on the external network.\n",
- "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. </br>\nExample: </br>\nHost Device: /dev/dvb </br>\nContainer Device: /dev/dvb\n",
- "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.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
- "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.\n",
- "schema": {
- "type": "boolean",
- "default": false
- }
- },
- {
- "variable": "dns_opts",
- "label": "DNS Options",
- "description": "DNS options for the container.</br>\nFormat: key:value</br>\nExample: attempts:3\n",
- "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.</br>\nHost Path: Is a path that already exists on the system.\n",
- "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.</br>\nHost Path: Is a path that already exists on the system.\n",
- "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.</br>\nHost Path: Is a path that already exists on the system.</br>\nTemporary: Is a temporary directory that will be created on the disk as a docker volume.\ntmpfs: Is a temporary directory that will be created on the RAM.\n",
- "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.</br>\nFor example: 500\n",
- "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.</br>\nHost Path: Is a path that already exists on the system.\nTemporary: Is a temporary directory that will be created on the disk as a docker volume.\ntmpfs: Is a temporary directory that will be created on the RAM.\n",
- "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.</br>\nFor example: 500\n",
- "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.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to as a volume.</br>\nTemporary: Is a temporary directory that will be created on the disk as a docker volume.</br>\ntmpfs: Is a temporary directory that will be created on the RAM.</br>\n",
- "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.</br>\nFor example: 500\n",
- "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": []
- }
- }
- ]
- }
- }
- ]
- },
- "readme": "<h1>Plex</h1> <p><a href=\"https://plex.tv\">Plex</a> is a media server that allows you to stream your media to any Plex client.</p>",
- "changelog": null,
- "chart_metadata": {
- "annotations": {
- "min_scale_version": "24.10.2.2"
- },
- "app_version": "1.42.1.10060-4e8b05daf",
- "capabilities": [
- {
- "description": "Plex is able to change file ownership arbitrarily",
- "name": "CHOWN"
- },
- {
- "description": "Plex is able to bypass file permission checks",
- "name": "DAC_OVERRIDE"
- },
- {
- "description": "Plex is able to bypass permission checks for file operations",
- "name": "FOWNER"
- },
- {
- "description": "Plex is able to send signals to any process",
- "name": "KILL"
- },
- {
- "description": "Plex is able to change group ID of processes",
- "name": "SETGID"
- },
- {
- "description": "Plex is able to change user ID of processes",
- "name": "SETUID"
- }
- ],
- "categories": [
- "media"
- ],
- "changelog_url": "https://forums.plex.tv/t/plex-media-server/30447/",
- "date_added": "2024-06-04",
- "description": "Plex is a media server that allows you to stream your media to any Plex client.",
- "home": "https://plex.tv",
- "host_mounts": [],
- "icon": "https://media.sys.truenas.net/apps/plex/icons/icon.png",
- "keywords": [
- "plex",
- "media",
- "entertainment",
- "movies",
- "series",
- "tv",
- "streaming"
- ],
- "lib_version": "2.1.49",
- "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
- "maintainers": [
- {
- "email": "dev@ixsystems.com",
- "name": "truenas",
- "url": "https://www.truenas.com/"
- }
- ],
- "name": "plex",
- "run_as_context": [
- {
- "description": "Plex runs as root user.",
- "gid": 0,
- "group_name": "root",
- "uid": 0,
- "user_name": "root"
- }
- ],
- "screenshots": [
- "https://media.sys.truenas.net/apps/plex/screenshots/screenshot1.png",
- "https://media.sys.truenas.net/apps/plex/screenshots/screenshot2.png"
- ],
- "sources": [
- "https://plex.tv",
- "https://hub.docker.com/r/plexinc/pms-docker"
- ],
- "title": "Plex",
- "train": "stable",
- "version": "1.2.10"
- }
- }
- }
|