2FAuth

Get Started with Apps!
App Version: 5.6.0 (Changelog)
Keywords: security, 2fa, otp
Train: Community
Home Page: https://docs.2fauth.app/
Added: 2024-09-18
Last Updated: 2025-09-02
2FAuth is a web based self-hosted alternative to One Time Passcode (OTP) generators like Google Authenticator, designed for both mobile and desktop.
Run as Context- 2FAuth runs as non-root user.
Group: 1000 / 2fauth
User: 1000 / 2fauth

App Metadata (Raw File)
{
"1.2.7": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/twofactor-auth/1.2.7",
"last_update": "2025-09-02 11:33:24",
"required_features": [],
"human_version": "5.6.0_1.2.7",
"version": "1.2.7",
"app_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "5.6.0",
"capabilities": [],
"categories": [
"security"
],
"changelog_url": "https://github.com/Bubka/2FAuth/blob/master/changelog.md",
"date_added": "2024-09-18",
"description": "2FAuth is a web based self-hosted alternative to One Time Passcode (OTP) generators like Google Authenticator, designed for both mobile and desktop.",
"home": "https://docs.2fauth.app/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/twofactor-auth/icons/icon.png",
"keywords": [
"security",
"2fa",
"otp"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "twofactor-auth",
"run_as_context": [
{
"description": "2FAuth runs as non-root user.",
"gid": 1000,
"group_name": "2fauth",
"uid": 1000,
"user_name": "2fauth"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/twofactor-auth/screenshots/screenshot1.png"
],
"sources": [
"https://github.com/Bubka/2FAuth",
"https://hub.docker.com/r/2fauth/2fauth/"
],
"title": "2FAuth",
"train": "community",
"version": "1.2.7"
},
"schema": {
"groups": [
{
"name": "2FAuth Configuration",
"description": "Configure 2FAuth"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for 2FAuth"
},
{
"name": "Network Configuration",
"description": "Configure Network for 2FAuth"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for 2FAuth"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for 2FAuth"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for 2FAuth"
}
],
"questions": [
{
"variable": "TZ",
"group": "2FAuth Configuration",
"label": "Timezone",
"schema": {
"type": "string",
"default": "Etc/UTC",
"required": true,
"$ref": [
"definitions/timezone"
]
}
},
{
"variable": "twofactor_auth",
"label": "",
"group": "2FAuth Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "app_key",
"label": "App Key",
"description": "The app key for 2FAuth.",
"schema": {
"type": "string",
"required": true,
"private": true,
"min_length": 32,
"max_length": 32,
"default": ""
}
},
{
"variable": "app_name",
"label": "App Name",
"description": "The app name for 2FAuth.",
"schema": {
"type": "string",
"required": true,
"default": "2FAuth"
}
},
{
"variable": "app_url",
"label": "App URL",
"description": "The app URL for 2FAuth.</br>\nSetting this wrong will show a blank page.</br>\nExamples:</br>\nhttps://2fauth.example.com </br>\nhttp://192.168.1.100:30081\n",
"schema": {
"type": "uri",
"required": true,
"default": ""
}
},
{
"variable": "site_owner_email",
"label": "Site Owner Email",
"description": "The email address of the site owner.",
"schema": {
"type": "string",
"required": true,
"default": ""
}
},
{
"variable": "authentication_guard",
"label": "Authentication Guard",
"description": "When using 'reverse-proxy-guard' 2FAuth only look for the dedicated headers and skip all\nother built-in authentication checks. That means your proxy is fully responsible of the\nauthentication process, 2FAuth will trust him as long as headers are presents.\n",
"schema": {
"type": "string",
"default": "web-guard",
"required": true,
"enum": [
{
"value": "web-guard",
"description": "Web Guard"
},
{
"value": "reverse-proxy-guard",
"description": "Reverse Proxy Guard"
}
]
}
},
{
"variable": "authentication_header_user",
"label": "Authentication Proxy Header User",
"description": "Name of the HTTP headers sent by the reverse proxy that identifies the authenticated\nuser at proxy level. Check your proxy documentation to find out how these headers are named.\n",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"authentication_guard",
"=",
"reverse-proxy-guard"
]
],
"required": true
}
},
{
"variable": "authentication_header_email",
"label": "Authentication Proxy Header Email",
"description": "Name of the HTTP headers sent by the reverse proxy that identifies the authenticated\nuser at proxy level. Check your proxy documentation to find out how these headers are named.\n",
"schema": {
"type": "string",
"default": "",
"show_if": [
[
"authentication_guard",
"=",
"reverse-proxy-guard"
]
],
"required": true
}
},
{
"variable": "webauthn_user_verification",
"label": "WebAuthn User Verification",
"description": "Most authenticators and smartphones will ask the user to actively verify\nthemselves for log in. For example, through a touch plus pin code,\npassword entry, or biometric recognition (e.g., presenting a fingerprint).\nThe intent is to distinguish one user from any other.\n",
"schema": {
"type": "string",
"default": "preferred",
"required": true,
"enum": [
{
"value": "preferred",
"description": "Preferred"
},
{
"value": "required",
"description": "Required"
},
{
"value": "discouraged",
"description": "Discouraged"
}
]
}
},
{
"variable": "trusted_proxies",
"label": "Trusted Proxies",
"description": "The list of proxies IP to trust",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "trustedProxy",
"label": "Trusted Proxy",
"schema": {
"type": "string",
"required": true
}
}
]
}
},
{
"variable": "additional_envs",
"label": "Additional Environment Variables",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "env",
"label": "Environment Variable",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "run_as",
"label": "",
"group": "User and Group Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "user",
"label": "User ID",
"description": "The user id that 2FAuth files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that 2FAuth 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": "web_port",
"label": "WebUI Port",
"schema": {
"type": "dict",
"show_if": [
[
"host_network",
"=",
false
]
],
"attrs": [
{
"variable": "bind_mode",
"label": "Port Bind Mode",
"description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
"schema": {
"type": "string",
"default": "published",
"enum": [
{
"value": "published",
"description": "Publish port on the host for external access"
},
{
"value": "exposed",
"description": "Expose port for inter-container communication"
},
{
"value": "",
"description": "None"
}
]
}
},
{
"variable": "port_number",
"label": "Port Number",
"schema": {
"type": "int",
"show_if": [
[
"bind_mode",
"=",
"published"
]
],
"default": 30081,
"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": "config",
"label": "2FAuth Config Storage",
"description": "The path to store 2FAuth 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": "twofactor-auth",
"description": "twofactor-auth"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 2FAuth.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for 2FAuth.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>2FAuth</h1> <p><a href=\"https://docs.2fauth.app/\">2FAuth</a> is a web based self-hosted alternative to One Time Passcode (OTP) generators like Google Authenticator, designed for both mobile and desktop.</p>",
"changelog": null,
"chart_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "5.6.0",
"capabilities": [],
"categories": [
"security"
],
"changelog_url": "https://github.com/Bubka/2FAuth/blob/master/changelog.md",
"date_added": "2024-09-18",
"description": "2FAuth is a web based self-hosted alternative to One Time Passcode (OTP) generators like Google Authenticator, designed for both mobile and desktop.",
"home": "https://docs.2fauth.app/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/twofactor-auth/icons/icon.png",
"keywords": [
"security",
"2fa",
"otp"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "twofactor-auth",
"run_as_context": [
{
"description": "2FAuth runs as non-root user.",
"gid": 1000,
"group_name": "2fauth",
"uid": 1000,
"user_name": "2fauth"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/twofactor-auth/screenshots/screenshot1.png"
],
"sources": [
"https://github.com/Bubka/2FAuth",
"https://hub.docker.com/r/2fauth/2fauth/"
],
"title": "2FAuth",
"train": "community",
"version": "1.2.7"
}
}
}
Actual Budget


Get Started with Apps!
App Version: 25.8.0 (Changelog)
Keywords: finance, budget
Train: Community
Home Page: https://actualbudget.org
Added: 2024-08-06
Last Updated: 2025-09-02
Actual Budget is a super fast and privacy-focused app for managing your finances.
Run as Context- Actual Budget runs as any non-root user.
Group: 568 / actual
User: 568 / actual



App Metadata (Raw File)
{
"1.3.11": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/actual-budget/1.3.11",
"last_update": "2025-09-02 11:33:24",
"required_features": [],
"human_version": "25.8.0_1.3.11",
"version": "1.3.11",
"app_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "25.8.0",
"capabilities": [],
"categories": [
"financial"
],
"changelog_url": "https://actualbudget.org/docs/releases",
"date_added": "2024-08-06",
"description": "Actual Budget is a super fast and privacy-focused app for managing your finances.",
"home": "https://actualbudget.org",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/actual-budget/icons/icon.png",
"keywords": [
"finance",
"budget"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "actual-budget",
"run_as_context": [
{
"description": "Actual Budget runs as any non-root user.",
"gid": 568,
"group_name": "actual",
"uid": 568,
"user_name": "actual"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/actual-budget/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/actual-budget/screenshots/screenshot2.png",
"https://media.sys.truenas.net/apps/actual-budget/screenshots/screenshot3.png"
],
"sources": [
"https://github.com/actualbudget/actual-server",
"https://hub.docker.com/r/actualbudget/actual-server"
],
"title": "Actual Budget",
"train": "community",
"version": "1.3.11"
},
"schema": {
"groups": [
{
"name": "Actual Budget Configuration",
"description": "Configure Actual Budget"
},
{
"name": "User and Group Configuration",
"description": "Configure User and Group for Actual Budget"
},
{
"name": "Network Configuration",
"description": "Configure Network for Actual Budget"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Actual Budget"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Actual Budget"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Actual Budget"
}
],
"questions": [
{
"variable": "actual_budget",
"label": "",
"group": "Actual Budget Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "additional_envs",
"label": "Additional Environment Variables",
"description": "Configure additional environment variables for Actual Budget.",
"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 Actual Budget files will be owned by.",
"schema": {
"type": "int",
"min": 568,
"default": 568,
"required": true
}
},
{
"variable": "group",
"label": "Group ID",
"description": "The group id that Actual Budget 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": 31012,
"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": "certificate_id",
"label": "Certificate",
"description": "The certificate to use for Portainer.",
"schema": {
"type": "int",
"null": true,
"$ref": [
"definitions/certificate"
]
}
}
]
}
},
{
"variable": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "data",
"label": "Actual Budget Data Storage",
"description": "The path to store Actual Budget 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": []
}
}
]
}
},
{
"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": "actual-budget",
"description": "actual-budget"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Actual Budget.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Actual Budget.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Actual Budget</h1> <p><a href=\"https://actualbudget.org/\">Actual Budget</a> is a super fast and privacy-focused app for managing your finances.</p>",
"changelog": null,
"chart_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "25.8.0",
"capabilities": [],
"categories": [
"financial"
],
"changelog_url": "https://actualbudget.org/docs/releases",
"date_added": "2024-08-06",
"description": "Actual Budget is a super fast and privacy-focused app for managing your finances.",
"home": "https://actualbudget.org",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/actual-budget/icons/icon.png",
"keywords": [
"finance",
"budget"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "actual-budget",
"run_as_context": [
{
"description": "Actual Budget runs as any non-root user.",
"gid": 568,
"group_name": "actual",
"uid": 568,
"user_name": "actual"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/actual-budget/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/actual-budget/screenshots/screenshot2.png",
"https://media.sys.truenas.net/apps/actual-budget/screenshots/screenshot3.png"
],
"sources": [
"https://github.com/actualbudget/actual-server",
"https://hub.docker.com/r/actualbudget/actual-server"
],
"title": "Actual Budget",
"train": "community",
"version": "1.3.11"
}
}
}
AdGuard Home

Get Started with Apps!
App Version: v0.107.65 (Changelog)
Keywords: dns, adblock
Train: Community
Home Page: https://github.com/AdguardTeam/AdGuardHome
Added: 2024-06-20
Last Updated: 2025-09-02
Free and open source, powerful network-wide ads & trackers blocking DNS server.
Run as Context- AdGuard Home runs as root user.
Group: 0 / root
User: 0 / root


Security Capabilities
- Adguard is able to change file ownership arbitrarily
- Adguard is able to bypass file permission checks
- Adguard is able to bypass permission checks for file operations
- Adguard is able to bind to privileged ports (< 1024)
- Adguard is able to use raw and packet sockets
App Metadata (Raw File)
{
"1.2.9": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/community/adguard-home/1.2.9",
"last_update": "2025-09-02 11:33:24",
"required_features": [],
"human_version": "v0.107.65_1.2.9",
"version": "1.2.9",
"app_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "v0.107.65",
"capabilities": [
{
"description": "Adguard is able to change file ownership arbitrarily",
"name": "CHOWN"
},
{
"description": "Adguard is able to bypass file permission checks",
"name": "DAC_OVERRIDE"
},
{
"description": "Adguard is able to bypass permission checks for file operations",
"name": "FOWNER"
},
{
"description": "Adguard is able to bind to privileged ports (< 1024)",
"name": "NET_BIND_SERVICE"
},
{
"description": "Adguard is able to use raw and packet sockets",
"name": "NET_RAW"
}
],
"categories": [
"networking"
],
"changelog_url": "https://github.com/AdguardTeam/AdGuardHome/releases",
"date_added": "2024-06-20",
"description": "Free and open source, powerful network-wide ads & trackers blocking DNS server.",
"home": "https://github.com/AdguardTeam/AdGuardHome",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/adguard-home/icons/icon.svg",
"keywords": [
"dns",
"adblock"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "adguard-home",
"run_as_context": [
{
"description": "AdGuard Home runs as root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/adguard-home/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/adguard-home/screenshots/screenshot2.png"
],
"sources": [
"https://github.com/AdguardTeam/AdGuardHome",
"https://hub.docker.com/r/adguard/adguardhome"
],
"title": "AdGuard Home",
"train": "community",
"version": "1.2.9"
},
"schema": {
"groups": [
{
"name": "AdGuard Home Configuration",
"description": "Configure AdGuard Home"
},
{
"name": "Network Configuration",
"description": "Configure Network for AdGuard Home"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for AdGuard Home"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for AdGuard Home"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for AdGuard Home"
}
],
"questions": [
{
"variable": "adguard",
"label": "",
"group": "AdGuard Home Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "use_https_probe",
"label": "Use HTTPS Probe",
"description": "Use HTTPS probe for AdGuard Home.</br>\nOnly enable this after you have configured HTTPS\nin the AdGuard Home web UI.\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "https_port_to_probe",
"label": "HTTPS Port to Probe",
"description": "The port to probe for HTTPS.</br>\nOnly enable this after you have configured HTTPS\nin the AdGuard Home web UI.</br>\nNote that usually this port is different from the WebUI port.\n",
"schema": {
"type": "int",
"default": 30004,
"required": true,
"show_if": [
[
"use_https_probe",
"=",
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",
"default": 30004,
"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": "dns_port",
"label": "DNS 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": 53,
"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",
"show_if": [
[
"dhcp_enabled",
"=",
false
]
],
"default": false
}
},
{
"variable": "dhcp_enabled",
"label": "DHCP Enabled",
"description": "Enable DHCP for the network.</br>\nThis will automatically enable host network.\n",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "additional_ports",
"label": "Additional Ports",
"schema": {
"type": "list",
"show_if": [
[
"host_network",
"=",
false
]
],
"items": [
{
"variable": "port",
"label": "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",
"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"
}
]
}
},
{
"variable": "port_number",
"label": "Port Number",
"schema": {
"type": "int",
"min": 1,
"max": 65535,
"required": true
}
},
{
"variable": "container_port",
"label": "Container Port",
"schema": {
"type": "int",
"min": 1,
"max": 65535,
"required": true
}
},
{
"variable": "protocol",
"label": "Protocol",
"schema": {
"type": "string",
"required": true,
"default": "tcp",
"enum": [
{
"value": "tcp",
"description": "TCP"
},
{
"value": "udp",
"description": "UDP"
}
]
}
},
{
"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": "config",
"label": "AdGuard Home Config Storage",
"description": "The path to store AdGuard Home 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": "work",
"label": "AdGuard Home WorkDir Storage",
"description": "The path to store AdGuard Home WorkDir.",
"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": "work"
}
},
{
"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": "adguard",
"description": "adguard"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"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 Adguard Home.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Adguard Home.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>AdGuard Home</h1> <p><a href=\"https://github.com/AdguardTeam/AdGuardHome\">AdGuard Home</a> is a network-wide ads & trackers blocking DNS server</p> <p>During the setup wizard, AdGuard Home presents an option to select on which port the web interface will be available. (Defaults to 80. Which is a privileged port and also usually the TrueNAS SCALE UI uses that port) Because of that, App will force the webUI to listen to port 30000 (or the port selected by user in the TrueNAS SCALE UI).</p> <p>If you select a different port in the wizard, the Dashboard will not work initially but after a couple of minutes container will automatically restart and the Dashboard will be available on the port you selected on the TrueNAS SCALE UI.</p>",
"changelog": null,
"chart_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "v0.107.65",
"capabilities": [
{
"description": "Adguard is able to change file ownership arbitrarily",
"name": "CHOWN"
},
{
"description": "Adguard is able to bypass file permission checks",
"name": "DAC_OVERRIDE"
},
{
"description": "Adguard is able to bypass permission checks for file operations",
"name": "FOWNER"
},
{
"description": "Adguard is able to bind to privileged ports (< 1024)",
"name": "NET_BIND_SERVICE"
},
{
"description": "Adguard is able to use raw and packet sockets",
"name": "NET_RAW"
}
],
"categories": [
"networking"
],
"changelog_url": "https://github.com/AdguardTeam/AdGuardHome/releases",
"date_added": "2024-06-20",
"description": "Free and open source, powerful network-wide ads & trackers blocking DNS server.",
"home": "https://github.com/AdguardTeam/AdGuardHome",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/adguard-home/icons/icon.svg",
"keywords": [
"dns",
"adblock"
],
"lib_version": "2.1.49",
"lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "adguard-home",
"run_as_context": [
{
"description": "AdGuard Home runs as root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/adguard-home/screenshots/screenshot1.png",
"https://media.sys.truenas.net/apps/adguard-home/screenshots/screenshot2.png"
],
"sources": [
"https://github.com/AdguardTeam/AdGuardHome",
"https://hub.docker.com/r/adguard/adguardhome"
],
"title": "AdGuard Home",
"train": "community",
"version": "1.2.9"
}
}
}
App Storage
Applications in TrueNAS make use of a variety of dataset types for app storage.
The ix-apps dataset is the base-level storage volume for app data. Additionally, configuration options for individual apps include one or more of the following storage types: ixVolume datasets, host path datasets, SMB share volumes, and Tmpfs. Each dataset type has unique characteristics and considerations.
If an application requires specific host path datasets, create the datasets before installing the application. For example, the Nextcloud app requires three datasets: html for app data, data for user data, and postgres_data for the database data storage volume. Create these datasets before installing the app. See individual app information screens and app tutorials for more information.
App Support Definitions
TrueNAS offers three distinct classes of support for applications, each tailored to provide varying levels of assistance depending on the specific needs and requirements.
This policy outlines the support structure for applications on TrueNAS.
Users should review these definitions carefully and consult with their support channels if they have specific questions about the level of support applicable to their applications.
Community Support
Definition: Applications classified under this tier receive no formal support from TrueNAS official support channels.
Asigra DS-System

Get Started with Apps!
App Version: 14.2.0.9
Keywords: backup, restore, asigra
Train: Enterprise
Home Page: https://hub.docker.com/r/asigra/ds-system
Added: 2024-10-25
Last Updated: 2025-09-02
DS-System software enables you to offer a robust, scalable service to multiple customers. Ease of use comes from the agentless architecture: customers only need to install the DS-Client on one LAN computer, thereby eliminating the need to install software on each target backup / restore computer
Asigra DS-System Deployment Notes
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.
Audiobookshelf
Audiobookshelf
Get Started with Apps!Requires TrueNAS: 24.10.2.2 or newer
App Version: 2.29.0 (Changelog)
Keywords: media, audiobook
Train: Community
Home Page: https://www.audiobookshelf.org/Audiobookshelf Details
Added: 2024-08-02
Last Updated: 2025-09-02Audiobookshelf is a self-hosted audiobook and podcast server
Run as Context
- Audiobookshelf runs as any non-root user.
Group: 568 / audiobookshelf
User: 568 / audiobookshelfScreenshots![]()
![]()
×App Metadata (Raw File)
{ "1.4.12": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/community/audiobookshelf/1.4.12", "last_update": "2025-09-02 11:33:24", "required_features": [], "human_version": "2.29.0_1.4.12", "version": "1.4.12", "app_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "2.29.0", "capabilities": [], "categories": [ "media" ], "changelog_url": "https://github.com/advplyr/audiobookshelf/releases", "date_added": "2024-08-02", "description": "Audiobookshelf is a self-hosted audiobook and podcast server", "home": "https://www.audiobookshelf.org/", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/audiobookshelf/icons/icon.svg", "keywords": [ "media", "audiobook" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "audiobookshelf", "run_as_context": [ { "description": "Audiobookshelf runs as any non-root user.", "gid": 568, "group_name": "audiobookshelf", "uid": 568, "user_name": "audiobookshelf" } ], "screenshots": [ "https://media.sys.truenas.net/apps/audiobookshelf/screenshots/screenshot1.png", "https://media.sys.truenas.net/apps/audiobookshelf/screenshots/screenshot2.png", "https://media.sys.truenas.net/apps/audiobookshelf/screenshots/screenshot3.png", "https://media.sys.truenas.net/apps/audiobookshelf/screenshots/screenshot4.jpg" ], "sources": [ "https://ghcr.io/advplyr/audiobookshelf", "https://github.com/advplyr/audiobookshelf" ], "title": "Audiobookshelf", "train": "community", "version": "1.4.12" }, "schema": { "groups": [ { "name": "Audiobookshelf Configuration", "description": "Configure Audiobookshelf" }, { "name": "User and Group Configuration", "description": "Configure User and Group for Audiobookshelf" }, { "name": "Network Configuration", "description": "Configure Network for Audiobookshelf" }, { "name": "Storage Configuration", "description": "Configure Storage for Audiobookshelf" }, { "name": "Labels Configuration", "description": "Configure Labels for Audiobookshelf" }, { "name": "Resources Configuration", "description": "Configure Resources for Audiobookshelf" } ], "questions": [ { "variable": "TZ", "group": "Audiobookshelf Configuration", "label": "Timezone", "schema": { "type": "string", "default": "Etc/UTC", "required": true, "$ref": [ "definitions/timezone" ] } }, { "variable": "audiobookshelf", "label": "", "group": "Audiobookshelf Configuration", "schema": { "type": "dict", "attrs": [ { "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 Audiobookshelf files will be owned by.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } }, { "variable": "group", "label": "Group ID", "description": "The group id that Audiobookshelf 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": 30067, "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": "Audiobookshelf Config Storage", "description": "The path to store Audiobookshelf 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": "metadata", "label": "Audiobookshelf Metadata Storage", "description": "The path to store Audiobookshelf Metadata.", "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": "metadata" } }, { "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": "audiobookshelf", "description": "audiobookshelf" } ] } } ] } } ] } } ] } }, { "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 Audiobookshelf.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for Audiobookshelf.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "<h1>Audiobookshelf</h1> <p><a href=\"https://www.audiobookshelf.org/\">Audiobookshelf</a> is a self-hosted audiobook and podcast server.</p>", "changelog": null, "chart_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "2.29.0", "capabilities": [], "categories": [ "media" ], "changelog_url": "https://github.com/advplyr/audiobookshelf/releases", "date_added": "2024-08-02", "description": "Audiobookshelf is a self-hosted audiobook and podcast server", "home": "https://www.audiobookshelf.org/", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/audiobookshelf/icons/icon.svg", "keywords": [ "media", "audiobook" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "audiobookshelf", "run_as_context": [ { "description": "Audiobookshelf runs as any non-root user.", "gid": 568, "group_name": "audiobookshelf", "uid": 568, "user_name": "audiobookshelf" } ], "screenshots": [ "https://media.sys.truenas.net/apps/audiobookshelf/screenshots/screenshot1.png", "https://media.sys.truenas.net/apps/audiobookshelf/screenshots/screenshot2.png", "https://media.sys.truenas.net/apps/audiobookshelf/screenshots/screenshot3.png", "https://media.sys.truenas.net/apps/audiobookshelf/screenshots/screenshot4.jpg" ], "sources": [ "https://ghcr.io/advplyr/audiobookshelf", "https://github.com/advplyr/audiobookshelf" ], "title": "Audiobookshelf", "train": "community", "version": "1.4.12" } } }
Autobrr
Autobrr
Get Started with Apps!Requires TrueNAS: 24.10.2.2 or newer
App Version: v1.65.0 (Changelog)
Keywords: media, torrent, usenet
Train: Community
Home Page: https://github.com/autobrr/autobrrAutobrr Details
Added: 2024-08-01
Last Updated: 2025-09-02Autobrr is the modern download automation tool for torrents and usenet.
Run as Context
- Autobrr runs as any non-root user.
Group: 568 / autobrr
User: 568 / autobrr×App Metadata (Raw File)
{ "1.3.10": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/community/autobrr/1.3.10", "last_update": "2025-09-02 11:33:24", "required_features": [], "human_version": "v1.65.0_1.3.10", "version": "1.3.10", "app_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "v1.65.0", "capabilities": [], "categories": [ "media" ], "changelog_url": "https://github.com/autobrr/autobrr/releases", "date_added": "2024-08-01", "description": "Autobrr is the modern download automation tool for torrents and usenet.", "home": "https://github.com/autobrr/autobrr", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/autobrr/icons/icon.png", "keywords": [ "media", "torrent", "usenet" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "autobrr", "run_as_context": [ { "description": "Autobrr runs as any non-root user.", "gid": 568, "group_name": "autobrr", "uid": 568, "user_name": "autobrr" } ], "screenshots": [], "sources": [ "https://autobrr.com/installation/docker", "https://github.com/autobrr/autobrr" ], "title": "Autobrr", "train": "community", "version": "1.3.10" }, "schema": { "groups": [ { "name": "Autobrr Configuration", "description": "Configure Autobrr" }, { "name": "User and Group Configuration", "description": "Configure User and Group for Autobrr" }, { "name": "Network Configuration", "description": "Configure Network for Autobrr" }, { "name": "Storage Configuration", "description": "Configure Storage for Autobrr" }, { "name": "Labels Configuration", "description": "Configure Labels for Autobrr" }, { "name": "Resources Configuration", "description": "Configure Resources for Autobrr" } ], "questions": [ { "variable": "TZ", "group": "Autobrr Configuration", "label": "Timezone", "schema": { "type": "string", "default": "Etc/UTC", "required": true, "$ref": [ "definitions/timezone" ] } }, { "variable": "autobrr", "label": "", "group": "Autobrr Configuration", "schema": { "type": "dict", "attrs": [ { "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 Autobrr files will be owned by.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } }, { "variable": "group", "label": "Group ID", "description": "The group id that Autobrr 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": 30016, "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": "Autobrr Config Storage", "description": "The path to store Autobrr 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": "metadata", "label": "Autobrr Metadata Storage", "description": "The path to store Autobrr Metadata.", "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": "metadata" } }, { "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": "autobrr", "description": "autobrr" } ] } } ] } } ] } } ] } }, { "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 Autobrr.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for Autobrr.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "<h1>Autobrr</h1> <p><a href=\"https://github.com/autobrr/autobrr\">Autobrr</a> is the modern download automation tool for torrents and usenet.</p>", "changelog": null, "chart_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "v1.65.0", "capabilities": [], "categories": [ "media" ], "changelog_url": "https://github.com/autobrr/autobrr/releases", "date_added": "2024-08-01", "description": "Autobrr is the modern download automation tool for torrents and usenet.", "home": "https://github.com/autobrr/autobrr", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/autobrr/icons/icon.png", "keywords": [ "media", "torrent", "usenet" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "autobrr", "run_as_context": [ { "description": "Autobrr runs as any non-root user.", "gid": 568, "group_name": "autobrr", "uid": 568, "user_name": "autobrr" } ], "screenshots": [], "sources": [ "https://autobrr.com/installation/docker", "https://github.com/autobrr/autobrr" ], "title": "Autobrr", "train": "community", "version": "1.3.10" } } }
Bazarr
Bazarr
Get Started with Apps!Requires TrueNAS: 24.10.2.2 or newer
App Version: 1.5.2 (Changelog)
Keywords: media, subtitles
Train: Community
Home Page: https://www.bazarr.mediaBazarr Details
Added: 2024-07-31
Last Updated: 2025-09-02Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.
Run as Context
- Bazarr runs as any non-root user.
Group: 568 / bazarr
User: 568 / bazarrScreenshots
×App Metadata (Raw File)
{ "1.2.6": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/community/bazarr/1.2.6", "last_update": "2025-09-02 11:33:24", "required_features": [], "human_version": "1.5.2_1.2.6", "version": "1.2.6", "app_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "1.5.2", "capabilities": [], "categories": [ "media" ], "changelog_url": "https://github.com/morpheus65535/bazarr/releases", "date_added": "2024-07-31", "description": "Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.", "home": "https://www.bazarr.media", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/bazarr/icons/icon.png", "keywords": [ "media", "subtitles" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "bazarr", "run_as_context": [ { "description": "Bazarr runs as any non-root user.", "gid": 568, "group_name": "bazarr", "uid": 568, "user_name": "bazarr" } ], "screenshots": [ "https://media.sys.truenas.net/apps/bazarr/screenshots/screenshot1.png", "https://media.sys.truenas.net/apps/bazarr/screenshots/screenshot2.png" ], "sources": [ "https://github.com/home-operations/containers/tree/main/apps/bazarr", "https://github.com/morpheus65535/bazarr" ], "title": "Bazarr", "train": "community", "version": "1.2.6" }, "schema": { "groups": [ { "name": "Bazarr Configuration", "description": "Configure Bazarr" }, { "name": "User and Group Configuration", "description": "Configure User and Group for Bazarr" }, { "name": "Network Configuration", "description": "Configure Network for Bazarr" }, { "name": "Storage Configuration", "description": "Configure Storage for Bazarr" }, { "name": "Labels Configuration", "description": "Configure Labels for Bazarr" }, { "name": "Resources Configuration", "description": "Configure Resources for Bazarr" } ], "questions": [ { "variable": "TZ", "group": "Bazarr Configuration", "label": "Timezone", "schema": { "type": "string", "default": "Etc/UTC", "required": true, "$ref": [ "definitions/timezone" ] } }, { "variable": "bazarr", "label": "", "group": "Bazarr Configuration", "schema": { "type": "dict", "attrs": [ { "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 Bazarr files will be owned by.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } }, { "variable": "group", "label": "Group ID", "description": "The group id that Bazarr 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": 30046, "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": "Bazarr Config Storage", "description": "The path to store Bazarr 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": "bazarr", "description": "bazarr" } ] } } ] } } ] } } ] } }, { "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 Bazarr.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for Bazarr.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "<h1>Bazarr</h1> <p><a href=\"https://www.bazarr.media/\">Bazarr</a> is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.</p>", "changelog": null, "chart_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "1.5.2", "capabilities": [], "categories": [ "media" ], "changelog_url": "https://github.com/morpheus65535/bazarr/releases", "date_added": "2024-07-31", "description": "Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.", "home": "https://www.bazarr.media", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/bazarr/icons/icon.png", "keywords": [ "media", "subtitles" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "bazarr", "run_as_context": [ { "description": "Bazarr runs as any non-root user.", "gid": 568, "group_name": "bazarr", "uid": 568, "user_name": "bazarr" } ], "screenshots": [ "https://media.sys.truenas.net/apps/bazarr/screenshots/screenshot1.png", "https://media.sys.truenas.net/apps/bazarr/screenshots/screenshot2.png" ], "sources": [ "https://github.com/home-operations/containers/tree/main/apps/bazarr", "https://github.com/morpheus65535/bazarr" ], "title": "Bazarr", "train": "community", "version": "1.2.6" } } }