Zerotier


Get Started with Apps!
Keywords: vpn, zerotier
Train: Community
Home Page: https://www.zerotier.com
Added: 2024-08-09
Last Updated: 2025-09-02
Securely connect any device, anywhere.
Run as Context- Zerotier runs as a root user.
Group: 0 / root
User: 0 / root
Host Mounts
- /dev/net/tun : Network device
Security Capabilities
- Zerotier is able to write records to audit log
- Zerotier is able to change file ownership arbitrarily
- Zerotier is able to bypass file permission checks
- Zerotier is able to bypass permission checks for file operations
- Zerotier is able to perform network administration tasks
- Zerotier is able to bind to privileged ports (< 1024)
- Zerotier is able to use raw and packet sockets
- Zerotier is able to change group ID of processes
- Zerotier is able to transfer capabilities between processes
- Zerotier is able to change user ID of processes
- Zerotier is able to perform system administration operations
App Metadata (Raw File)
{
"1.2.5": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/zerotier/1.2.5",
"last_update": "2025-09-02 11:33:24",
"required_features": [],
"human_version": "1.14.2_1.2.5",
"version": "1.2.5",
"app_metadata": {
"app_version": "1.14.2",
"capabilities": [
{
"description": "Zerotier is able to write records to audit log",
"name": "AUDIT_WRITE"
},
{
"description": "Zerotier is able to change file ownership arbitrarily",
"name": "CHOWN"
},
{
"description": "Zerotier is able to bypass file permission checks",
"name": "DAC_OVERRIDE"
},
{
"description": "Zerotier is able to bypass permission checks for file operations",
"name": "FOWNER"
},
{
"description": "Zerotier is able to perform network administration tasks",
"name": "NET_ADMIN"
},
{
"description": "Zerotier is able to bind to privileged ports (< 1024)",
"name": "NET_BIND_SERVICE"
},
{
"description": "Zerotier is able to use raw and packet sockets",
"name": "NET_RAW"
},
{
"description": "Zerotier is able to change group ID of processes",
"name": "SETGID"
},
{
"description": "Zerotier is able to transfer capabilities between processes",
"name": "SETPCAP"
},
{
"description": "Zerotier is able to change user ID of processes",
"name": "SETUID"
},
{
"description": "Zerotier is able to perform system administration operations",
"name": "SYS_ADMIN"
}
],
"categories": [
"networking"
],
"changelog_url": "https://github.com/zerotier/ZeroTierOne/blob/dev/RELEASE-NOTES.md",
"date_added": "2024-08-09",
"description": "Securely connect any device, anywhere.",
"home": "https://www.zerotier.com",
"host_mounts": [
{
"description": "Network device",
"host_path": "/dev/net/tun"
}
],
"icon": "https://media.sys.truenas.net/apps/zerotier/icons/icon.png",
"keywords": [
"vpn",
"zerotier"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "zerotier",
"run_as_context": [
{
"description": "Zerotier runs as a root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [],
"sources": [
"https://www.zerotier.com",
"https://hub.docker.com/r/zerotier/zerotier"
],
"title": "Zerotier",
"train": "community",
"version": "1.2.5"
},
"schema": {
"groups": [
{
"name": "Zerotier Configuration",
"description": "Configure Zerotier"
},
{
"name": "Network Configuration",
"description": "Configure Network for Zerotier"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Zerotier"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Zerotier"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Zerotier"
}
],
"questions": [
{
"variable": "zerotier",
"label": "",
"group": "Zerotier Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "auth_token",
"label": "Auth Token",
"description": "(Optional) The auth token for Zerotier.</br>\nSame as authtoken.secret.\n",
"schema": {
"type": "string",
"default": "",
"private": true
}
},
{
"variable": "identity_public",
"label": "Identity Public",
"description": "(Optional) The identity public for Zerotier.</br>\nSame as identity.public.\n",
"schema": {
"type": "string",
"default": "",
"private": true
}
},
{
"variable": "identity_secret",
"label": "Identity Secret",
"description": "(Optional) The identity secret for Zerotier.</br>\nSame as identity.secret.\n",
"schema": {
"type": "string",
"default": "",
"private": true
}
},
{
"variable": "networks",
"label": "Networks",
"description": "The networks for Zerotier.",
"schema": {
"type": "list",
"required": true,
"min": 1,
"default": [],
"items": [
{
"variable": "net_id",
"label": "Network ID",
"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": "network",
"label": "",
"group": "Network Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "host_network",
"label": "Host Network",
"description": "Bind to the host network. It's recommended to keep this disabled.\n",
"schema": {
"type": "boolean",
"default": true
}
}
]
}
},
{
"variable": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "config",
"label": "Zerotier Config Storage",
"description": "The path to store Zerotier Config.",
"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.\ntmpfs: Is a temporary directory that will be created on the RAM.\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": "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": "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": "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.\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)"
}
]
}
},
{
"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": "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": []
}
}
]
}
},
{
"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": "zerotier",
"description": "zerotier"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Zerotier.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Zerotier.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Zerotier</h1> <p><a href=\"https://www.zerotier.com\">Zerotier</a> Securely connect any device, anywhere.</p>",
"changelog": null,
"chart_metadata": {
"app_version": "1.14.2",
"capabilities": [
{
"description": "Zerotier is able to write records to audit log",
"name": "AUDIT_WRITE"
},
{
"description": "Zerotier is able to change file ownership arbitrarily",
"name": "CHOWN"
},
{
"description": "Zerotier is able to bypass file permission checks",
"name": "DAC_OVERRIDE"
},
{
"description": "Zerotier is able to bypass permission checks for file operations",
"name": "FOWNER"
},
{
"description": "Zerotier is able to perform network administration tasks",
"name": "NET_ADMIN"
},
{
"description": "Zerotier is able to bind to privileged ports (< 1024)",
"name": "NET_BIND_SERVICE"
},
{
"description": "Zerotier is able to use raw and packet sockets",
"name": "NET_RAW"
},
{
"description": "Zerotier is able to change group ID of processes",
"name": "SETGID"
},
{
"description": "Zerotier is able to transfer capabilities between processes",
"name": "SETPCAP"
},
{
"description": "Zerotier is able to change user ID of processes",
"name": "SETUID"
},
{
"description": "Zerotier is able to perform system administration operations",
"name": "SYS_ADMIN"
}
],
"categories": [
"networking"
],
"changelog_url": "https://github.com/zerotier/ZeroTierOne/blob/dev/RELEASE-NOTES.md",
"date_added": "2024-08-09",
"description": "Securely connect any device, anywhere.",
"home": "https://www.zerotier.com",
"host_mounts": [
{
"description": "Network device",
"host_path": "/dev/net/tun"
}
],
"icon": "https://media.sys.truenas.net/apps/zerotier/icons/icon.png",
"keywords": [
"vpn",
"zerotier"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "zerotier",
"run_as_context": [
{
"description": "Zerotier runs as a root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [],
"sources": [
"https://www.zerotier.com",
"https://hub.docker.com/r/zerotier/zerotier"
],
"title": "Zerotier",
"train": "community",
"version": "1.2.5"
}
}
}
Zigbee2MQTT
Get Started with Apps!
Keywords: zigbee, mqtt, bridge
Train: Community
Home Page: https://www.zigbee2mqtt.io
Added: 2024-12-24
Last Updated: 2025-09-09
Zigbee to MQTT bridge get rid of your proprietary Zigbee bridges
Run as Context- Zigbee2MQTT runs as any non-root user.
Group: 568 / zigbee2mqtt
User: 568 / zigbee2mqtt

Security Capabilities
- Zigbee2MQTT is able to bind to privileged ports (< 1024)
App Metadata (Raw File)
{
"1.0.39": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/zigbee2mqtt/1.0.39",
"last_update": "2025-09-09 08:43:54",
"required_features": [],
"human_version": "2.6.1_1.0.39",
"version": "1.0.39",
"app_metadata": {
"app_version": "2.6.1",
"capabilities": [
{
"description": "Zigbee2MQTT is able to bind to privileged ports (< 1024)",
"name": "NET_BIND_SERVICE"
}
],
"categories": [
"home-automation"
],
"changelog_url": "https://github.com/Koenkk/zigbee2mqtt/blob/master/CHANGELOG.md",
"date_added": "2024-12-24",
"description": "Zigbee to MQTT bridge get rid of your proprietary Zigbee bridges",
"home": "https://www.zigbee2mqtt.io",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/zigbee2mqtt/icons/icon.svg",
"keywords": [
"zigbee",
"mqtt",
"bridge"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "zigbee2mqtt",
"run_as_context": [
{
"description": "Zigbee2MQTT runs as any non-root user.",
"gid": 568,
"group_name": "zigbee2mqtt",
"uid": 568,
"user_name": "zigbee2mqtt"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/zigbee2mqtt/screenshots/screenshot1.png"
],
"sources": [
"https://github.com/Koenkk/zigbee2mqtt"
],
"title": "Zigbee2MQTT",
"train": "community",
"version": "1.0.39"
},
"schema": {
"groups": [
{
"name": "Zigbee2MQTT Configuration",
"description": "Configure Zigbee2MQTT"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for Zigbee2MQTT"
},
{
"name": "Network Configuration",
"description": "Configure Network for Zigbee2MQTT"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Zigbee2MQTT"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Zigbee2MQTT"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Zigbee2MQTT"
}
],
"questions": [
{
"variable": "TZ",
"group": "Zigbee2MQTT Configuration",
"label": "Timezone",
"schema": {
"type": "string",
"default": "Etc/UTC",
"required": true,
"$ref": [
"definitions/timezone"
]
}
},
{
"variable": "zigbee2mqtt",
"label": "",
"group": "Zigbee2MQTT Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "mqtt",
"label": "MQTT Configuration",
"description": "Configure MQTT for Zigbee2MQTT.",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "topic",
"label": "Topic",
"description": "The MQTT topic to use for Zigbee2MQTT.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "server",
"label": "Server",
"description": "The MQTT server to use for Zigbee2MQTT.</br>\nExample: mqtt://server.ip:1883\n",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "user",
"label": "User",
"description": "The MQTT user to use for Zigbee2MQTT.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "password",
"label": "Password",
"description": "The MQTT password to use for Zigbee2MQTT.",
"schema": {
"type": "string",
"required": true,
"private": true
}
}
]
}
},
{
"variable": "serial",
"label": "Serial Configuration",
"description": "Configure Serial for Zigbee2MQTT.",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "port",
"label": "Port",
"description": "The serial port to use.</br>\nExamples: </br>\n- `/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0` </br>\n- `tcp://192.168.1.100:6638`\n",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "adapter",
"label": "Adapter",
"description": "The serial adapter type.",
"schema": {
"type": "string",
"required": true,
"default": "",
"enum": [
{
"value": "zstack",
"description": "zstack"
},
{
"value": "deconz",
"description": "deconz"
},
{
"value": "ember",
"description": "ember"
},
{
"value": "zigate",
"description": "zigate"
},
{
"value": "",
"description": "None"
}
]
}
}
]
}
},
{
"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 Zigbee2MQTT files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that Zigbee2MQTT 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",
"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",
"default": 30065,
"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": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "data",
"label": "Zigbee2MQTT Data Storage",
"description": "The path to store Zigbee2MQTT 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": "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.\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)"
}
]
}
},
{
"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": "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": "zigbee2mqtt",
"description": "zigbee2mqtt"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Zigbee2MQTT.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Zigbee2MQTT.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Zigbee2mqtt</h1> <p><a href=\"www.zigbee2mqtt.io\">Zigbee \ud83d\udc1d to MQTT</a> bridge \ud83c\udf09, get rid of your proprietary Zigbee bridges \ud83d\udd28</p>",
"changelog": null,
"chart_metadata": {
"app_version": "2.6.1",
"capabilities": [
{
"description": "Zigbee2MQTT is able to bind to privileged ports (< 1024)",
"name": "NET_BIND_SERVICE"
}
],
"categories": [
"home-automation"
],
"changelog_url": "https://github.com/Koenkk/zigbee2mqtt/blob/master/CHANGELOG.md",
"date_added": "2024-12-24",
"description": "Zigbee to MQTT bridge get rid of your proprietary Zigbee bridges",
"home": "https://www.zigbee2mqtt.io",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/zigbee2mqtt/icons/icon.svg",
"keywords": [
"zigbee",
"mqtt",
"bridge"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "zigbee2mqtt",
"run_as_context": [
{
"description": "Zigbee2MQTT runs as any non-root user.",
"gid": 568,
"group_name": "zigbee2mqtt",
"uid": 568,
"user_name": "zigbee2mqtt"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/zigbee2mqtt/screenshots/screenshot1.png"
],
"sources": [
"https://github.com/Koenkk/zigbee2mqtt"
],
"title": "Zigbee2MQTT",
"train": "community",
"version": "1.0.39"
}
}
}