21 Special Tools

21.1 Shiny-Server

IQdesktop contains an inbuilt Shiny-Server, allowing to conveniently share apps with colleagues or other parties of interest. For security reasons, an administrator on a server side installation has full control over the availabvility of the Shiny-Server for a user. On local installations, the user can decide on its own.

If the configuration file enables the access to the Shiny-Server (ALLOW_SHINY_SERVER=true), then the users home folder will contain a folder SHINY-SERVER that is the root folder for the Shiny-Server. Apps placed in this folder will be visible via the server.

The port on which the Shiny-Server is accessible from the outside of the container is also defined in the configuration file as: "SHINY_SERVER_PORT:3838", where SHINY_SERVER_PORT is to be replaced by the desired port number. On multi-user servers the admin would provide a feasible port number. On local systems every user can decide a port number to be used, although the defaul setting of 7900is suggested.

If allowed, the Shiny-Server can conveniently be started and stopped by using the play button in the program panel (see figure below). Once started the play button will turn into a stop button.

Note: the play/stop button is only present if the access to the Shiny-Server is allowed and otherwise hidden.

21.1.1 Accessing the Shiny-Server from outside of the container

The Shiny-Server is listening on port 3838inside the container. This inside port is mapped to an outside port SHINY_SERVER_PORT through the configuration file. The Shiny-Server can then be accessed with a web browser at the following addresses:

  • http://localhost:7900 (local use)
  • (local use)
  • http://ipaddress:7900

In the above examples 7900 is the default port for the Shiny-Server and needs to be replaced by the one that was chosen in the config file. ipaddress is the IP address of the computer on which IQdesktop is running.

21.2 Jenkins CI/CD

Continuous integration / continuous delivery (CI/CD) is commonly used to ensure automatic building, tasting, and delivery of software. Tools such as Jenkins and Travis CI are often used for this purpose.

One challenge with CI/CD is that the CI/CD system is often required to have access to a specific software environment within which the new functionality should be run. Since the burden of maintaining a dedicated CI/CD server over time and over multiple versions of the target computational environment can be very high, it was decided to install Jenkins on IQdesktop itself. In this manner, each version of IQdesktop comes with its own CI/CD functionality and the whole needed tool ecosystem for all testing is readily available.

The Jenkins server can be started from command line by:

sudo service jenkins start

Stopping is done by:

sudo service jenkins stop

Jenkins running on an IQdesktop container charged with CI/CD of IQR Tools