Usage

In this section we describe how to start and stop the Scyld Cloud Workstation service in either Linux or Windows on the remote server. We then talk about how to connect and interact with the remote desktop interface.

Using the Linux Service

To start, stop, or restart the scyld-cloud-workstation, open a terminal with root or sudo privileges and use the service command:

service scyld-cloud-workstation start
service scyld-cloud-workstation stop
service scyld-cloud-workstation restart

To run scyld-cloud-workstation directly rather than as a service (this is usually only useful for debugging purposes), use the scyld-cloud-workstation.sh start-up script. Usage information can be obtained by passing the --help flag.

usage: scyld-cloud-workstation OPTIONS
scyld-cloud-workstation -- a GPU accelerated remote desktop web service.

--daemon                                   Run application as a daemon.
--pidfile=path                             Write the process ID of the
                                           application to given file.
-h, --help                                 display help information on command
                                           line arguments
-vsvideosource, --videosource=videosource  choose videosource (nvfbc, stream)
-q, --quiet                                hide the console when running
-pwd, --passwd                             update the password

Using the Windows Service

To use the scyld-cloud-workstation service, we must verify that the service is registered with the OS and then start the service.

Open a Command Prompt as an Administrator

  1. Sign in as a user that is an Administrator.

  2. Click on the Windows Start menu.

  3. In the Search box, type Command Prompt, but don’t hit Enter just yet.

  4. Right-click on the Command Prompt and select Run as administrator.

Register the Windows Service

To register the windows service, use the scyld-cloud-workstation.exe command:

scyld-cloud-workstation.exe /registerService /startup=automatic

The scyld-cloud-workstation service will now automatically start on reboot.

Note

Service registration should already be handled by the installer. If you the message below, verify that scyld-cloud-workstation has been properly installed. This is usually a sign that the PATH environment variables are not pointing at the scyld-cloud-workstation.exe.

'scyld-cloud-workstation.exe' is not recognized as an internal or
 external command, operable program or batch file.

Start and Stop the Windows Service

To start and stop the registered windows service without rebooting, use the net command:

net start scyld-cloud-workstation
net stop scyld-cloud-workstation

Using the MacOS Service

To start, stop, restart or check the status of the scyld-cloud-workstation service, open a terminal and go to the /Applications/scyld-cloud-workstation.app/Contents/MacOS directory. Next, run the application with the --service flag with sudo privileges:

# Change to the application directory
cd /Applications/scyld-cloud-workstation.app/Contents/MacOS

# Start the service
sudo ./scyld-cloud-workstation --service start

# Stop the service
sudo ./scyld-cloud-workstation --service stop

# Restart the service
sudo ./scyld-cloud-workstation --service restart

# Check the status of the service
sudo ./scyld-cloud-workstation --service status

Manually running the MacOS audio server (advanced)

The Scyld Cloud Workstation audio server is usually launched after a user logs in to MacOS (assuming it has been added to Login Items for that user). If this is not the case, one alternative way to temporarily launch the audio server is to open a terminal and run these commands:

# Change to the application directory
cd /Applications/scyld-cloud-workstation.app/Contents/MacOS

# Start the audio server
./scyld-cloud-workstation --audio-server

Creating Config File credentials

OPTIONAL. In addition to OS credentials, you can setup a username and hashed password in the config file to sign in to Scyld Cloud Workstation. These Config File cedentials can sign into Scyld Cloud Workstation at any time. This differs from OS credentials, which can only sign into Scyld Cloud Workstation if the OS greeter screen or that user’s desktop is showing. Config File credentials are independent from LDAP, the remote operating system, and ScyldCloudAuth.

Config File credentials are only enabled if Server.Auth.Username and Server.Auth.ShadowPassword tags exist, are uncommented, and both have values.

To set the password, verify that the Server.Auth.Username and Server.Auth.ShadowPassword tags exist and are uncommented in the config file (i.e., surrounded by <!-- and -->). If the value of either tag is blank, the account is considered disabled.

If these tags do not already exist, insert both of them and set a value for Server.Auth.Username. For example:

<Server>
  ...
  <Auth>

    ...

    <Username>admin</Username>
    <ShadowPassword></ShadowPassword>

    ...

  </Auth>
  ...
</Server>

You can now set this password by opening a terminal, changing to the directory of the Scyld Cloud Workstation binary, and running scyld-cloud-workstation with an OS-specific passwd flag:

# Linux:
sudo scyld-cloud-workstation.sh --passwd

# Windows (as an Administrator):
scyld-cloud-workstation.exe /passwd

# MacOS:
sudo scyld-cloud-workstation --passwd

The password change takes effect immediately.

Password strength requirements are described in the Setup chapter under Server.Auth.ShadowPassword.

Important

This only changes the Server.Auth.ShadowPassword entry in the config file. It does not change the passwords used by the remote operating system, LDAP, or ScyldCloudAuth.

Log Output

Log output is organized by priority levels (from highest to lowest: Fatal, Critical, Error, Warning, Notice, Information, Debug, and Trace). scyld-cloud-workstation by default prints Information level messages to /var/log/messages.

Setting LogLevel to information will log all server starts/stops, sign-in attempts, socket connects/disconnects, video source plays/pauses, and additional warning/error messages. This is usually sufficient for production usage.

To see debug and higher level output, open the scyld-cloud-workstation.xml config file and set LogLevel to debug.

The most useful log files for Scyld Cloud Workstation can be found at these locations:

# Linux:
/opt/scyld-cloud-workstation/bin/scyld-cloud-workstation.log.

# Windows:
C:\Program Files\Penguin Computing\Scyld Cloud Workstation\log\scyld-cloud-workstation.log
C:\Program Files\Penguin Computing\Scyld Cloud Workstation\log\service.log.

# MacOS:
/var/log/com.penguincomputing.scyld-cloud-workstation/scyld-cloud-workstation.log

Note

You can change the path of the output by opening the scyld-cloud-workstation.xml config file and setting Server.LogFile to a new destination.

By default, Scyld Cloud Workstation displays a timestamp with each log message. To change the timestamp to all of your output, open the scyld-cloud-workstation.xml and set LogFormat. For more information, see: Server.LogFormat.

Selecting a Video Source and Max Frame Rate

Scyld Cloud Workstation currently supports these video sources: x11, nvfbc, stream, windda, and auto (default).

The x11 video source uses software encoding and only works for Linux systems. It supports a max frame rate of up to 60 fps.

The nvfbc video source is for Linux systems with an NVIDIA GPU and driver that support NVIDIA GRID or NVIDIA NvFBC. It supports a max frame rate of up to 60 fps.

The windda video source is optimized for Windows and supports a max frame rate of up to 60 fps.

The stream video source uses software encoding and is available on all operating systems. This video source supports a max frame rate of up to 60 fps on ARM-based Macs, and 30 fps on all other systems.

The auto video source will try to select the best video source for your system based on what is supported. On Windows systems, windda is selected. On Linux systems that support NVIDIA GRID or NVIDIA NvFBC, nvfbc is selected (otherwise x11 is selected). On MacOS systems, stream is selected.

The table below summarizes the default and configurable maximum frame rate settings for each video source:

Video Source

Default MaxFrameRate

Configurable MaxFrameRate

x11 (Linux)

30

60

stream (Linux)

30

30

nvfbc (Linux)

30

60

auto (Linux)

see: x11 or nvfbc

see: x11 or nvfbc

windda (Windows)

30

60

stream (Window)

30

30

auto (Windows)

see: windda (Windows)

see: windda (Windows)

stream (MacOS)

30

60

auto (MacOS)

see: stream (MacOS)

see: stream (MacOS)

By default, the maximum frame rate is set to 30. To enable a maximum frame rate of 60 fps for the supported cases listed above, set Server.Video.Encoding.H264.MaxFrameRate in the config file. See Server.Video.Encoding.H264.MaxFrameRate for more information.

To change the video source, see Server.VideoSource for more information.

Sign In

Once the Scyld Cloud Workstation server has started, users can connect their networked client to the server by typing the server’s URL into the web browser. Servers using the HTTPS protocol (default) have URLs like this: https://<server-hostname-or-ip>.

This will take you to the Scyld Cloud Workstation sign in page. Submit the username and password encrypted in the config file or by ScyldCloudAuth to sign in.

As a third option, you can use your OS specific credentials to sign in.

Important

While config file or ScyldCloudAuth usernames can be used to sign in to Scyld Cloud Workstation at any time, only a single set of OS credentials can only be used to sign-in at a time. This prevents different OS credentials from signing in at the same time.

After signing in you will see a gray canvas that will turn into a remote visualization display within a few seconds. At this point you can interact with the remote operating system. Other users will be prevented from signing into the web service until you sign out.

Main Toolbar

The main toolbar gives access to additional Scyld Cloud Workstation features such as signing out. This menu can be hidden or shown by pressing Ctrl+F12 or using the hide/show button at the bottom of the screen.

Toggle Audio

Click on the Toggle Audio button to begin streaming the default audio output device of the remote server. The default output device can then be managed through your remote operating system’s audio device interface.

Note

Puleaudio version 10.0+ is required for Linux users.

Keyboard Menu

The Keyboard Menu contains a list of special actions and keyboard button presses to transmit to the remote system, such as Copy Remote Clipboard, Ctrl+Alt+Del and Print Screen.

Copy Remote Clipboard will copy plain text contents from the remote clipboard to the local clipboard.

USB Menu

The USB Menu contains a list of USB devices that can be forwarded to the remote server. This menu only appears if you’ve purchased a license for USB Forwarding, you are a host user, and you are the controller of the remote keyboard.

Note

USB Forwarded devices will disconnect every time a user:

  • disconnects from Scyld Cloud Workstation

  • signs in or signs out of the remote OS

  • adds or removes a monitor on the remote server

  • loses controller status (i.e., gives up remote keyboard control)

Warning

CentOS 7 doesn’t always properly load the default USB kernel modules for forwarded Wacom tablets. As a workaround, reload all wacom related modules using the following commands:

sudo modprobe -r hid_wacom wacom wacom_w8001
sudo modprobe -a hid_wacom wacom wacom_w8001

Settings Menu

The Settings Menu provides options for toggling ‘Fit to Window’ view, ‘Full Screen’ view, and selecting between three video quality settings (this last option is available to native client users only). If video is being downscaled it will also provide a status message.

Higher quality settings will result in better color accuracy at the cost of higher bandwidth usage and lower frame-rates. The three video quality settings are: normal (lossy with best frame-rate and lowest bandwidth usage), visually lossless (close to lossless quality with better frame rates and lower bandwidth usage), and truly lossless.

Important

Enabling lossless video on a downscaled video may improve image quality, but is not truly lossless.

Important

Currently only normal video quality is available when multiple users are signed in.

User Tools Menu

The User Tools Menu provides options for inviting guests, pausing guest video streams, and removing all guests and cancelling guest invites.

Paste Text from the Local Clipboard

Text can be pasted from the local client into the remote desktop.

To paste text from a local Linux / Windows clipboard into the remote Linux / Windows desktop, press Ctrl+V.

To paste text from a local MacOS clipboard to the remote Linux / Windows desktop, use your browser’s menu system to select Edit -> Paste. This transfers the local clipboard to the remote clipboard. Once this is done, you can use Ctrl+V or use your remote application’s paste feature.

The server administrator can turn off this feature by setting Server.Paste.Enabled to false in scyld-cloud-workstation.xml.

Note

Only characters that are supported by both the client and server can be pasted.

Copy Text to the Local Clipboard

Select Copy Remote Clipboard from the Keyboard Menu to copy plain text from the remote clipboard to the local clipboard.

This feature can be disabled by setting Server.Copy.Enabled to false in the configuration file.

UI Keyboard Shortcuts

The following keyboard shortcuts are supported:

  • Ctrl+F11: Toggle Fullscreen (Native Clients only)

  • Ctrl+F12: Toggle Main Toolbar

Change Screen Resolution

Warning

Changing screen resolutions has these known issues:

  1. Multiple rapid resolution changes may lead to service instability. Changing the screen resolution more than 5 times over a few seconds may cause the service to restart or quit.

  2. Windows users with an NVIDIA graphics card should use the NVIDIA Control Panel to change screen resolution.

Otherwise change your screen resolution by using the provided Linux OS tools (dependent on distribution).

In Windows, right click on the desktop and select Screen resolution. Change the resolution dropdown to your desired resolution and then click ‘OK’.

Downscale Screen Resolution

System administrators have the ability to restrict the maximum screen resolution in the config file at scyld-cloud-workstation.xml using the Server.Video.MaxWidth and Server.Video.MaxHeight settings. This is useful for preventing clients from being overwhelmed by the processing power required to work with high-resolution video.

If the user attempts to use a higher screen resolution, the user will get an alert and the video will be scaled down.

Enable 4K Support

As of v7.0.0 it is possible to support 4K desktops with the native, non-browser based client. This feature is not enabled by default and requires a configuration file change to disable the default screen size and bitrate caps. We recommend having a downlink of at least 20 Mbps to support the increased screen size.

In future releases 4K support will be enabled automatically.

Note

If you are not going to use 4K resolutions then leave the following settings at their defaults by commenting them out or deleting them from the config file. The default screen size and bitrate caps are used to ensure a good user experience for slower clients.

The following steps enable 4K support:

  1. Open the xml config file.

  2. Add the Server.Video.MaxWidth and Server.Video.MaxHeight tags with the value set to -1 to disable the resolution cap.

  3. Save the config file and restart the service.

Configure Video Bit-Rate

As of v9.1.9, the default video bit-rate is calculated by using a linear regression of two values: 3000 kbps at 1280x720 and 6000 kbps at 1920x1080. A system administrator can customize bit-rates for different resolutions by adding two or more resolution and bit-rate pairings within the Server.Video.AvgBitRate config file setting. The syntax is as follows:

<width>x<height>=<bitrate>,<width>x<height>=<bitrate>,...

Example 1: the following is equivalent to the default bit-rate values: 1280x720=3000k,1920x1080=6000k.

Example 2: the following can be used to specify a single average bit-rate setting across all resolutions: 1024x768=2m,1600x900=2m.

The linear regression algorithm is based on the two closest resolutions to allow a fine-grained bit-rate control. If the value only specifies one resolution and bit-rate, the service will use the specified average bit-rate for all resolutions.

Sign Out

Linux, Windows, and MacOS users must change users by using the remote OS’s log out / log in feature. Scyld Cloud Workstation does not support “fast user switching” and the service must be restarted if this happens.

Closing your browser or signing out of the Scyld Cloud Workstation session does not sign you out of the remote operating system. Use the remote OS’s signing-out capability to sign out of the remote OS.

Collaboration

Multiple users can now share control of the same desktop. There are two types of users in this case: regular Host users and temporary Guest users.

Hosts are are fully trusted users who have an account on the system and have complete control over what a Guest can access. An ongoing session begins when one Host is signed in and ends when the last Host leaves. All Guests and Invites are removed when an ongoing session ends.

Guests are users who are invited to join an ongoing session. As a Host, this can be useful when you want to share a workstation with a remote colleague who should not have a permanent account on the system.

This section describes how a Host adds and manages Guest users.

Important

The Guest alerts and interface buttons described below are not visible in fullscreen mode.

Set the maximum number of concurrent clients

By default the server only allows 6 users to be signed on at any given time. This number can be changed by a system administrator by adding a Server.MultiUser.MaxClientCount setting in the config file at scyld-cloud-workstation.xml.

Collaboration Quick Start

At a high level, adding a new guest involves three steps:

  1. A Host creates an Invite Link and sends it to Guest users

  2. A Guest opens the Invite Link, enters a Guest name, and attempts to sign in

  3. A Host accepts the Guest’s sign in request

Hosts can use the control buttons to pause video to all Guests or ban all Guests and revoke all pending Invites. Hosts can also click on user buttons to kick individual Guests or give keyboard and mouse control.

Control Buttons

At the top of the screen there are a row of buttons that allow you to type special keys such as Ctrl+Alt+Del, add guests, pause all guest video, ban all guests, and sign out. Press Ctrl+F12 to show / hide these buttons.

Add New Guests

Hosts can invite a group of guests by creating an Invite Link. Click on the ‘Add Guests’ button.

In the form that appears, specify how many guest sign ins you’d like this link to be good for. It is best practice to select the minimum number you will need.

The next form will show the generated Invite Link. Copy and send this link to Guest users and then close the form.

Warning

Anyone who receives an Invite Link can request Guest access to your system. While these links expire over time and are limited by how often they can be used it is best practice to keep this link confidential.

When Guests use this link to request a sign in, an alert will appear to all Hosts asking whehter the user should be Accepted or Declined.

Important

It is best practice to verify the incoming user’s identity via a phone call, text message, or other trusted communication channel.

When a Guest signs in, their username becomes reserved until all Hosts sign out. Guest usernames must be unique and consist of only letters, numbers, and underscores. Once the session ends, all Guest usernames are freed again for use.

Pause Guest Video

Guest video can be toggled by clicking on the ‘Pause Guests’ button.

Ban Guests and Revoke Invites

Guests can be banned for the session either individually or all at the same time using the ‘Ban Guests’ button. Hosts can not be banned.

User Buttons

At the bottom of the screen there are a row of buttons containing usernames and status icons. The first button will always be “You”, indicating the user button for the user signing in. Clicking on the user button will show status information (including frame rate) and actions that can be taken on that user, such as banning or giving keyboard / mouse control.

Usernames that end with an asterisk are Hosts. Press Ctrl+F12 to show / hide these buttons.

Give Keyboard and Mouse Control

A Host can give any other user control of the keyboard and mouse using the ‘Give Keyboard and Mouse Control’ button.