{ "1.3.8": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/community/tailscale/1.3.8", "last_update": "2025-09-02 11:33:24", "required_features": [], "human_version": "v1.86.5_1.3.8", "version": "1.3.8", "app_metadata": { "app_version": "v1.86.5", "capabilities": [ { "description": "Tailscale is able to change file ownership arbitrarily", "name": "CHOWN" }, { "description": "Tailscale is able to bypass file permission checks", "name": "DAC_OVERRIDE" }, { "description": "Tailscale is able to bypass permission checks for file operations", "name": "FOWNER" }, { "description": "Tailscale is able to perform network administration tasks", "name": "NET_ADMIN" }, { "description": "Tailscale is able to use raw and packet sockets", "name": "NET_RAW" }, { "description": "Tailscale is able to load and unload kernel modules", "name": "SYS_MODULE" } ], "categories": [ "networking" ], "changelog_url": "https://tailscale.com/changelog#client", "date_added": "2024-07-30", "description": "Secure remote access to shared resources", "home": "https://tailscale.com/", "host_mounts": [ { "description": "Network device", "host_path": "/dev/net/tun" } ], "icon": "https://media.sys.truenas.net/apps/tailscale/icons/icon.png", "keywords": [ "vpn", "tailscale" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "tailscale", "run_as_context": [ { "description": "Tailscale runs as a root user.", "gid": 0, "group_name": "root", "uid": 0, "user_name": "root" } ], "screenshots": [], "sources": [ "https://tailscale.com/", "https://hub.docker.com/r/tailscale/tailscale" ], "title": "Tailscale", "train": "community", "version": "1.3.8" }, "schema": { "groups": [ { "name": "Tailscale Configuration", "description": "Configure Tailscale" }, { "name": "Network Configuration", "description": "Configure Network for Tailscale" }, { "name": "Storage Configuration", "description": "Configure Storage for Tailscale" }, { "name": "Labels Configuration", "description": "Configure Labels for Tailscale" }, { "name": "Resources Configuration", "description": "Configure Resources for Tailscale" } ], "questions": [ { "variable": "TZ", "label": "Timezone", "description": "Timezone", "group": "Tailscale Configuration", "schema": { "type": "string", "default": "Etc/UTC", "$ref": [ "definitions/timezone" ] } }, { "variable": "tailscale", "label": "", "group": "Tailscale Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "hostname", "label": "Hostname", "description": "The hostname for Tailscale Node.
\nOnly lowercase letters, numbers, and hyphens are allowed.
\nSame as `--hostname` flag.\n", "schema": { "type": "string", "default": "truenas-scale", "valid_chars": "^[a-z0-9-]+$", "valid_chars_error": "Only lowercase letters, numbers, and hyphens are allowed.\n", "required": true } }, { "variable": "auth_key", "label": "Auth Key", "description": "The auth key for Tailscale Node.
\nSame as `--authkey` flag.
\nTo generate one: https://login.tailscale.com/admin/settings/keys\n", "schema": { "type": "string", "default": "", "required": true, "private": true } }, { "variable": "auth_once", "label": "Auth Once", "description": "Attempt to log in only if not already logged in.", "schema": { "type": "boolean", "default": true } }, { "variable": "reset", "label": "Reset", "description": "Reset unspecified settings to default values.
\nSame as `--reset` flag.\n", "schema": { "type": "boolean", "default": false } }, { "variable": "accept_dns", "label": "Accept DNS", "description": "Accept DNS
\nSame as `--accept-dns` flag.\n", "schema": { "type": "boolean", "default": false } }, { "variable": "userspace", "label": "Userspace", "description": "Run Tailscale in userspace
\nSame as `--userspace` flag.\n", "schema": { "type": "boolean", "default": false } }, { "variable": "advertise_exit_node", "label": "Advertise Exit Node", "description": "Advertise exit node
\nSame as `--advertise-exit-node` flag.
\nNeeds enabled IP forwarding on the host via System > Advanced Settings > Sysctls.
\nPlease make sure you read and understand the warnings displayed when adding Sysctls
\nSee also https://tailscale.com/kb/1019/subnets?tab=linux#enable-ip-forwarding\n", "schema": { "type": "boolean", "default": false } }, { "variable": "advertise_routes", "label": "Advertise Routes", "description": "Advertise routes
\nSame as `--advertise-routes` flag.
\nNeeds enabled IP forwarding on the host via System > Advanced Settings > Sysctls.
\nPlease make sure you read and understand the warnings displayed when adding Sysctls
\nSee also https://tailscale.com/kb/1019/subnets?tab=linux#enable-ip-forwarding\n", "schema": { "type": "list", "default": [], "items": [ { "variable": "route", "label": "Route", "schema": { "type": "string", "required": true } } ] } }, { "variable": "extra_args", "label": "Extra Arguments", "description": "Extra arguments
\nFlags to pass to tailscale CLI in a tailscale set command.\n", "schema": { "type": "list", "default": [], "items": [ { "variable": "arg", "label": "Argument", "schema": { "type": "string", "required": true } } ] } }, { "variable": "tailscaled_args", "label": "Tailscale Daemon Arguments", "description": "Tailscaled arguments
\nFlags to pass to the tailscaled daemon.\n", "schema": { "type": "list", "default": [], "items": [ { "variable": "arg", "label": "Argument", "schema": { "type": "string", "required": true } } ] } }, { "variable": "additional_envs", "label": "Additional Environment Variables", "schema": { "type": "list", "default": [], "items": [ { "variable": "env", "label": "Environment Variable", "schema": { "type": "dict", "attrs": [ { "variable": "name", "label": "Name", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string" } } ] } } ] } } ] } }, { "variable": "network", "label": "", "group": "Network Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "host_network", "label": "Host Network", "description": "Bind to the host network.
\nNeeded in most cases in order to communicate with the host.\n", "schema": { "type": "boolean", "default": true } } ] } }, { "variable": "storage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "state", "label": "Tailscale State Storage", "description": "The path to store Tailscale State.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\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": "state" } }, { "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.
\nHost Path: Is a path that already exists on the system.
\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": "tailscale", "description": "tailscale" } ] } } ] } } ] } } ] } }, { "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 Tailscale.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for Tailscale.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "

Tailscale

Tailscale Secure remote access to shared resources

", "changelog": null, "chart_metadata": { "app_version": "v1.86.5", "capabilities": [ { "description": "Tailscale is able to change file ownership arbitrarily", "name": "CHOWN" }, { "description": "Tailscale is able to bypass file permission checks", "name": "DAC_OVERRIDE" }, { "description": "Tailscale is able to bypass permission checks for file operations", "name": "FOWNER" }, { "description": "Tailscale is able to perform network administration tasks", "name": "NET_ADMIN" }, { "description": "Tailscale is able to use raw and packet sockets", "name": "NET_RAW" }, { "description": "Tailscale is able to load and unload kernel modules", "name": "SYS_MODULE" } ], "categories": [ "networking" ], "changelog_url": "https://tailscale.com/changelog#client", "date_added": "2024-07-30", "description": "Secure remote access to shared resources", "home": "https://tailscale.com/", "host_mounts": [ { "description": "Network device", "host_path": "/dev/net/tun" } ], "icon": "https://media.sys.truenas.net/apps/tailscale/icons/icon.png", "keywords": [ "vpn", "tailscale" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "tailscale", "run_as_context": [ { "description": "Tailscale runs as a root user.", "gid": 0, "group_name": "root", "uid": 0, "user_name": "root" } ], "screenshots": [], "sources": [ "https://tailscale.com/", "https://hub.docker.com/r/tailscale/tailscale" ], "title": "Tailscale", "train": "community", "version": "1.3.8" } } }