Skip to content

Floating Controller

Getting Started#

JEB Pro Floating builds provide more flexibility than individual builds, and can be distributed to many users within an organization. A floating build licensed for N seats will allow N clients to connect to it concurrently. When a client leaves, its seat is vacated, allowing another JEB client to start by connecting to the Controller.

JEB Clients regularly probe the Controller to determine whether or not they are allowed to run. The check is based on the number of seats available in your licensed build: for example, a floating license for 5 seats allows 5 different users to run JEB concurrently.

In order to start the Controller, use the --controller flag along with the -c flag:

$ jeb_wincon.bat -c --controller

$ jeb_linux.sh -c --controller

$ jeb_macos.sh -c --controller

Additional Controller-specific command-line flags (--interface, --port, --protocol) are detailed below.

After starting the Controller, follow the prompt: You will be asked to input your password, accept the license agreement, and generate a license key.

Sample log output:

C:\jeb>jeb_wincon.bat -c --controller
JEB decryption password: ***************
...
<EULA>
...
Write "yes" to agree, then press enter: yes
Hello Nicolas Falliere. Set up your JEB controller by generating a license key. This one-time operation will only take a few seconds.
Please visit https://www.pnfsoftware.com/genlk, and use the following "license data" blob to generate a key
License data: .............................................
Input your license key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Mode: Controller for floating clients
Note: X client(s) may simultaneously connect to this controller instance
Listening on 0.0.0.0/0.0.0.0:23477...

If you need to customize the Controller's address or protocol, you may now stop it with the Ctrl+C keyboard command.

Controller Settings#

After the first step is completed successfully, executing the controller should display something like the following:

C:\jeb>jeb_wincon.bat -c --controller
Mode: Controller for floating clients
Note: X client(s) may simultaneously connect to this controller instance
Listening on 0.0.0.0/0.0.0.0:23477...

As can be seen, by default, the controller is listening on port 23477 on all interfaces, and uses the HTTP protocol. This can be changed by editing the configuration file bin/jeb-client.cfg and adding entries: .ControllerInterface, .ControllerPort, and .ControllerProtocol. Protocols currently supported are HTTP (0, the default) and HTTPS (1).

  • Example 1: the Controller listens exclusively on localhost, port 30000:
.ControllerInterface = localhost
.ControllerPort = 35000
  • Example 2: the Controller listens on 10.0.0.25, port 8443, and uses HTTPS instead of HTTP:
.ControllerInterface = 10.0.0.25
.ControllerPort = 8443
.ControllerProtocol = 1

Client Settings#

Start your desktop client using one of the standard start-up scripts. For example, on a Windows machine:

$ jeb_wincon.bat

Your JEB Client settings should mirror your Controller settings: specify the controller hostname/interface, port, and protocol, in your client's jeb-client.cfg.

The first time you start your JEB Desktop client, a dialog box will request you to specify your Controller's location. You will also have the opportunity to configure your proxy settings, if you are using one.

Technical Notes#

  • JEB Clients as well as JEB Controller are the same binary file: there is no separate package for the Controller.
  • The --controller flag is only available for Floating builds.
  • The Controller should be started before Clients.
  • Clients regularly contact the Controller. Therefore, the Controller should always be reachable by running instances of JEB. In order to minimize potential problems due to network latency, it is recommended to run JEB and the Controller within the same local network.
  • By default, the Controller listens on all interfaces, on port 23477. This can be changed by setting the .ControllerInterface and .ControllerPort values in your configuration file.
  • By default, the Controller and Clients use HTTP for communication. In order to use HTTPS, make sure to set the .ControllerProtocol value in your configuration file to 1. (HTTPS is only available for JEB 3.0.6 and above.)
  • JEB Client instance and the Controller may be run in different environments (e.g., a Controller on Linux, Clients on Windows or macOS, etc.)
  • The controller property .ControllerMessage is used to provide messages, visible by clients on the Controller portal.

Updating the Controller#

There is no auto-update feature in the controller. The update procedure is:

  • Check your registered email address for a JEB update email ("JEB xxx is available...")
  • Download the software archive
  • Copy the archive to the root of your JEB folder and rename the file to update.zip
  • Create a text file named update.pwd
  • Store the email-provided password inside this file
  • Start your controller as normal (e.g., ... -c --controller); the update will be installed automatically