Appearance
Turbo Play
Turbo Play serves two main functions:
- A graphical UI wrapper around turbo.exe commands, providing a user-friendly interface for launching and managing Turbo applications
- An RDP-based streaming client that enables users to connect to remote application servers and stream Turbo applications
Local Application Launching
When used locally, Turbo Play provides a graphical interface for turbo.exe commands instead of using the command prompt:
> turboplay turbo run --format=rpc my-image
Users can also pass a text file containing a turbo command:
> turboplay turbo C:\Users\[user]\AppData\Local\Turbo\Containers\shortcuts\My App.txt
Launch Options
--quiet Hide all graphical user interfaces until the application launches
--start-progress-ui-immediately Shows the status dialog immediately before any events are detected from the underlying Turbo.exe
--wait-for-window Status dialog remains until the application's main UI shows
--delete-cmd-file Deletes the cmd file if specified immediately after reading it
--app-title Sets the title of the status dialog
--debug-vm Overrides the path to the vm
--log Specifies location of log file
--startup-file Passes through startup file to turbo.exe
--startup-verb Passes through startup verb to turbo.exe
--isolate Passes through isolation setting to turbo.exe
--merge-file Passes through merge file setting to turbo.exe
Note:
- Turbo CLI flag
--wait-after-(error|exit)
is ignored as it requires input that cannot be provided through the UI --format=rcp
is automatically added to parse output--show-eula-for-rpc
is automatically added to display EULAs in a window if they exist
Application Streaming
Turbo Play can connect to remote application servers to stream Turbo applications using RDP. This is handled through either the Turbo URI scheme or direct RDP connection.
Turbo URI Scheme
The Turbo protocol directs Turbo Play to either:
- Execute a local application
- Connect to a remote application server for streaming
turbo://{portalAuthority}/{configPath}?t={type}&h={hash}&v={version}
portalAuthority domain which must be trusted by the user from which the configuration comes from
path path of the service, typically 'config'
type config for launching a local application or remoteAppConfig for connecting to a remote application
hash hash of the configuration, to ensure its contents are not tampered with
version currently at 1
Local Configuration Example
turbo://turbo.net/config?t=config&h=sha256:e28dd1863f82e6b2f46303311540ae194045a58756cd1c4fbbbc4c778021bc84&v=1
The json format for local configuration:
{
"id":"2b68b3de-51e2-4a60-b822-bd810a55146f",
"repoId":"mozilla/firefox",
"appTitle":"Firefox",
"verb":"try",
"isolation":"full",
"isolateNetwork":false,
"routes":[],
"redirectedDomains":[],
"adGroupPermissions":[],
"startupFile":"",
"vm":"",
"layers":[],
"using":[],
"sync":false,
"tnlr":false,
"enableRemoteCommands":true,
"v":"1"
}
Remote Configuration Example
turbo://turbo.net/config?t=remoteAppConfig&h=sha256:51d021ef9da4ee6c7910a4d5f19325fba77888ba94255ab67e0e4c0d8053fa6d&v=1
The json format for remote configuration:
{
"v":1,
"sessionId":"e3e9df43-8f1e-4b0c-a371-8080b67cbc66",
"host":"192.0.2.1",
"auth":{
"user":"randomWindowsUser",
"password":"randomWindowsPassword"
},
"app":"turboplay",
"args":"turbourl turbo://config.to/run"
}
Direct RDP Connection
Turbo Play can connect directly to a remote desktop to execute commands:
> turboplay rdp --rdp-host=<hostname> --rdp-program=<remoteAppProgram> --rdp-user=<rdpUsername> --rdp-password=<rdpPassword>
Required parameters:
--rdp-host=<hostname>
Optional parameters:
--rdp-domain=<logon user's domain>
--rdp-user=<logon user>
--rdp-password=<logon password>
--rdp-program=<program to run, defaults to cmd.exe>
--rdp-cmd=<remoteapp cmdline args>
--rdp-port=<rdp port, default 3389>
Legacy Support
Turbo Play maintains support for legacy applications through config and model URLs:
/config The URL to an application configuration to execute
/model The UNC path to a streaming model to execute
/xsandboxname
/xsandboxpath The path to the app sandbox (required with the /model flag)
/register
/cachemode The local path where the fully streamed application is to be cached (only valid with the /model flag and is required)
/clientconfig
/xvm