qBittorrent


Get Started with Apps!
App Version: 5.1.2 (Changelog)
Keywords: media, torrent, download
Train: Community
Home Page: https://www.qbittorrent.org/
Added: 2024-07-30
Last Updated: 2025-09-02
The qBittorrent project aims to provide an open-source software alternative to mTorrent.
Run as Context- qBittorrent runs as any non-root user.
Group: 568 / qbittorrent
User: 568 / qbittorrent

App Metadata (Raw File)
{
"1.2.8": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/qbittorrent/1.2.8",
"last_update": "2025-09-02 11:33:24",
"required_features": [],
"human_version": "5.1.2_1.2.8",
"version": "1.2.8",
"app_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "5.1.2",
"capabilities": [],
"categories": [
"media"
],
"changelog_url": "https://www.qbittorrent.org/news",
"date_added": "2024-07-30",
"description": "The qBittorrent project aims to provide an open-source software alternative to mTorrent.",
"home": "https://www.qbittorrent.org/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/qbittorrent/icons/icon.png",
"keywords": [
"media",
"torrent",
"download"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "qbittorrent",
"run_as_context": [
{
"description": "qBittorrent runs as any non-root user.",
"gid": 568,
"group_name": "qbittorrent",
"uid": 568,
"user_name": "qbittorrent"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/qbittorrent/screenshots/screenshot1.png"
],
"sources": [
"https://github.com/home-operations/containers/tree/main/apps/qbittorrent",
"https://www.qbittorrent.org/"
],
"title": "qBittorrent",
"train": "community",
"version": "1.2.8"
},
"schema": {
"groups": [
{
"name": "qBittorrent Configuration",
"description": "Configure qBittorrent"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for qBittorrent"
},
{
"name": "Network Configuration",
"description": "Configure Network for qBittorrent"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for qBittorrent"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for qBittorrent"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for qBittorrent"
}
],
"questions": [
{
"variable": "TZ",
"group": "qBittorrent Configuration",
"label": "Timezone",
"schema": {
"type": "string",
"default": "Etc/UTC",
"required": true,
"$ref": [
"definitions/timezone"
]
}
},
{
"variable": "qbittorrent",
"label": "",
"group": "qBittorrent Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "image_selector",
"label": "Image Selector",
"description": "Select the image to use for qBittorrent.",
"schema": {
"type": "string",
"default": "image",
"required": true,
"enum": [
{
"value": "image",
"description": "v5.x.x image."
},
{
"value": "v4_image",
"description": "v4.x.x image."
}
]
}
},
{
"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 qBittorrent files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that qBittorrent 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": 30024,
"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": "bt_port",
"label": "BT Port",
"description": "The port for qBittorrent BT (Both TCP and UDP)",
"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": 51413,
"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": "use_https_probe",
"label": "Use HTTPS Probe",
"description": "Use HTTPS probe for the qBittorrent Web UI. </br>\nThis will ONLY affect the probes, only enable this if you\nconfigured HTTPS in the qBittorrent Web UI.\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"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": "config",
"label": "qBittorrent Config Storage",
"description": "The path to store qBittorrent 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.\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": "downloads",
"label": "qBittorrent Downloads Storage",
"description": "The path to store qBittorrent Downloads.",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "mount_path",
"label": "Mount Path",
"description": "The path where the volume will be mounted.</br>\nNote: Make sure the download path defined in the qBittorrent Web UI is within this path.\n",
"schema": {
"type": "path",
"required": true,
"default": "/downloads"
}
},
{
"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": "downloads"
}
},
{
"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": "qbittorrent",
"description": "qbittorrent"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 qBittorrent.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for qBittorrent.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>qBittorrent</h1> <p>The <a href=\"https://www.qbittorrent.org/\">qBittorrent</a> project aims to provide an open-source software alternative to \u00b5Torrent.</p>",
"changelog": null,
"chart_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "5.1.2",
"capabilities": [],
"categories": [
"media"
],
"changelog_url": "https://www.qbittorrent.org/news",
"date_added": "2024-07-30",
"description": "The qBittorrent project aims to provide an open-source software alternative to mTorrent.",
"home": "https://www.qbittorrent.org/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/qbittorrent/icons/icon.png",
"keywords": [
"media",
"torrent",
"download"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "qbittorrent",
"run_as_context": [
{
"description": "qBittorrent runs as any non-root user.",
"gid": 568,
"group_name": "qbittorrent",
"uid": 568,
"user_name": "qbittorrent"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/qbittorrent/screenshots/screenshot1.png"
],
"sources": [
"https://github.com/home-operations/containers/tree/main/apps/qbittorrent",
"https://www.qbittorrent.org/"
],
"title": "qBittorrent",
"train": "community",
"version": "1.2.8"
}
}
}
Radarr


Get Started with Apps!
App Version: 5.28.0.10205 (Changelog)
Keywords: media, movies
Train: Community
Home Page: https://github.com/Radarr/Radarr
Added: 2024-07-30
Last Updated: 2025-09-08
Radarr is a movie collection manager for Usenet and BitTorrent users.
Run as Context- Radarr runs as any non-root user.
Group: 568 / radarr
User: 568 / radarr




App Metadata (Raw File)
{
"1.3.16": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/radarr/1.3.16",
"last_update": "2025-09-08 11:13:19",
"required_features": [],
"human_version": "5.28.0.10205_1.3.16",
"version": "1.3.16",
"app_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "5.28.0.10205",
"capabilities": [],
"categories": [
"media"
],
"changelog_url": "https://github.com/Radarr/Radarr/releases",
"date_added": "2024-07-30",
"description": "Radarr is a movie collection manager for Usenet and BitTorrent users.",
"home": "https://github.com/Radarr/Radarr",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/radarr/icons/icon.png",
"keywords": [
"media",
"movies"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "radarr",
"run_as_context": [
{
"description": "Radarr runs as any non-root user.",
"gid": 568,
"group_name": "radarr",
"uid": 568,
"user_name": "radarr"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/radarr/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/radarr/screenshots/screenshot2.png",
"https://media.sys.truenas.net/apps/radarr/screenshots/screenshot3.png",
"https://media.sys.truenas.net/apps/radarr/screenshots/screenshot4.png"
],
"sources": [
"https://github.com/home-operations/containers/tree/main/apps/radarr",
"https://github.com/Radarr/Radarr"
],
"title": "Radarr",
"train": "community",
"version": "1.3.16"
},
"schema": {
"groups": [
{
"name": "Radarr Configuration",
"description": "Configure Radarr"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for Radarr"
},
{
"name": "Network Configuration",
"description": "Configure Network for Radarr"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Radarr"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Radarr"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Radarr"
}
],
"questions": [
{
"variable": "TZ",
"group": "Radarr Configuration",
"label": "Timezone",
"schema": {
"type": "string",
"default": "Etc/UTC",
"required": true,
"$ref": [
"definitions/timezone"
]
}
},
{
"variable": "radarr",
"label": "",
"group": "Radarr Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "instance_name",
"label": "Instance Name",
"description": "The name of the Radarr instance.",
"schema": {
"type": "string",
"default": "Radarr",
"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 Radarr files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that Radarr 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": 30025,
"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": "config",
"label": "Radarr Config Storage",
"description": "The path to store Radarr 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.\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": "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": "radarr",
"description": "radarr"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Radarr.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Radarr.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Radarr</h1> <p><a href=\"https://github.com/Radarr/Radarr\">Radarr</a> is a movie collection manager for Usenet and BitTorrent users.</p>",
"changelog": null,
"chart_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "5.28.0.10205",
"capabilities": [],
"categories": [
"media"
],
"changelog_url": "https://github.com/Radarr/Radarr/releases",
"date_added": "2024-07-30",
"description": "Radarr is a movie collection manager for Usenet and BitTorrent users.",
"home": "https://github.com/Radarr/Radarr",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/radarr/icons/icon.png",
"keywords": [
"media",
"movies"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "radarr",
"run_as_context": [
{
"description": "Radarr runs as any non-root user.",
"gid": 568,
"group_name": "radarr",
"uid": 568,
"user_name": "radarr"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/radarr/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/radarr/screenshots/screenshot2.png",
"https://media.sys.truenas.net/apps/radarr/screenshots/screenshot3.png",
"https://media.sys.truenas.net/apps/radarr/screenshots/screenshot4.png"
],
"sources": [
"https://github.com/home-operations/containers/tree/main/apps/radarr",
"https://github.com/Radarr/Radarr"
],
"title": "Radarr",
"train": "community",
"version": "1.3.16"
}
}
}
Readarr


Get Started with Apps!
App Version: 0.4.18.2805 (Changelog)
Keywords: media, ebook, audiobook
Train: Community
Home Page: https://github.com/Readarr/Readarr
Added: 2024-07-31
Last Updated: 2025-09-02
Readarr is an ebook and audiobook collection manager for Usenet and BitTorrent users.
Run as Context- Readarr runs as any non-root user.
Group: 568 / readarr
User: 568 / readarr



App Metadata (Raw File)
{
"1.2.10": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/readarr/1.2.10",
"last_update": "2025-09-02 11:33:24",
"required_features": [],
"human_version": "0.4.18.2805_1.2.10",
"version": "1.2.10",
"app_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "0.4.18.2805",
"capabilities": [],
"categories": [
"media"
],
"changelog_url": "https://github.com/Readarr/Readarr/releases",
"date_added": "2024-07-31",
"description": "Readarr is an ebook and audiobook collection manager for Usenet and BitTorrent users.",
"home": "https://github.com/Readarr/Readarr",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/readarr/icons/icon.png",
"keywords": [
"media",
"ebook",
"audiobook"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "readarr",
"run_as_context": [
{
"description": "Readarr runs as any non-root user.",
"gid": 568,
"group_name": "readarr",
"uid": 568,
"user_name": "readarr"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/readarr/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/readarr/screenshots/screenshot2.png",
"https://media.sys.truenas.net/apps/readarr/screenshots/screenshot3.png"
],
"sources": [
"https://github.com/Readarr/Readarr",
"https://github.com/home-operations/containers/tree/main/apps/readarr"
],
"title": "Readarr (Deprecated)",
"train": "community",
"version": "1.2.10"
},
"schema": {
"groups": [
{
"name": "Readarr Configuration",
"description": "Configure Readarr"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for Readarr"
},
{
"name": "Network Configuration",
"description": "Configure Network for Readarr"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Readarr"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Readarr"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Readarr"
}
],
"questions": [
{
"variable": "readarr",
"label": "",
"group": "Readarr Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "instance_name",
"label": "Instance Name",
"description": "The name of the Readarr instance.",
"schema": {
"type": "string",
"default": "Readarr",
"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 Readarr files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that Readarr 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": 30045,
"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": "config",
"label": "Readarr Config Storage",
"description": "The path to store Readarr 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.\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": "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": "readarr",
"description": "readarr"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Readarr.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Readarr.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Readarr</h1> <p><a href=\"https://github.com/Readarr/Readarr\">Readarr</a> is an ebook and audiobook collection manager for Usenet and BitTorrent users.</p>",
"changelog": null,
"chart_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "0.4.18.2805",
"capabilities": [],
"categories": [
"media"
],
"changelog_url": "https://github.com/Readarr/Readarr/releases",
"date_added": "2024-07-31",
"description": "Readarr is an ebook and audiobook collection manager for Usenet and BitTorrent users.",
"home": "https://github.com/Readarr/Readarr",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/readarr/icons/icon.png",
"keywords": [
"media",
"ebook",
"audiobook"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "readarr",
"run_as_context": [
{
"description": "Readarr runs as any non-root user.",
"gid": 568,
"group_name": "readarr",
"uid": 568,
"user_name": "readarr"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/readarr/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/readarr/screenshots/screenshot2.png",
"https://media.sys.truenas.net/apps/readarr/screenshots/screenshot3.png"
],
"sources": [
"https://github.com/Readarr/Readarr",
"https://github.com/home-operations/containers/tree/main/apps/readarr"
],
"title": "Readarr (Deprecated)",
"train": "community",
"version": "1.2.10"
}
}
}
Recyclarr


Get Started with Apps!
Keywords: sync, sonarr, radarr
Train: Community
Home Page: https://recyclarr.dev
Added: 2024-09-10
Last Updated: 2025-09-02
Recyclarr synchronizes recommended settings from the TRaSH guides to your Sonarr/Radarr instances.
Run as Context- Recyclarr runs as any non-root user.
Group: 568 / recyclarr
User: 568 / recyclarr
App Metadata (Raw File)
{
"1.2.5": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/recyclarr/1.2.5",
"last_update": "2025-09-02 11:33:24",
"required_features": [],
"human_version": "7.4.1_1.2.5",
"version": "1.2.5",
"app_metadata": {
"app_version": "7.4.1",
"capabilities": [],
"categories": [
"media"
],
"changelog_url": "https://github.com/recyclarr/recyclarr/blob/master/CHANGELOG.md",
"date_added": "2024-09-10",
"description": "Recyclarr synchronizes recommended settings from the TRaSH guides to your Sonarr/Radarr instances.",
"home": "https://recyclarr.dev",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/recyclarr/icons/icon.png",
"keywords": [
"sync",
"sonarr",
"radarr"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "recyclarr",
"run_as_context": [
{
"description": "Recyclarr runs as any non-root user.",
"gid": 568,
"group_name": "recyclarr",
"uid": 568,
"user_name": "recyclarr"
}
],
"screenshots": [],
"sources": [
"https://recyclarr.dev",
"https://github.com/recyclarr/recyclarr/tree/recyclarr"
],
"title": "Recyclarr",
"train": "community",
"version": "1.2.5"
},
"schema": {
"groups": [
{
"name": "Recyclarr Configuration",
"description": "Configure Recyclarr"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for Recyclarr"
},
{
"name": "Network Configuration",
"description": "Configure Network for Recyclarr"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Recyclarr"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Recyclarr"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Recyclarr"
}
],
"questions": [
{
"variable": "TZ",
"group": "Recyclarr Configuration",
"label": "Timezone",
"schema": {
"type": "string",
"default": "Etc/UTC",
"required": true,
"$ref": [
"definitions/timezone"
]
}
},
{
"variable": "recyclarr",
"label": "",
"group": "Recyclarr Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "create_config",
"label": "Create Default Config",
"description": "Enable this if you want /config/recyclarr.yml to be created for\nyou automatically when the container starts. </br>\nIf the file already exists, it will not create the file again.\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "cron_schedule",
"label": "Cron Schedule",
"description": "The cron schedule to use for Recyclarr.\n",
"schema": {
"type": "string",
"default": "@daily",
"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 Recyclarr files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that Recyclarr 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": "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": "config",
"label": "Recyclarr Config Storage",
"description": "The path to store Recyclarr 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.\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": "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": "recyclarr",
"description": "recyclarr"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Recyclarr.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Recyclarr.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Recyclarr</h1> <p><a href=\"https://github.com/recyclarr/recyclarr\">Recyclarr</a> synchronizes recommended settings from the TRaSH guides to your Sonarr/Radarr instances.</p>",
"changelog": null,
"chart_metadata": {
"app_version": "7.4.1",
"capabilities": [],
"categories": [
"media"
],
"changelog_url": "https://github.com/recyclarr/recyclarr/blob/master/CHANGELOG.md",
"date_added": "2024-09-10",
"description": "Recyclarr synchronizes recommended settings from the TRaSH guides to your Sonarr/Radarr instances.",
"home": "https://recyclarr.dev",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/recyclarr/icons/icon.png",
"keywords": [
"sync",
"sonarr",
"radarr"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "recyclarr",
"run_as_context": [
{
"description": "Recyclarr runs as any non-root user.",
"gid": 568,
"group_name": "recyclarr",
"uid": 568,
"user_name": "recyclarr"
}
],
"screenshots": [],
"sources": [
"https://recyclarr.dev",
"https://github.com/recyclarr/recyclarr/tree/recyclarr"
],
"title": "Recyclarr",
"train": "community",
"version": "1.2.5"
}
}
}
Redis

Get Started with Apps!
App Version: 8.2.1
Keywords: cache
Train: Community
Home Page: https://redis.io/
Added: 2024-09-11
Last Updated: 2025-09-02
Redis. The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.
Run as Context- Redis runs as a any non-root user.
Group: 568 / redis
User: 568 / redis
App Metadata (Raw File)
{
"1.2.10": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/redis/1.2.10",
"last_update": "2025-09-02 11:33:24",
"required_features": [],
"human_version": "8.2.1_1.2.10",
"version": "1.2.10",
"app_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "8.2.1",
"capabilities": [],
"categories": [
"database"
],
"date_added": "2024-09-11",
"description": "Redis. The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.",
"home": "https://redis.io/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/redis/icons/icon.png",
"keywords": [
"cache"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "redis",
"run_as_context": [
{
"description": "Redis runs as a any non-root user.",
"gid": 568,
"group_name": "redis",
"uid": 568,
"user_name": "redis"
}
],
"screenshots": [],
"sources": [
"https://hub.docker.com/r/bitnami/redis",
"https://github.com/bitnami/containers/tree/main/bitnami/redis",
"https://redis.io/"
],
"title": "Redis",
"train": "community",
"version": "1.2.10"
},
"schema": {
"groups": [
{
"name": "Redis Configuration",
"description": "Configure Redis"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for Redis"
},
{
"name": "Network Configuration",
"description": "Configure Network for Redis"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Redis"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Redis"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Redis"
}
],
"questions": [
{
"variable": "redis",
"label": "",
"group": "Redis Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "allow_empty_password",
"label": "Allow Empty Password",
"description": "Allow empty password for Redis.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "password",
"label": "Password",
"description": "The password for Redis.",
"schema": {
"type": "string",
"default": "",
"private": true,
"required": true,
"show_if": [
[
"allow_empty_password",
"=",
false
]
],
"valid_chars": "^((?!@).)*$",
"valid_chars_error": "Character @ is not allowed in password"
}
},
{
"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 Redis files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that Redis 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": "tcp_port",
"label": "TCP 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": 30059,
"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": "Redis Data Storage",
"description": "The path to store Redis 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": "redis",
"description": "redis"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Redis.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Redis.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Redis</h1> <p><a href=\"https://redis.io/\">Redis</a>. The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.</p>",
"changelog": null,
"chart_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "8.2.1",
"capabilities": [],
"categories": [
"database"
],
"date_added": "2024-09-11",
"description": "Redis. The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.",
"home": "https://redis.io/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/redis/icons/icon.png",
"keywords": [
"cache"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "redis",
"run_as_context": [
{
"description": "Redis runs as a any non-root user.",
"gid": 568,
"group_name": "redis",
"uid": 568,
"user_name": "redis"
}
],
"screenshots": [],
"sources": [
"https://hub.docker.com/r/bitnami/redis",
"https://github.com/bitnami/containers/tree/main/bitnami/redis",
"https://redis.io/"
],
"title": "Redis",
"train": "community",
"version": "1.2.10"
}
}
}
Remote Assist

Added: 2025-01-07
Last Updated: 2025-09-02
Invite the TrueNAS team to remotely assist with your TrueNAS system.
Run as Context- Remote Assist runs as a root user.
Group: 0 / root
User: 0 / root
Host Mounts
- /dev/net/tun : Network device
Security Capabilities
- Remote Assist is able to change file ownership arbitrarily
- Remote Assist is able to bypass file permission checks
- Remote Assist is able to bypass permission checks for file operations
- Remote Assist is able to perform network administration tasks
- Remote Assist is able to use raw and packet sockets
- Remote Assist is able to load and unload kernel modules
App Metadata (Raw File)
{
"1.0.18": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/enterprise/ix-remote-assist/1.0.18",
"last_update": "2025-09-02 11:33:24",
"required_features": [],
"human_version": "v1.86.5_1.0.18",
"version": "1.0.18",
"app_metadata": {
"app_version": "v1.86.5",
"capabilities": [
{
"description": "Remote Assist is able to change file ownership arbitrarily",
"name": "CHOWN"
},
{
"description": "Remote Assist is able to bypass file permission checks",
"name": "DAC_OVERRIDE"
},
{
"description": "Remote Assist is able to bypass permission checks for file operations",
"name": "FOWNER"
},
{
"description": "Remote Assist is able to perform network administration tasks",
"name": "NET_ADMIN"
},
{
"description": "Remote Assist is able to use raw and packet sockets",
"name": "NET_RAW"
},
{
"description": "Remote Assist is able to load and unload kernel modules",
"name": "SYS_MODULE"
}
],
"categories": [
"networking"
],
"date_added": "2025-01-07",
"description": "Invite the TrueNAS team to remotely assist with your TrueNAS system.",
"home": "https://truenas.com",
"host_mounts": [
{
"description": "Network device",
"host_path": "/dev/net/tun"
}
],
"icon": "https://media.sys.truenas.net/apps/ix-app/icons/icon.webp",
"keywords": [
"remote assistance",
"vpn"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "ix-remote-assist",
"run_as_context": [
{
"description": "Remote Assist runs as a root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [],
"sources": [
"https://truenas.com/",
"https://hub.docker.com/r/tailscale/tailscale"
],
"title": "Remote Assist",
"train": "enterprise",
"version": "1.0.18"
},
"schema": {
"groups": [
{
"name": "Configuration",
"description": "Remote Assist is used by iX Support for Enterprise troubleshooting"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Tailscale"
}
],
"questions": [
{
"variable": "remote_assist",
"label": "",
"group": "Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "hostname",
"label": "System Identifier",
"description": "Identifier for this System.</br>\nOne will be given to you by iX Support.\n",
"schema": {
"type": "string",
"default": "truenas-scale",
"valid_chars": "^[a-z0-9-]+$",
"valid_chars_error": "Only lowercase letters, numbers, and hyphens are allowed.\n",
"required": true
}
},
{
"variable": "auth_key",
"label": "Auth Key",
"description": "The auth key for Remote Assistance.</br>\nPlease enter the key as provided by iX support.</br>\n",
"schema": {
"type": "string",
"default": "",
"required": true,
"private": true
}
}
]
}
},
{
"variable": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"hidden": true,
"attrs": [
{
"variable": "state",
"label": "Tailscale State Storage",
"description": "The path to store Tailscale State.",
"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": "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": "state"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": []
}
}
]
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Remote Assist</h1> <p><a href=\"https://truenas.com\">Remote Assist</a> iX support remote assistance for Enterprise Systems</p>",
"changelog": null,
"chart_metadata": {
"app_version": "v1.86.5",
"capabilities": [
{
"description": "Remote Assist is able to change file ownership arbitrarily",
"name": "CHOWN"
},
{
"description": "Remote Assist is able to bypass file permission checks",
"name": "DAC_OVERRIDE"
},
{
"description": "Remote Assist is able to bypass permission checks for file operations",
"name": "FOWNER"
},
{
"description": "Remote Assist is able to perform network administration tasks",
"name": "NET_ADMIN"
},
{
"description": "Remote Assist is able to use raw and packet sockets",
"name": "NET_RAW"
},
{
"description": "Remote Assist is able to load and unload kernel modules",
"name": "SYS_MODULE"
}
],
"categories": [
"networking"
],
"date_added": "2025-01-07",
"description": "Invite the TrueNAS team to remotely assist with your TrueNAS system.",
"home": "https://truenas.com",
"host_mounts": [
{
"description": "Network device",
"host_path": "/dev/net/tun"
}
],
"icon": "https://media.sys.truenas.net/apps/ix-app/icons/icon.webp",
"keywords": [
"remote assistance",
"vpn"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "ix-remote-assist",
"run_as_context": [
{
"description": "Remote Assist runs as a root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [],
"sources": [
"https://truenas.com/",
"https://hub.docker.com/r/tailscale/tailscale"
],
"title": "Remote Assist",
"train": "enterprise",
"version": "1.0.18"
}
}
}
Remote Assist
TrueNAS Enterprise
TrueNAS Enterprise-licensed systems do not have applications available by default. To enable applications as part of the Enterprise license, consult with the TrueNAS Support team.
Official TrueNAS support for Enterprise apps falls under two tiers: Enterprise Deployment Support and Enterprise Application Support. Please review the App Support Definitions and consult with the TrueNAS Support Team for any further clarifications.
Romm
Romm
Get Started with Apps!App Version: 4.2.0 (Changelog)
Keywords: romm, rom, manager, emulator
Train: Community
Home Page: https://romm.appRomm Details
Added: 2025-01-14
Last Updated: 2025-09-10RomM allows you to scan, enrich, browse and play your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes, and custom tags, RomM is a must-have for anyone who plays on emulators.
Run as Context
- Romm runs as any non-root user.
Group: 568 / romm
User: 568 / romm- Redis runs as any non-root user.
Group: 568 / redis
User: 568 / redisScreenshots
×App Metadata (Raw File)
{ "1.0.44": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/community/romm/1.0.44", "last_update": "2025-09-10 15:21:47", "required_features": [], "human_version": "4.2.0_1.0.44", "version": "1.0.44", "app_metadata": { "app_version": "4.2.0", "capabilities": [], "categories": [ "games" ], "changelog_url": "https://github.com/rommapp/romm/releases", "date_added": "2025-01-14", "description": "RomM allows you to scan, enrich, browse and play your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes, and custom tags, RomM is a must-have for anyone who plays on emulators.", "home": "https://romm.app", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/romm/icons/icon.png", "keywords": [ "romm", "rom", "manager", "emulator" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "romm", "run_as_context": [ { "description": "Romm runs as any non-root user.", "gid": 568, "group_name": "romm", "uid": 568, "user_name": "romm" }, { "description": "Redis runs as any non-root user.", "gid": 568, "group_name": "redis", "uid": 568, "user_name": "redis" } ], "screenshots": [ "https://media.sys.truenas.net/apps/romm/screenshots/screenshot1.png", "https://media.sys.truenas.net/apps/romm/screenshots/screenshot2.png" ], "sources": [ "https://github.com/rommapp/romm" ], "title": "Romm", "train": "community", "version": "1.0.44" }, "schema": { "groups": [ { "name": "Romm Configuration", "description": "Deploy RomM by selecting from the following options, but when in doubt use the defaults." }, { "name": "User and Group Configuration", "description": "Configure User and Group for Romm" }, { "name": "Network Configuration", "description": "Configure Network for Romm" }, { "name": "Storage Configuration", "description": "RomM uses two internal persistent volumes: one (resources) for cover art and screenshots, and another (assets) for saves, states, and other adjacent files.\nYou'll want to mount two others (library and config) for the ROM library and the config.yml file.\n" }, { "name": "Labels Configuration", "description": "Configure Labels for Romm" }, { "name": "Resources Configuration", "description": "The defaults should work for most people.\nYou may with to increase memory limits if you have an extensive ROM library (20K+ games).\n" } ], "questions": [ { "variable": "TZ", "group": "Romm Configuration", "label": "Timezone", "schema": { "type": "string", "default": "Etc/UTC", "required": true, "$ref": [ "definitions/timezone" ] } }, { "variable": "romm", "label": "", "group": "Romm Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "postgres_image_selector", "label": "Postgres Image (CAUTION)", "description": "If you are changing this after the postgres directory has been initialized,</br>\nSTOP! and make sure you have a backup of your data.</br>\nChanging this will trigger an one way database upgrade.</br>\nYou can only select newer versions of postgres.</br>\nSelecting an older version will refuse to start.</br>\nIf something goes wrong, you will have to restore from backup.\n", "schema": { "type": "string", "default": "postgres_17_image", "required": true, "enum": [ { "value": "postgres_17_image", "description": "Postgres 17" } ] } }, { "variable": "db_password", "label": "Database Password", "description": "The password for Postgres", "schema": { "type": "string", "default": "", "required": true, "private": true } }, { "variable": "redis_password", "label": "Redis Password", "description": "The password for Romm.", "schema": { "type": "string", "default": "", "required": true, "private": true } }, { "variable": "auth_secret_key", "label": "Auth Secret Key", "description": "Generate a key with `openssl rand -hex 32`", "schema": { "type": "string", "default": "", "required": true, "private": true } }, { "variable": "igdb_client_id", "label": "IGDB Client ID", "description": "Generate an ID and SECRET for IGDB (https://api-docs.igdb.com/#account-creation)", "schema": { "type": "string", "default": "", "private": true } }, { "variable": "igdb_client_secret", "label": "IGDB Client Secret", "schema": { "type": "string", "default": "", "private": true } }, { "variable": "mobygames_api_key", "label": "MobyGames API Key", "description": "Generate an API key for MobyGames (https://www.mobygames.com/info/api)", "schema": { "type": "string", "default": "", "private": true } }, { "variable": "steamgriddb_api_key", "label": "SteamGridDB API Key", "description": "Generate an API key for SteamGridDB (https://github.com/rommapp/romm/wiki/Generate-API-Keys#steamgriddb)", "schema": { "type": "string", "default": "", "private": 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 Romm files will be owned by.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } }, { "variable": "group", "label": "Group ID", "description": "The group id that Romm 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": 30061, "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": "storage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "library", "label": "Romm Library Storage", "description": "Your game library. Check https://github.com/rommapp/romm?tab=readme-ov-file#folder-structure for more details.", "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": "library" } }, { "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": "resources", "label": "Romm Resources Storage", "description": "Fetched cover art, screenshots, and other resources.", "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": "resources" } }, { "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": "Romm Config Storage", "description": "The path where config.yml is stored.", "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": "assets", "label": "Romm Assets Storage", "description": "Storage for uploaded saves, states, etc.", "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": "assets" } }, { "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": "postgres_data", "label": "Postgres Data Storage", "description": "Storage location for the Postgres database.", "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": "pg_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": "auto_permissions", "label": "Automatic Permissions", "description": "Automatically set permissions for the host path.\nEnabling this, will check the top level directory,</br>\nIf it finds incorrect permissions, it will `chown` the\nhost path to the user and group required for the\npostgres container.\n", "schema": { "type": "boolean", "default": false, "show_if": [ [ "acl_enable", "=", false ] ] } } ] } } ] } }, { "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": "romm", "description": "romm" }, { "value": "postgres", "description": "postgres" }, { "value": "redis", "description": "redis" } ] } } ] } } ] } } ] } }, { "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 Romm.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for Romm.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "<h1>RomM</h1> <h2>Your beautiful, powerful, self-hosted ROM manager</h2> <p><a href=\"https://romm.app\">RomM</a> allows you to scan, enrich, and browse your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes, and custom tags, RomM is a must-have for anyone who plays on emulators.</p>", "changelog": null, "chart_metadata": { "app_version": "4.2.0", "capabilities": [], "categories": [ "games" ], "changelog_url": "https://github.com/rommapp/romm/releases", "date_added": "2025-01-14", "description": "RomM allows you to scan, enrich, browse and play your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes, and custom tags, RomM is a must-have for anyone who plays on emulators.", "home": "https://romm.app", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/romm/icons/icon.png", "keywords": [ "romm", "rom", "manager", "emulator" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "romm", "run_as_context": [ { "description": "Romm runs as any non-root user.", "gid": 568, "group_name": "romm", "uid": 568, "user_name": "romm" }, { "description": "Redis runs as any non-root user.", "gid": 568, "group_name": "redis", "uid": 568, "user_name": "redis" } ], "screenshots": [ "https://media.sys.truenas.net/apps/romm/screenshots/screenshot1.png", "https://media.sys.truenas.net/apps/romm/screenshots/screenshot2.png" ], "sources": [ "https://github.com/rommapp/romm" ], "title": "Romm", "train": "community", "version": "1.0.44" } } }
Roundcube
Roundcube
Get Started with Apps!Requires TrueNAS: 24.10.2.2 or newer
App Version: 1.6.11-apache (Changelog)
Keywords: webmail, email
Train: Community
Home Page: https://roundcube.net/Roundcube Details
Added: 2024-09-11
Last Updated: 2025-09-02Roundcube is a browser-based multilingual IMAP client with an application-like user interface.
Run as Context
- Roundcube runs as root user.
Group: 0 / root
User: 0 / root- Postgres runs as non-root user.
Group: 999 / postgres
User: 999 / postgresScreenshots![]()
![]()
![]()
×Security Capabilities
- Roundcube is able to change file ownership arbitrarily
- Roundcube is able to bypass file permission checks
- Roundcube is able to bypass permission checks for file operations
- Roundcube is able to change group ID of processes
- Roundcube is able to change user ID of processes
App Metadata (Raw File)
{ "1.3.9": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/community/roundcube/1.3.9", "last_update": "2025-09-02 11:33:24", "required_features": [], "human_version": "1.6.11-apache_1.3.9", "version": "1.3.9", "app_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "1.6.11-apache", "capabilities": [ { "description": "Roundcube is able to change file ownership arbitrarily", "name": "CHOWN" }, { "description": "Roundcube is able to bypass file permission checks", "name": "DAC_OVERRIDE" }, { "description": "Roundcube is able to bypass permission checks for file operations", "name": "FOWNER" }, { "description": "Roundcube is able to change group ID of processes", "name": "SETGID" }, { "description": "Roundcube is able to change user ID of processes", "name": "SETUID" } ], "categories": [ "productivity" ], "changelog_url": "https://github.com/roundcube/roundcubemail/releases", "date_added": "2024-09-11", "description": "Roundcube is a browser-based multilingual IMAP client with an application-like user interface.", "home": "https://roundcube.net/", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/roundcube/icons/icon.png", "keywords": [ "webmail", "email" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "roundcube", "run_as_context": [ { "description": "Roundcube runs as root user.", "gid": 0, "group_name": "root", "uid": 0, "user_name": "root" }, { "description": "Postgres runs as non-root user.", "gid": 999, "group_name": "postgres", "uid": 999, "user_name": "postgres" } ], "screenshots": [ "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot1.png", "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot2.png", "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot3.png", "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot4.png", "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot5.png" ], "sources": [ "https://roundcube.net/", "https://hub.docker.com/r/roundcube/roundcubemail/" ], "title": "Roundcube", "train": "community", "version": "1.3.9" }, "schema": { "groups": [ { "name": "Roundcube Configuration", "description": "Configure Roundcube" }, { "name": "Network Configuration", "description": "Configure Network for Roundcube" }, { "name": "Storage Configuration", "description": "Configure Storage for Roundcube" }, { "name": "Labels Configuration", "description": "Configure Labels for Roundcube" }, { "name": "Resources Configuration", "description": "Configure Resources for Roundcube" } ], "questions": [ { "variable": "roundcube", "label": "", "group": "Roundcube Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "postgres_image_selector", "label": "Postgres Image (CAUTION)", "description": "If you are changing this after the postgres directory has been initialized,</br>\nSTOP! and make sure you have a backup of your data.</br>\nChanging this will trigger an one way database upgrade.</br>\nYou can only select newer versions of postgres.</br>\nSelecting an older version will refuse to start.</br>\nIf something goes wrong, you will have to restore from backup.\n", "schema": { "type": "string", "default": "postgres_17_image", "required": true, "enum": [ { "value": "postgres_15_image", "description": "Postgres 15" }, { "value": "postgres_17_image", "description": "Postgres 17" } ] } }, { "variable": "db_password", "label": "Database Password", "description": "The password for Roundcube.", "schema": { "type": "string", "default": "", "required": true, "private": true } }, { "variable": "default_host", "label": "Default Host (IMAP)", "description": "The default host to connect to.", "schema": { "type": "string", "default": "", "required": true } }, { "variable": "default_port", "label": "Default Port (IMAP)", "description": "The default port to connect to.", "schema": { "type": "int", "default": 143, "min": 1, "max": 65535, "required": true } }, { "variable": "smtp_server", "label": "SMTP Server", "description": "The SMTP server to use.", "schema": { "type": "string", "default": "", "required": true } }, { "variable": "smtp_port", "label": "SMTP Port", "description": "The SMTP port to use.", "schema": { "type": "int", "default": 587, "min": 1, "max": 65535, "required": true } }, { "variable": "skin", "label": "Skin", "description": "Configures the default theme</br>\nIf you don't have the theme installed,\nit will show an error on all pages.\n", "schema": { "type": "string", "default": "elastic", "required": true } }, { "variable": "upload_max_size", "label": "Upload Max Size (MB)", "description": "The maximum size of an upload in MB.</br>", "schema": { "type": "int", "min": 1, "default": 5, "required": true } }, { "variable": "aspell_dicts", "label": "Aspell Dictionaries", "description": "A list of aspell dictionaries to install.", "schema": { "type": "list", "default": [], "items": [ { "variable": "aspellDict", "label": "Aspell Dictionary", "schema": { "type": "string", "required": true } } ] } }, { "variable": "plugins", "label": "Plugins", "description": "A list of plugins to enable.", "schema": { "type": "list", "default": [ "archive", "zipdownload" ], "items": [ { "variable": "plugin", "label": "Plugin", "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": "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", "show_if": [ [ "bind_mode", "=", "published" ] ], "default": 31007, "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": "storage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "html", "label": "Roundcube HTML Storage", "description": "The path to store Roundcube HTML.", "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": "html" } }, { "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": "Roundcube Config Storage", "description": "The path to store Roundcube 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.\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": "temps", "label": "Roundcube Temps Storage", "description": "The path to store Roundcube Temps.", "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": "temps" } }, { "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": "postgres_data", "label": "Roundcube Postgres Data Storage", "description": "The path to store Roundcube Postgres 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": "postgres_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": "auto_permissions", "label": "Automatic Permissions", "description": "Automatically set permissions for the host path.\nEnabling this, will check the top level directory,</br>\nIf it finds incorrect permissions, it will `chown` the\nhost path to the user and group required for the\npostgres container.\n", "schema": { "type": "boolean", "default": false, "show_if": [ [ "acl_enable", "=", false ] ] } } ] } } ] } }, { "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": "roundcube", "description": "roundcube" }, { "value": "postgres", "description": "postgres" } ] } } ] } } ] } } ] } }, { "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 Roundcube.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for Roundcube.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "<h1>Roundcube</h1> <p><a href=\"https://roundcube.net/\">Roundcube</a> is a browser-based multilingual IMAP client with an application-like user interface.</p>", "changelog": null, "chart_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "1.6.11-apache", "capabilities": [ { "description": "Roundcube is able to change file ownership arbitrarily", "name": "CHOWN" }, { "description": "Roundcube is able to bypass file permission checks", "name": "DAC_OVERRIDE" }, { "description": "Roundcube is able to bypass permission checks for file operations", "name": "FOWNER" }, { "description": "Roundcube is able to change group ID of processes", "name": "SETGID" }, { "description": "Roundcube is able to change user ID of processes", "name": "SETUID" } ], "categories": [ "productivity" ], "changelog_url": "https://github.com/roundcube/roundcubemail/releases", "date_added": "2024-09-11", "description": "Roundcube is a browser-based multilingual IMAP client with an application-like user interface.", "home": "https://roundcube.net/", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/roundcube/icons/icon.png", "keywords": [ "webmail", "email" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "roundcube", "run_as_context": [ { "description": "Roundcube runs as root user.", "gid": 0, "group_name": "root", "uid": 0, "user_name": "root" }, { "description": "Postgres runs as non-root user.", "gid": 999, "group_name": "postgres", "uid": 999, "user_name": "postgres" } ], "screenshots": [ "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot1.png", "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot2.png", "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot3.png", "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot4.png", "https://media.sys.truenas.net/apps/roundcube/screenshots/screenshot5.png" ], "sources": [ "https://roundcube.net/", "https://hub.docker.com/r/roundcube/roundcubemail/" ], "title": "Roundcube", "train": "community", "version": "1.3.9" } } }
Rsync Daemon
Rsync Daemon
Get Started with Apps!Requires TrueNAS: 24.10.2.2 or newer
App Version: 1.0.2
Keywords: sync, rsync, file transfer
Train: Community
Home Page: https://github.com/truenas/containers/tree/main/apps/rsyncdRsync Daemon Details
Added: 2024-08-28
Last Updated: 2025-09-02Rsync is an open source utility that provides fast incremental file transfer.
Run as Context
- Rsync Daemon run as root user.
Group: 0 / root
User: 0 / root×Security Capabilities
- Rsyncd is able to change file ownership arbitrarily
- Rsyncd is able to bypass file permission checks
- Rsyncd is able to bypass permission checks for file operations
- Rsyncd is able to set file capabilities on other files
- Rsyncd is able to change group ID of processes
- Rsyncd is able to change user ID of processes
- Rsyncd is able to use chroot() system call
App Metadata (Raw File)
{ "1.2.7": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/community/rsyncd/1.2.7", "last_update": "2025-09-02 11:33:24", "required_features": [], "human_version": "1.0.2_1.2.7", "version": "1.2.7", "app_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "1.0.2", "capabilities": [ { "description": "Rsyncd is able to change file ownership arbitrarily", "name": "CHOWN" }, { "description": "Rsyncd is able to bypass file permission checks", "name": "DAC_OVERRIDE" }, { "description": "Rsyncd is able to bypass permission checks for file operations", "name": "FOWNER" }, { "description": "Rsyncd is able to set file capabilities on other files", "name": "SETFCAP" }, { "description": "Rsyncd is able to change group ID of processes", "name": "SETGID" }, { "description": "Rsyncd is able to change user ID of processes", "name": "SETUID" }, { "description": "Rsyncd is able to use chroot() system call", "name": "SYS_CHROOT" } ], "categories": [ "storage" ], "date_added": "2024-08-28", "description": "Rsync is an open source utility that provides fast incremental file transfer.", "home": "https://github.com/truenas/containers/tree/main/apps/rsyncd", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/rsyncd/icons/icon.png", "keywords": [ "sync", "rsync", "file transfer" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "rsyncd", "run_as_context": [ { "description": "Rsync Daemon run as root user.", "gid": 0, "group_name": "root", "uid": 0, "user_name": "root" } ], "screenshots": [], "sources": [ "https://github.com/truenas/containers/tree/master/apps/rsyncd", "https://hub.docker.com/r/ixsystems/rsyncd" ], "title": "Rsync Daemon", "train": "community", "version": "1.2.7" }, "schema": { "groups": [ { "name": "Rsync Daemon Configuration", "description": "Configure Rsync Daemon" }, { "name": "Network Configuration", "description": "Configure Network for Rsync Daemon" }, { "name": "Storage Configuration", "description": "Configure Storage for Rsync Daemon" }, { "name": "Labels Configuration", "description": "Configure Labels for Rsync Daemon" }, { "name": "Resources Configuration", "description": "Configure Resources for Rsync Daemon" } ], "questions": [ { "variable": "rsyncd", "label": "", "group": "Rsync Daemon Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "max_connections", "label": "Max Connections", "description": "The maximum number of simultaneous connections.", "schema": { "type": "int", "default": 4, "required": true } }, { "variable": "aux_params", "label": "Auxillary Parameters", "description": "Configure auxillary parameters for Rsync.", "schema": { "type": "list", "default": [], "items": [ { "variable": "aux_entry", "label": "Auxillary Parameter Entry", "schema": { "type": "dict", "attrs": [ { "variable": "param", "label": "Parameter", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string", "required": true } } ] } } ] } }, { "variable": "rsync_modules", "label": "Rsync Modules", "description": "Configure modules for Rsync.", "schema": { "type": "list", "default": [], "min": 1, "required": true, "items": [ { "variable": "module", "label": "Module", "schema": { "type": "dict", "attrs": [ { "variable": "name", "label": "Module Name", "description": "Module name that matches the name requested by the rsync client.\n", "schema": { "type": "string", "valid_chars": "^[a-zA-Z0-9]+([_-]*[a-zA-Z0-9]+)+$", "valid_chars_error": "Module Name, can include [Letters (a-z, A-Z), Numbers (0,9), Underscore (_), Dash (-)],</br>\nbut cannot start or end with [Underscore (_), Dash (-), Dot (.)]\n", "required": true } }, { "variable": "enabled", "label": "Enable Module", "schema": { "type": "boolean", "default": true } }, { "variable": "comment", "label": "Comment", "description": "Describe the module.", "schema": { "type": "string", "show_if": [ [ "enabled", "=", true ] ] } }, { "variable": "host_path", "label": "Host Path", "description": "The host path to use for the module.", "schema": { "type": "hostpath", "show_if": [ [ "enabled", "=", true ] ], "required": true } }, { "variable": "access_mode", "label": "Access Mode", "description": "The access mode for the module.", "schema": { "type": "string", "show_if": [ [ "enabled", "=", true ] ], "default": "RO", "required": true, "enum": [ { "value": "RO", "description": "Read Only" }, { "value": "RW", "description": "Read Write" }, { "value": "WO", "description": "Write Only" } ] } }, { "variable": "max_connections", "label": "Max Connections", "description": "The maximum number of simultaneous connections.", "schema": { "type": "int", "show_if": [ [ "enabled", "=", true ] ], "default": 0, "min": 0, "max": 1000, "required": true } }, { "variable": "uid", "label": "UID", "description": "The UID to use for the module.", "schema": { "type": "int", "show_if": [ [ "enabled", "=", true ] ], "default": 0, "min": 0, "max": 4294967295, "required": true } }, { "variable": "gid", "label": "GID", "description": "The GID to use for the module.", "schema": { "type": "int", "show_if": [ [ "enabled", "=", true ] ], "default": 0, "min": 0, "max": 4294967295, "required": true } }, { "variable": "hosts_allow", "label": "Hosts Allow", "description": "The hosts allowed to access the module.", "schema": { "type": "list", "show_if": [ [ "enabled", "=", true ] ], "default": [], "items": [ { "variable": "host", "label": "Host", "schema": { "type": "string", "required": true } } ] } }, { "variable": "hosts_deny", "label": "Hosts Deny", "description": "The hosts denied to access the module.", "schema": { "type": "list", "show_if": [ [ "enabled", "=", true ] ], "default": [], "items": [ { "variable": "host", "label": "Host", "schema": { "type": "string", "required": true } } ] } }, { "variable": "aux_params", "label": "Auxillary Parameters", "description": "Configure auxillary parameters for Rsync.", "schema": { "type": "list", "show_if": [ [ "enabled", "=", true ] ], "default": [], "items": [ { "variable": "aux_entry", "label": "Auxillary Parameter Entry", "schema": { "type": "dict", "attrs": [ { "variable": "param", "label": "Parameter", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "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": "rsync_port", "label": "Rsync Port", "description": "The port for Rsync Daemon", "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": 30026, "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": true } } ] } }, { "variable": "storage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "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": "rsyncd", "description": "rsyncd" } ] } } ] } } ] } } ] } }, { "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 Rsync Daemon.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for Rsync Daemon.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "<h1>Rsyncd</h1> <p><a href=\"https://rsync.samba.org/\">Rsyncd</a> is an open source utility that provides fast incremental file transfer.</p>", "changelog": null, "chart_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "1.0.2", "capabilities": [ { "description": "Rsyncd is able to change file ownership arbitrarily", "name": "CHOWN" }, { "description": "Rsyncd is able to bypass file permission checks", "name": "DAC_OVERRIDE" }, { "description": "Rsyncd is able to bypass permission checks for file operations", "name": "FOWNER" }, { "description": "Rsyncd is able to set file capabilities on other files", "name": "SETFCAP" }, { "description": "Rsyncd is able to change group ID of processes", "name": "SETGID" }, { "description": "Rsyncd is able to change user ID of processes", "name": "SETUID" }, { "description": "Rsyncd is able to use chroot() system call", "name": "SYS_CHROOT" } ], "categories": [ "storage" ], "date_added": "2024-08-28", "description": "Rsync is an open source utility that provides fast incremental file transfer.", "home": "https://github.com/truenas/containers/tree/main/apps/rsyncd", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/rsyncd/icons/icon.png", "keywords": [ "sync", "rsync", "file transfer" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "rsyncd", "run_as_context": [ { "description": "Rsync Daemon run as root user.", "gid": 0, "group_name": "root", "uid": 0, "user_name": "root" } ], "screenshots": [], "sources": [ "https://github.com/truenas/containers/tree/master/apps/rsyncd", "https://hub.docker.com/r/ixsystems/rsyncd" ], "title": "Rsync Daemon", "train": "community", "version": "1.2.7" } } }