Installation Workflow

Modified on Mon, 28 Aug 2023 at 05:38 PM


Below you can find a step-by-step description of the platform installation process. The video below demonstrates the real execution of each step proposed in this document.

Preparing for the Installation

Check the requirements of the installation environment

$> curl -sL -o
$> sudo bash ./

Fill out this Questionnaire to obtain the installation package.

It is recommended to use a fresh VM for the platform installation. If the VM is already used for other applications or has a previous version of any Labforward product, then:

  • Make sure ports 80 and 443 are available
  • Uninstall docker. The installation script will try to do it for you, but it is safer if you remove it manually before starting the process
  • In the /etc/resolv.conf file:

    It can have at most three nameservers

    Each nameserver can have at most three search queries, and one of them must be your DNS domain

Checkpoints: Checkpoints are verification steps executed after each part of the installation. 
You should be able to verify the checkpoint output before proceeding to the next step.

Checkpoint 1

Receive an e-mail with the installation package and follow-up instructions.

Installation Process

Update the package manager of the operational system. This example uses an Ubuntu 20.04:

sudo apt-get upgrade

Download the installation package script:

$> curl -o -sL

Execute the installation package and provide the PASSWORD received in the email:

$> sudo bash
Downloading labforward-installer-package bundle
Type the pasword provided for installation:

Checkpoint 2

Check if the Kubernetes PODs are running:

$> sudo kubectl get pods

Access the admin console in the browser:

$> curl # This command will tell what is this machine public IP. We will call it {{my-public-ip}} in the following sections

Open in your browser: http://{{my-public-ip}}:8800

You will have reached this checkpoint if you have a kotsadm service installed, running and reachable from your browser. This is what your browser should look like:

The password is shown during the installation. You can reset the admin password at anytime using the following command:

$> sudo kubectl kots reset-password

Application Configuration

After logging into the Admin Console, proceed with the minimum required configuration fields:

Domain: Include the DNS domain pointing out to the machine IP running the Kubernetes cluster in the Domain field

TLS Certificate Configuration:

(Option 1): Customer Provided - Include your company’s TLS certificate

(Option 2): Use Let’s Encrypt - Labforward will use the Let’s Encrypt certificate

(Option 3): Self-Signed - Labforward will create and use a self-signed certificate

Email Server - SMTP:

  • SMTP Hostname
  • SMTP From Email - E-mail used to send Labforward e-mails, such as reset password

Click on the Continue button at the bottom of the page:

Click on the Deploy button on the pre-flights page

*Checkmarks and warnings are acceptable, but errors will block the deployment.

Checkpoint 3

Open the Account login page in the browser at https://account.{{domain}}

What you accomplished so far:

  • Labforward’s applications are ready for use
  • The next releases and configurations will be available via the admin console - https://admin-console.{{domain}}
  • All data is being stored in embedded data sources deployed inside Kubernetes
  • Self-sign-up is available using the e-mail provided in the configurations to create new accounts

What’s next:

The following steps are optional and depend on each customer's needs:

Connect to External Data Source (Optional)

Go to Config in the admin console and look for the data source options. The current possibilities are Labfolder Database, Laboperator Database, and Object Storage:

  • Select the External option and insert the URL (the query parameters are optional, Labforward recommends keeping the same as before), username, and password
  • At the bottom of the screen, click on Save Config
  • Go back to the dashboard and deploy the new version.

It is normal for databases to restrict access via IP. If the database was running in the same VM as the application, it has a chance to permit connections only from localhost.

The DBA must grant permission to the Kubernetes cluster IP to permit access from the Kubernetes cluster.

For example, in the MySQL database, execute the following query for labfolder:

grant all privileges on labfolder.* to 'labfolder'@'{{IP}}' identified by 'password' with grant option;

Where IP is the Kubernetes cluster {{IP}}

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article