{ "1.2.6": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/apps/apps/trains/community/rust-desk/1.2.6", "last_update": "2025-09-02 11:33:24", "required_features": [], "human_version": "1.1.14_1.2.6", "version": "1.2.6", "app_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "1.1.14", "capabilities": [], "categories": [ "productivity" ], "changelog_url": "https://github.com/rustdesk/rustdesk-server/releases", "date_added": "2024-09-13", "description": "Rust Desk is an open-source remote desktop, and alternative to TeamViewer.", "home": "https://rustdesk.com", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/rust-desk/icons/icon.png", "keywords": [ "remote", "desktop" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "rust-desk", "run_as_context": [ { "description": "Rust Desk runs as any non-root user.", "gid": 568, "group_name": "rust-desk", "uid": 568, "user_name": "rust-desk" } ], "screenshots": [], "sources": [ "https://hub.docker.com/r/rustdesk/rustdesk-server", "https://github.com/rustdesk/rustdesk-server" ], "title": "Rust Desk", "train": "community", "version": "1.2.6" }, "schema": { "groups": [ { "name": "Rust Desk Configuration", "description": "Configure Rust Desk" }, { "name": "User and Group Configuration", "description": "Configure User and Group for Rust Desk" }, { "name": "Network Configuration", "description": "Configure Network for Rust Desk" }, { "name": "Storage Configuration", "description": "Configure Storage for Rust Desk" }, { "name": "Labels Configuration", "description": "Configure Labels for Rust Desk" }, { "name": "Resources Configuration", "description": "Configure Resources for Rust Desk" } ], "questions": [ { "variable": "rust_desk", "label": "", "group": "Rust Desk Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "allow_only_encrypted_connections", "label": "Allow Only Encrypted Connections", "description": "Allow only encrypted connections.
\nClients have to use the generated key to connect to the server.\n", "schema": { "type": "boolean", "default": false } }, { "variable": "additional_relay_servers", "label": "Additional Relay Servers", "description": "Configure additional relay servers for Rust Desk.
\nThe internal relay server will be added automatically.
\nFormat:
host:port\n", "schema": { "type": "list", "default": [], "items": [ { "variable": "server", "label": "Server", "schema": { "type": "string", "default": "", "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 Rust Desk files will be owned by.", "schema": { "type": "int", "min": 568, "default": 568, "required": true } }, { "variable": "group", "label": "Group ID", "description": "The group id that Rust Desk 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": "nat_type_test_port", "label": "NAT Type Test Port", "description": "The port to use for NAT type test.
\nInternal port will always be 21115\n", "schema": { "type": "dict", "show_if": [ [ "host_network", "=", false ] ], "attrs": [ { "variable": "bind_mode", "label": "Port Bind Mode", "description": "The port bind mode.
\n- Publish: The port will be published on the host for external access.
\n- Expose: The port will be exposed for inter-container communication.
\n- None: The port will not be exposed or published.
\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": 21115, "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": "id_reg_hole_punch_port", "label": "ID Registration and Hole Punching Port", "description": "The port to use for ID registration and Hole punching.
\nInternal port will always be 21116 (TCP/UDP)\n", "schema": { "type": "dict", "show_if": [ [ "host_network", "=", false ] ], "attrs": [ { "variable": "bind_mode", "label": "Port Bind Mode", "description": "The port bind mode.
\n- Publish: The port will be published on the host for external access.
\n- Expose: The port will be exposed for inter-container communication.
\n- None: The port will not be exposed or published.
\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": 21116, "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": "relay_port", "label": "Relay Port", "description": "The port to use for relay.
\nInternal port will always be 21117\n", "schema": { "type": "dict", "show_if": [ [ "host_network", "=", false ] ], "attrs": [ { "variable": "bind_mode", "label": "Port Bind Mode", "description": "The port bind mode.
\n- Publish: The port will be published on the host for external access.
\n- Expose: The port will be exposed for inter-container communication.
\n- None: The port will not be exposed or published.
\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": 21117, "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": "server_web_clients_port", "label": "Server Web Clients Port", "description": "The port to use for server web clients.
\nInternal port will always be 21118\n", "schema": { "type": "dict", "show_if": [ [ "host_network", "=", false ] ], "attrs": [ { "variable": "bind_mode", "label": "Port Bind Mode", "description": "The port bind mode.
\n- Publish: The port will be published on the host for external access.
\n- Expose: The port will be exposed for inter-container communication.
\n- None: The port will not be exposed or published.
\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": 21118, "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": "relay_web_clients_port", "label": "Relay Web Clients Port", "description": "The port to use for relay web clients.
\nInternal port will always be 21119\n", "schema": { "type": "dict", "show_if": [ [ "host_network", "=", false ] ], "attrs": [ { "variable": "bind_mode", "label": "Port Bind Mode", "description": "The port bind mode.
\n- Publish: The port will be published on the host for external access.
\n- Expose: The port will be exposed for inter-container communication.
\n- None: The port will not be exposed or published.
\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": 21119, "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": "data", "label": "Rust Desk Data Storage", "description": "The path to store Rust Desk Data.", "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": "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.
\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": [], "$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": "rust-desk", "description": "rust-desk" }, { "value": "rust-desk-relay", "description": "rust-desk-relay" } ] } } ] } } ] } } ] } }, { "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 Rust Desk.", "schema": { "type": "int", "default": 2, "required": true } }, { "variable": "memory", "label": "Memory (in MB)", "description": "Memory limit for Rust Desk.", "schema": { "type": "int", "default": 4096, "required": true } } ] } } ] } } ] }, "readme": "

Rust Desk

Rust Desk is an open-source remote desktop, and alternative to TeamViewer.

", "changelog": null, "chart_metadata": { "annotations": { "min_scale_version": "24.10.2.2" }, "app_version": "1.1.14", "capabilities": [], "categories": [ "productivity" ], "changelog_url": "https://github.com/rustdesk/rustdesk-server/releases", "date_added": "2024-09-13", "description": "Rust Desk is an open-source remote desktop, and alternative to TeamViewer.", "home": "https://rustdesk.com", "host_mounts": [], "icon": "https://media.sys.truenas.net/apps/rust-desk/icons/icon.png", "keywords": [ "remote", "desktop" ], "lib_version": "2.1.49", "lib_version_hash": "e71e6b0122c9446fa5ea6fb07e7eb01b11fb42d549a19845426bbd7e21a42634", "maintainers": [ { "email": "dev@ixsystems.com", "name": "truenas", "url": "https://www.truenas.com/" } ], "name": "rust-desk", "run_as_context": [ { "description": "Rust Desk runs as any non-root user.", "gid": 568, "group_name": "rust-desk", "uid": 568, "user_name": "rust-desk" } ], "screenshots": [], "sources": [ "https://hub.docker.com/r/rustdesk/rustdesk-server", "https://github.com/rustdesk/rustdesk-server" ], "title": "Rust Desk", "train": "community", "version": "1.2.6" } } }