How to Deploy a Linux VDI Solution on Microsoft Azure Using Cendio ThinLinc

deploy vdi on azure

Cendio ThinLinc is a Linux Remote Desktop Server that allows you to deliver secure Virtual Desktop Infrastructure (VDI) sessions over the web or via its client application. By deploying it on Microsoft Azure, you can provide scalable Linux desktops to users anywhere.

This guide walks you through the entire process, from creating the VM in Azure to logging into the ThinLinc desktop and administration panel.

Prerequisites

Before starting this deployment, make sure you have the following:

  • Microsoft Azure account – with an active subscription. A free trial works, but for production, use a paid plan.
  • Basic knowledge of Azure – navigating the portal, creating resources, and managing virtual machines.
  • SSH client installed – such as OpenSSH on Linux/macOS or PuTTY on Windows, to connect to your VM.
  • Downloaded SSH key – generated during the VM creation process in Azure. This private key will be used for secure access.
  • Local system requirements – a modern browser for ThinLinc Web Access, and optionally, the ThinLinc Client application for better performance.
  • Resource planning – select an Azure VM size that matches your workload (for example, 4 vCPUs and 16 GB RAM can support small teams).

Step 1 – Log in to Azure Portal

Open https://portal.azure.com and sign in with your Microsoft account. Make sure you have an active subscription with permissions to create virtual machines. From the dashboard, use the search bar at the top to access the Azure Marketplace, this is where you’ll find the ThinLinc Remote Desktop Server image to begin deployment.

azure marketplace

Step 2 – Find ThinLinc in Marketplace

In the Azure Marketplace, search for ThinLinc. Select the “ThinLinc Remote Desktop Server” image, review its details,  click Create and select ThinLinc on Ubuntu 22.04 then click Next to start the virtual machine setup.

select ubuntu image

Step 3 – Configure Virtual Machine Settings

After selecting the ThinLinc image, continue configuring your VM in the Create Virtual Machine wizard:

  • Availability Zone: Choose an availability zone (e.g., Zone 1) to increase reliability.
  • VM Size: Select a machine type that matches your workload. For example, Standard NVas v4 is a good choice for VDI since it provides GPU-enabled instances and enough memory (around 19 GB).
  • Administrator Account: Confirm the SSH public key authentication method and the azureuser login you created earlier.
  • Inbound Port Rules: Keep SSH (22) enabled so you can access the VM from your local machine.

Once these settings are configured, proceed to the Next:Disks tab to continue with storage configuration.

Step 4 – Configure Disks and Networking

Next, move to the Disks and Networking tabs in the VM creation wizard:

  • OS Disk: Keep the default settings (Premium SSD, 30 GiB) for better performance. You can add additional data disks later if needed.
  • Encryption: Leave default options (platform-managed keys) unless your organization requires custom encryption.
  • Virtual Network: A new VNet will be created automatically (e.g., thinlinc-vnet).
  • Subnet: Use the default subnet.
  • Public IP: Assign a public IP (e.g., thinlinc-server-ip) so you can access the VM from outside.
  • Network Security Group (NSG): Choose Basic and allow inbound SSH (22).

These settings ensure the VM is both accessible and secure. Once completed, continue to the Next:Management tab.

Step 5 – Management and Review

On the Management tab, configure monitoring and security options for your VM:

  • Defender for Cloud: You can enable this for advanced threat protection, though it’s optional.
  • Auto-Shutdown: Set a daily shutdown schedule if you want to save costs when the VM is not in use.
  • Monitoring: By default, diagnostics and monitoring are enabled; you can leave these as-is.

Once the management settings are reviewed, click on Review + Create, and when prompted, download the SSH private key file to your local machine. This will be used to connect to the VM later.

Step 6 – Deployment Complete and Connect to the VM

Once the deployment is complete, you’ll see a confirmation screen indicating that your ThinLinc VM has been created successfully. The Overview page will display important details such as:

  • VM name (e.g., thinlinc-server)
  • Operating system: Ubuntu 22.04 LTS
  • Size: The VM type you selected (e.g., Standard NVas v4)
  • Public IP address: Required for SSH and ThinLinc Web Access
  • Resource group and Virtual network

Now connect to your VM from your local computer:

Open a terminal on your system.

Navigate to the directory where you saved the SSH key and grant the necessary permissions to it.

chmod 400 ThinLinc-Server_key.pem

Now, run the command below to connect to your ThinLinc server.

ssh -i ThinLinc-Server_key.pem azureuser@VM_PUBLIC_IP

You are now inside your ThinLinc server on Azure and ready to begin configuration.

Step 7 – Check ThinLinc Services and Configure NSG

After connecting to the VM, the first step is to make sure the ThinLinc services are running correctly. Inside the VM terminal, run:

sudo systemctl status vsmserver vsmagent tlwebaccess tlwebadmind

You should see all services in the active (running) state. These are the core components that handle ThinLinc sessions, web access, and administration.

Step 8 – Configure Firewall

Next, configure the Network Security Group (NSG) to allow ThinLinc traffic. By default, only SSH (22) is open. You’ll need to add rules for:

  • Port 300 – ThinLinc Web Access
  • Port 1010 – ThinLinc Control Panel
  • Port 9000 – ThinLinc VSM Server

You can do this from the Azure Portal under Networking => Inbound port rules

ThinLinc Firewall

Step 9 – Set User Password and Configure ThinLinc Admin

ThinLinc requires user authentication, so the next step is to configure credentials:

1. Set a password for the default user

Run the following command inside your VM to create a password for the azureuser account:

sudo passwd azureuser

Enter and confirm the new password. This will be used to log in to the ThinLinc desktop session.

2. Generate an admin password hash

ThinLinc Web Administration uses hashed passwords. Generate one with:

sudo /opt/thinlinc/sbin/tl-gen-auth

Copy the generated SHA-512 hash from the output.

3. Edit the ThinLinc Web Admin configuration

Open the config file:

sudo nano /opt/thinlinc/etc/conf.d/tlwebadm.hconf

Add or update the following lines:

username=admin
password=your_generated_hash

4. Restart the admin service

Apply changes by restarting the ThinLinc Web Admin service:

sudo systemctl restart tlwebadm

At this point, ThinLinc Web Administration is configured with an admin user and secured password hash.

Step 10 – Access ThinLinc Web Access and Admin Panel

With the services and credentials configured, you can now log in to ThinLinc using both the desktop access portal and the administration panel.

1. ThinLinc Web Access (Desktop Session)

Open a browser and go to https://VM_PUBLIC_IP:300

ThinLinc Desktop Web Login

Enter the credentials of the Linux user you created (azureuser and its password) If successful, you’ll be taken to a remote Linux XFCE desktop session directly in your browser.

ThinLinc Desktop Session

2. ThinLinc Web Administration Panel

For system management, open https://VM_PUBLIC_IP:1010

ThinLinc Control Panel Login

Log in with the admin account you configured earlier (admin and the password you set via hash). Once logged in, you’ll see the ThinLinc Admin Dashboard, where you can check system health, manage services, configure profiles, and monitor users.

ThinLinc Control Panel Dashboard

At this point, your ThinLinc VDI solution is fully operational: users can log into Linux desktops, and administrators can manage the environment through the web panel.

Step 11 – Install and Use the ThinLinc Client for Better Performance

While ThinLinc works directly in a browser, using the ThinLinc Client application offers a smoother experience, especially for graphics-intensive workloads or long-running sessions.

1. Download the ThinLinc Client

Visit the ThinLinc downloads page from your local machine. Choose the package that matches your system (Windows, macOS, or Linux).

2. Install the client (example for Ubuntu/Linux)

sudo apt install ./thinlinc-client_4.19.0-4005_amd64.deb

3. Connect to the ThinLinc Server

Launch the ThinLinc Client.

open Thinlinc client app

  • Enter your server’s public IP address in the Server field.
  • Enter the username (e.g., azureuser).
  • Define the path of your saved SSH .pem key

4. Start a Session

Click on Connect. Once you are connected, the ThinLinc Client will open a full Linux desktop session with improved responsiveness compared to browser access.

Connect ThinLinc Desktop

At this point, your Linux VDI solution on Microsoft Azure using Cendio ThinLinc is fully set up.

Conclusion

You’ve now deployed a complete Linux VDI solution on Microsoft Azure using Cendio ThinLinc. Starting from creating a VM in the Azure portal, you configured ThinLinc services, opened the right network ports, secured user and admin accounts, and accessed both the desktop session and the Web Administration Panel.

With this setup:

  • Users can log in from anywhere using either a browser or the ThinLinc Client.
  • Administrators can manage sessions, monitor services, and customize the environment through the web admin dashboard.
  • The solution scales easily, add more resources or servers in Azure as your user base grows.

This combination of Azure’s flexibility and ThinLinc’s simplicity gives you a powerful, cost-effective, and secure VDI platform for remote teams, classrooms, and enterprise environments.

About Hitesh Jethva

Experienced Technical writer, DevOps professional with a demonstrated history of working in the information technology and services industry. Skilled in Game server hosting, AWS, Jenkins, Ansible, Docker, Kubernetes, Web server, Security, Proxy, Iptables, Linux System Administration, Domain Name System (DNS), and Technical Writing.

View all posts by Hitesh Jethva