youtube.nixfred.com nixfred.com

Kasm Workspaces Simplified: The Essential Guide for New Users

Jay LaCroix of Learn Linux TV gives a complete getting started guide for Kasm Workspaces, the container based platform that streams individual apps and full Linux distributions into a web browser tab. He covers what Kasm is and its use cases, the server requirements and supported distributions, the standard installer, and a full tour of the admin console. Then he launches and manages workspaces (Alma Linux, Doom, Firefox), closes sessions, wires up the Open in Isolation browser plugin, adds a third party linuxserver.io registry, removes workspaces, and breaks down the self hosted and cloud pricing tiers. A hands on companion to his separate Kasm review, aimed at anyone ready to self host it.

Published Nov 14, 2023 49:33 video 29 min read Added Jul 11, 2026 Open on YouTube →

At a glance

Jay LaCroix of Learn Linux TV delivers a complete getting started guide for Kasm Workspaces, the container based platform that launches individual applications and entire Linux distributions inside a web browser tab. This is the hands on companion to his separate Kasm review: no opinions, just the practical path from a bare Linux server to a running, self hosted Kasm you actually know how to drive. He installs it, tours every section of the admin console, launches and manages workspaces, closes sessions, wires up the "Open in Isolation" browser plugin, adds a third party registry, removes workspaces, and finishes by demystifying the pricing tiers.

The core idea is simple and a little magical. Kasm runs on a Linux server you control. Each workspace is a container, and Kasm streams the running app or full desktop back to whatever browser you logged in from. So you can edit photos with GIMP, write documents in LibreOffice, browse in a throwaway sandboxed session, run a full Ubuntu or Alma Linux desktop, spin up a development environment, or even play Doom, all from a tab in the browser you already have open. Workspaces are created and destroyed on demand, so you keep state when you want it and wipe it when you do not.

This page rebuilds the whole tutorial in the video's own order, every requirement, command, console section, and prompt, so a reader who never plays the video can install Kasm, understand the interface, run and manage workspaces, extend it with more apps, and pick the licensing tier that fits. Kasm sponsored the video, and Jay discloses that up front while keeping his opinions to his separate review.

One server, many workspaces, all in your browser tab Your browser any machine on the network HTTPS login Kasm web console registry + admin click install pull image Docker on your Linux server Alma Linux 9 desktop a full GUI in a tab Firefox workspace a browser in your browser Doom GPU, game pad, lossless render FileZilla, GIMP, VS Code... created and destroyed on demand
Figure 1. Kasm installs nothing on your laptop. You log into its web console, click a workspace in the registry, and Kasm pulls the container image and runs it on the server. The running app or desktop is streamed back into your browser tab, which is why a Firefox workspace is a browser rendered inside your own browser, reachable from any machine on the network.

Intro: what this guide is

Jay opens with the hook that frames the whole product: here is a Linux distribution, not just any distribution, running inside a container, and that container is presented inside a web browser. That is one of the things this video teaches. He welcomes you back to Learn Linux TV and states the goal plainly. This is an entire getting started guide for Kasm, a container based solution that lets you launch applications and even entire Linux distributions inside your browser. By the end you will know exactly how to use it. You can run apps like Thunderbird and LibreOffice, distributions like Ubuntu, and much more, and best of all you can self host Kasm on your own infrastructure. The tutorial runs from installation all the way to managing workspaces.

The sponsorship disclosure, up front and honest

Before anything else Jay gives a clear disclaimer. The video is sponsored by Kasm, but it is not a review and he will not give his opinion on Kasm as a product here. This guide is for people who have already decided to use Kasm and want to know how to use it: installing it, managing workspaces, and so on. He deliberately leaves his opinion out because he already published a full review in a separate video, which he links with a card. He also points to the time codes in the description so you can skip to whatever section matches where you are in your own learning.

A quick summary of Kasm

Kasm is a solution you install on your Linux server that lets you launch containers, called workspaces, that each feature applications or entire Linux distributions, and these workspaces run inside your web browser. That means you can edit photos with GIMP, write documents with LibreOffice, or browse the internet with Google Chrome in a sandboxed session, all from within your existing browser. Workspaces can be created and destroyed easily, so you can keep the state inside an application or wipe it whenever you like.

Once Kasm is set up you manage it through the web console by logging into it in your browser, and that is where you spend most of your time. The console gives you a dashboard for stats and metrics about running workspaces, and a registry section where you browse available workspaces to launch new ones or add more registries for even more apps. When you find an application in the registry you want, you click install. Kasm downloads and sets it up in the background, and the new workspace then appears on the Workspaces tab of the console, which shows everything you have installed.

The use cases are limited only by your imagination. You can spin up a web browser inside Kasm as a sandboxed browsing session you simply destroy when finished. You can launch entire Linux distributions to test software you are developing against specific distributions. You can even build entire development environments inside Kasm. Jay stresses that he learns by doing, by getting hands on so he can put a solution through its paces, so the rest of the guide installs Kasm and sets up workspaces rather than lecturing about them.

Use caseWhat you launchWhy it helps
Sandboxed browsingA browser workspace (Firefox, Chrome, Chromium, Brave)A throwaway or isolated session; delete the workspace and the history goes with it
Test a distributionA full Linux desktop (Alma Linux, Ubuntu, Fedora, Rocky Linux, openSUSE, Kali)Try software against specific distributions without touching your own machine
Development environmentA desktop plus tools such as VS CodeA complete, reproducible dev box streamed to any device you sit down at
Centrally available appsAny registry app (GIMP, LibreOffice, Thunderbird, FileZilla, Blender)Run your important apps from one place, reachable from any browser on the network
Just for funGames such as Doom or SuperTuxKartGPU, game pad, and lossless rendering support make it genuinely playable
Figure 2. A sampling of what the "limited only by your imagination" pitch means in practice. Every one of these is a container Kasm pulls, runs, and streams into a browser tab, and every one is torn down the moment you delete the workspace.

Requirements for installing Kasm

Before installing, Jay lays out exactly what you need to follow along. First, your own Linux server. You can subscribe to the hosted software as a service version, but this guide uses the self hosted version, so you install it on your own hardware. That server can be a physical box, a virtual machine, or a VPS from a provider such as Akamai Connected Cloud or DigitalOcean, among others. He notes the obvious caveat that a VPS carries its own cost from the cloud provider, which has nothing to do with Kasm, since providers charge for virtual machines on their platforms.

For the walkthrough Jay creates a Debian based virtual machine on Proxmox, which is perfectly acceptable, and that is how he deploys it. On which distribution to run, Kasm officially supports these:

Additional distributions are listed in the official documentation. For this guide he focuses on the Debian virtual machine he is about to create.

On resources, the video shows the on screen minimum requirements, but Jay stresses that the real figure depends entirely on your environment and the workspaces you intend to run. Doubling each of the minimum resources gives you more flexibility, but it all comes down to the hardware you have available. Two more notes he flags: Kasm recommends a swap partition be present on the server, one of those things you hope you never need but want available, and SSD storage is a minimum requirement. Beyond that, all you need is a Linux server that meets, or preferably exceeds, the minimum specifications, and it does not matter where that server lives or what kind of hardware it is.

Installation considerations

Jay clones an existing Debian template on one of his Proxmox nodes to save time, gives it a unique VM ID, creates it as a full clone, and names it kasm host. You do not have to use Proxmox: if you already have a server, use it. Because he has the hardware available, he uses a VM.

Before starting the instance he right sizes it under the Hardware tab, giving the VM some horsepower rather than leaving it at the template defaults:

He starts the instance and lets cloud init finish provisioning. After it boots he reboots it so it is fully up to date, since his VMs auto update on first boot. He strongly recommends you complete all available security updates for your chosen distribution, and points to his separate video on the first things to do on a new Linux server. None of those steps are specific to Kasm, they are just good hygiene for every server you set up. Once that is done, he grabs the VM's IP address and connects over SSH from a terminal:

ssh <your-user>@<vm-ip-address>

This is going to be a single server installation. With the VM reachable, he is ready to install Kasm.

Choosing an installer

There are three sets of commands that result in Kasm being installed, and you only run commands from one of them:

The difference is that the offline installers also download the container images, which would normally be pulled from the internet at run time. This guide covers the standard installer, and Jay notes the offline commands are in the official blog post for the video and on the Kasm documentation pages.

One important best practice he raises: he is not going to walk through the actual code inside the installer, but he always recommends you review the code of any installer you run on your Linux servers. He has already tested everything on his end, so he does not need to, but he wants you to be aware of the practice.

The standard installer, start to finish cd /tmp download the release archive tar -xf cd into kasm_release sudo bash install.sh Y to accept EULA credentials printed [email protected] + generated password https://<server-ip> then log in accept the self signed cert warning
Figure 3. The standard install is a short, repeatable sequence. The one output that matters is the block of credentials the script prints at the end: copy them somewhere safe, because the [email protected] login and its generated password are how you first reach the console.

Starting the installation

With the requirements out of the way, Jay walks through the actual install over SSH. He changes into the temporary directory, then pastes the download command from the documentation. He notes it is a good idea to grab the URL from the official docs rather than hardcoding it, because the version changes over time. In this case he installs version 1.14 of Kasm, and the command downloads the compressed archive that contains the install script:

cd /tmp
# copy the current download command straight from the official Kasm docs
# so you get the newest release (version 1.14 at the time of the video)
curl -O <kasm-release-tarball-url-from-the-docs>

Listing the directory afterward shows the kasm_release_1.14 archive downloaded into the temp directory. Next he extracts it with tar, using tab completion to fill in the filename:

tar -xf kasm_release_1.14.0.<build>.tar.gz

Listing again shows a kasm_release directory, so he goes inside and finds the install script. He runs it, prefixing with sudo because he is logged in as a normal user rather than root:

cd kasm_release
sudo bash install.sh

The installer presents an end user license agreement. He accepts by typing Y and pressing enter, and the installation proceeds. When it finishes he scrolls up to find a block of information, including all the login credentials associated with Kasm printed right there in the terminal output. He is emphatic: copy all of this down and keep it somewhere safe. You especially do not want to show it in clear text to everyone watching a YouTube video, and he only does so because this test machine will be deleted by the time recording finishes. Of special importance is the username [email protected], the account you use to log in, along with the generated password shown beneath it.

Kasm UI overview

Now Jay logs in for the first time and tours the interface. He opens a new tab and enters the IP address of the server he installed Kasm on. The browser shows a warning that the certificate is self signed. There is nothing technically wrong with that, it is just something to be aware of, and it is always better to get a real certificate if you can, but for now he accepts the risk. That brings up the Kasm login page, where he enters [email protected] and pastes the password from the install output, then clicks login. The user interface for Kasm appears.

The two main sections

The first thing to understand is that the interface has two main sections at the top: Workspaces and Admin. He is in the admin section, shown by its outline. On the Workspaces section, any workspaces you have created show up as icons, but since he has just installed Kasm there are none yet, only the wallpaper.

The user profile menu

At the top right corner is the user profile. You can edit the profile to fill in the username, first name, last name, organization, and similar details. Under settings there is one option he flags for later: the default workspace image, which lets you set a workspace as your default, the one links open in if you want to open a segregated browsing session, something covered later in the guide. You can also add SSH keys here.

The admin console, section by section

Down the left side are the individual admin sections:

Map of the Kasm admin console Workspaces tab Admin tab Profile menu (top right) default workspace image, SSH keys Dashboard stats, metrics, overall health of the install Access Management users, groups, auth: LDAP, SAML, OpenID, tokens Infrastructure Docker, agents, servers, pools: scale out, multi server Sessions manage, pre stage, and close running sessions Workspaces provision and deprovision, launch from the registry Settings global, web filter, branding, API, reCAPTCHA, notices
Figure 4. The admin console laid out. Most day to day work happens on the Workspaces section, but the surrounding sections are what make Kasm a real platform: Access Management for users and single sign on, Infrastructure for scaling across servers, Sessions for killing a stuck app, and Settings for branding and API automation.

Managing workspaces in Kasm

Workspaces are the core of Kasm and what enable full Linux distributions and individual applications. On the admin tab Jay expands Workspaces and clicks Registry to see the applications available. These are provided by Kasm Technologies itself, though you can add other registries too.

Launching your first workspace

He launches Alma Linux 9, clicks install, and Kasm reports the workspace was added. On the Workspaces tab it now appears with a red exclamation mark in the top right corner of the tile, which means the image has not finished downloading yet. This is a larger image, so it takes a few minutes to pull from the Kasm registry; once done, the container launches automatically.

While it downloads he browses the other available apps, which include individual applications like Blender, Audacity, and Atom, web browsers like Chromium, Brave, Chrome, and Firefox, image editing tools, and even full distributions like Kali Linux and openSUSE. And there is Doom.

Install versus Edit

He clicks Doom and this time chooses Edit instead of Install. The difference matters: Install launches the container with default settings, while Edit gives you more control over the deployment before it launches. For example, if you are playing a demanding death match, you might increase the core count and memory. There are quite a few options; he clicks save and the Doom workspace is created, appearing under Alma Linux with its own red exclamation mark while it downloads. By now Alma Linux has lost its exclamation mark, meaning it is ready.

On gaming and GPUs generally, Jay notes that GPUs are supported along with game pads and lossless rendering, which lets a game like Doom perform well.

Running a full desktop in the browser

He clicks the Alma Linux desktop and chooses to open it in a new tab rather than replacing the current one. If you have pop up blocking enabled, as he does in Firefox, the browser may kill the popup, so you allow popups from Kasm and resume the running workspace, which is shown on the left hand side. The tab opens and Alma Linux is running inside the browser. A controls menu offers settings like clipboard access and enabling or disabling the microphone, and can be hidden with the left arrow.

For fun he launches Firefox inside the Alma Linux desktop, which means running Firefox inside Firefox, then browses the channel's website. Everything inside that window runs inside Alma Linux, so he can run other applications, edit images with GIMP, run Telegram or Visual Studio Code, and more, all inside the browser. Back on the Workspaces tab, refreshing shows Doom is ready, so he launches it in a new tab, and Doom runs right in the browser with genuinely good performance, a containerized game on Kasm streamed to the web browser.

Kasm session management

Back in his Kasm console, Jay now has two workspaces running, Alma Linux and Doom. He could resume one, but instead demonstrates session management. If a session is stuck or misbehaving, or you simply need to close it, you can. From the session menu he stops and deletes the running session, then closes the tabs. Importantly, the Doom workspace itself is still listed on the Workspaces tab, ready to launch again. What he closed was the running session, not the installed workspace. This is something you might do regularly if you manage Kasm for a team and occasionally get a request to close a session because an application is misbehaving.

To continue, he launches an additional workspace from the registry, choosing Firefox and clicking install. It is added, downloads in the background, and once ready he launches it in a new tab. Firefox runs inside his browser. Why would you want a browser inside a browser? Because it gives you a throwaway or isolated session separated from the rest of your browsing. Once you delete that workspace, its history is gone too, which makes it a clean way to have a sandboxed browsing environment.

Using the Open in Isolation browser plugin

Jay leaves the Firefox workspace running to demonstrate something else: the Open in Isolation browser plugin, which lets you open a link from your primary browser directly inside a Kasm browser.

First he sets a default workspace image. In the profile menu at the top right, he edits the profile, goes to settings, and under default workspace image chooses Firefox as his default Kasm instance. This default is the workspace that isolated links will open in.

Next he installs the Kasm add on for his browser, which is available for both Firefox and Google Chrome. In Firefox he goes to settings, then extensions and themes, searches for "Kasm", finds the Open in Isolation plugin, and adds it to Firefox. Under the extension's preferences (the three dots) he sets the server address to his Kasm server IP, copying and pasting it in rather than typing it.

To see it work, he opens a new tab, goes to the channel's website, right clicks a blog post link, and at the bottom of the menu chooses Open link in Kasm. Instead of opening in his main browser, the link opens inside the Kasm browser, the Firefox workspace he set as the default, in an isolated window. He can read the article there and close it when done, all by simply installing the browser plugin.

Afterward he closes those tabs and returns to a normal session.

Removing individual workspaces

Under the admin tab, on the Workspaces tab, is a list of installed workspaces where you configure the ones on your system. If Jay is finished playing Doom, he removes the workspace by clicking the delete icon on it. That is how you delete a workspace. His recommendation from here is to go through the registry and experiment: install Fedora, Inkscape, Rocky Linux, SuperTuxKart, Thunderbird for email, an image editor, or any of the other container images available as workspaces, and have some fun exploring what the solution can do.

Managing repositories in Kasm

So far every workspace came from the first party registry that ships with Kasm. But what if you want to run something not in that registry? You add another one.

In the browser, from the dashboard, Jay clicks Workspaces, then Registry. This is the first party registry that comes with every Kasm install by default and includes quite a few applications. To add more, he clicks Registries, sees the first party registry listed, and clicks Add New, which gives a box for a registry URL.

The registry he adds is from linuxserver.io, a project he recommends checking out, home to all kinds of individual container images. Linuxserver.io is not specific to Kasm, it is just something Kasm can use, and it provides a workspace registry link intended for use within Kasm. He copies that workspace registry link and pastes it into the box, then adds it.

Kasm warns that he is adding a third party registry. The reason for the warning is that third party registries are not something Kasm can keep a full eye on, so the quality of the registry depends on the registry itself and how it is maintained. He proceeds anyway, and linuxserver.io is added to the list of registries.

Going to available workspaces, he can now filter by registry, seeing both the first party registry and the new third party one. Each workspace shows on its second line where it comes from, whether Kasm's first party registry or linuxserver.io. Some workspaces carry an alert icon indicating the workspace has defined configurations that may provide elevated privileges, something to keep in mind if that matters to you.

To demonstrate, he launches FileZilla from linuxserver.io, clicking install like any other workspace. It downloads with the red alert icon, and once ready he launches it in a new tab, and FileZilla runs inside the browser, pulled from a registry he added himself. His caution: vet every registry you add, since things can become obsolete or a registry may no longer be maintained. Anything outside Kasm's first party registry is on you to double check.

Kasm pricing and licensing

Finally Jay demystifies the licensing tiers. There are two deployment types: a server deployment and a cloud deployment.

The server deployment is the self hosted version used throughout the video, installed on your own server, VM, or VPS. The cloud version, also known as the software as a service version, is hosted for you, so you do not maintain the underlying server.

On the pricing page, the cloud tiers are:

If you run Kasm on your own hardware, you choose the server version, and its pricing is different:

His recommendation is to pick the deployment type and pricing tier that match what you want to achieve. You can self host and stick to Community, which costs literally nothing and is especially useful for home labbers. If you want support or additional features, step up a tier. If you intend to use Kasm at work, you might consider the cloud version so it is not hosted by you, with prices that change accordingly. Either way, the pricing page lists the features for each deployment type and tier, and there is a link in the description straight to it.

TierDeploymentPriceWhat you get
CommunityServer (self hosted)$0 / user / moFull usage, nonprofit and personal use, no custom branding. Used throughout the video
ProfessionalServer (self hosted)$5 / user / moAdds next business day support
EnterpriseServer (self hosted)$10 / user / moTop self hosted tier
PersonalCloud (hosted for you)$5 / user / moBasic experience, 100 to 300 hours per month, browsers, desktops, distros, apps
TeamsCloud (hosted for you)$18 / user / moNext business day support
EnterpriseCloud (hosted for you)Contact KasmSame business day support
Figure 5. The licensing at a glance. The key takeaway for home labbers: self hosting on the Community tier is genuinely free and fully featured, minus custom branding. Cloud tiers trade that for someone else running the server plus faster support.

Jay closes the video by recapping that it went through Kasm in full detail: installing it, launching and removing workspaces, and adding a registry for access to even more workspaces. He invites comments on what you thought and what you would like to see next.

Key takeaways

Chapters

0:00 Pre intro 0:27 Intro 1:24 Disclaimer and sponsorship notice 2:24 Quick summary of Kasm 4:42 Requirements for installing Kasm 7:49 Installation considerations 11:09 Starting the installation 15:29 Kasm UI overview 24:01 Managing workspaces in Kasm 31:08 Kasm session management 33:33 Using the Open in Isolation browser plugin with Kasm 37:37 Removing individual workspaces 39:33 Managing repositories in Kasm 44:54 Kasm's pricing and licensing

Notable quotes

Resources mentioned

Where it stands

This is a clean, well paced getting started guide, and it does exactly what it promises: take someone who has decided to use Kasm and leave them able to install it, navigate the console, run and manage workspaces, extend it with registries, and choose a tier. A few honest notes to carry in. The video is Kasm sponsored, which Jay discloses openly, and he deliberately withholds product judgment here, so for the "is it worth it" question you want his separate review, not this tutorial. The version shown is 1.14, older than whatever is current now, so always grab the latest download command from the official docs. The demo sizes the VM generously at 16 GB RAM and 4 cores; the real minimum is smaller and depends on how many workspaces you run at once. Third party registries like linuxserver.io are powerful but unvetted by Kasm, and the alert icon for elevated privileges is worth respecting before you launch an unfamiliar workspace. None of that undercuts the guide; it is a solid, reproducible walkthrough of a genuinely clever piece of self hosted software.

Full transcript
Here we have a Linux distribution, but not just any Linux distro. It's running inside a container, and that container is being presented inside a web browser. And this is just one of the things that I'll be showing you how to do in today's video as we explore Kasm. Hello again everyone and welcome back to Learn Linux TV. In today's video, what I'm going to do is give you an entire getting started guide for Kasm, a container based solution that enables you to launch applications and even entire Linux distributions inside your web browser. In this complete guide I'm going to give you all the information that you'll need to be fully productive with Kasm, and by the end of the video you'll know exactly how to use it. For those of you that haven't heard of Kasm before, it's a container based solution that you can use to launch applications or even entire Linux distributions right in your browser. You can run applications such as Thunderbird and LibreOffice, Linux distributions such as Ubuntu, and a bunch more. And best yet, you can self host Kasm and run it from within your own infrastructure. So in this video I've teamed up with Kasm to present a complete tutorial that goes over everything you'll need to know to be productive with Kasm, starting from the installation and going all the way up to managing workspaces. However, before we get started I need to give you a quick disclaimer. This video is being sponsored by Kasm, but this is not a review, and I will not be giving you my opinion on Kasm as a product in this video. This video is for those of you that have already decided to use Kasm and want some information on how to use it. So we'll be going over things like installing it and managing workspaces, but I'll leave my opinion out of this because I've already given you my opinion on Kasm in a completely separate video where I gave it a full review. If you haven't seen my review video for Kasm yet, I'll leave a card for that video right about here, so if you want to know my thoughts on Kasm as a product then definitely check that out. In this video we're going to focus on the hands on examples required to get you started. Also in the description down below I'm going to leave some time codes, so you don't have to watch a section that goes over something you already know. You can skip ahead to the section that represents where you are in the process of learning Kasm. With all of that out of the way, let's get started. As I mentioned during the introduction, Kasm is a container based solution, so let's start there. Kasm is a solution that you install on your Linux server, and it enables you to launch containers, or workspaces, that each feature applications as well as entire Linux distributions, and these workspaces run from within your web browser. This means you could do things like edit photos with GIMP, write documents with LibreOffice, or browse the internet with Google Chrome in a sandboxed browsing session, right from within your existing web browser. There's just a lot you could do with this solution, and these workspaces can be easily created and destroyed, so you could choose to keep your state within an application or remove it at any time. After Kasm is set up, you'll manage it through your web browser by logging into its web console, which is where you'll spend most of your time managing your implementation. On the console you'll have a dashboard you can use to view stats and metrics regarding the workspaces you have running, and a registry section where you can browse available workspaces to launch a new one or add additional registries for even more apps. Once you've found an application in the registry that you want to launch, you can do so by clicking the install button. After everything is downloaded and set up in the background, your new workspace shows up on the Workspaces tab of the console, which shows everything you have installed. There's a multitude of use cases for a solution such as this, and it's limited only by your imagination. For example, you can spin up a web browser within Kasm to set up a sandboxed browsing session that you simply destroy once you're finished. Another popular use case is launching entire Linux distributions so you could test software you might be developing on specific distributions. In fact you can even set up entire development environments within Kasm. Now, that was a very simple explanation of what Kasm is. I don't know if you're like me, but I learn by doing. I learn by getting hands on with a solution so I can put it through its paces and see what it looks like and how it operates. So in the next section I'll talk about what you'll need in order to get started if you want to follow along, and then we'll install Kasm and set up workspaces. Before we install Kasm, I want to make sure you understand what's needed in order to get started. First, you'll need your own Linux server. While you can use Kasm by subscribing to the software as a service version that's hosted for you, we're going to use the self hosted version, so we'll work through setting it up on our own hardware. For that reason you'll need your own Linux server to follow along with the hands on labs. To satisfy that requirement you could use a physical server, a VM, or even a VPS provider such as Akamai Connected Cloud, DigitalOcean, and a number of others. Please be advised that there's an additional cost associated with VPS instances that has nothing to do with Kasm, as cloud hosting providers typically charge for virtual machines on their platform. For the purposes of this walkthrough I'll be creating a Debian based virtual machine on Proxmox. Running Kasm within a Proxmox VM is perfectly acceptable, and that's the way I'm going to be deploying it. When it comes to which distribution your Linux server should be running, the following operating systems are supported by Kasm. For Ubuntu, versions 18.04, 20.04, and 22.04 are supported. For Debian, versions 10, 11, and 12 are supported. Supported versions for CentOS include 7, 8, and 9, with Oracle Linux also 7, 8, and 9, and Raspberry Pi OS is supported as well. Yes, that means you can run Kasm on a Raspberry Pi. There are also additional distributions you could use, mentioned in the official documentation pages. For the sake of this walkthrough I'm going to focus on the Debian virtual machine I'll be creating. When it comes to resource requirements, the information presented on the screen right now shows the minimum requirements in order for Kasm to work. Please bear in mind that depending on the workspaces you intend to run, you may need additional resources, as it's entirely dependent on your environment. Doubling each of the resources you see on the screen would give you even more flexibility, but it all comes down to the hardware you have available. Another thing to note is that Kasm recommends a swap partition be present on the server. Swap is one of those things we hope we never need, but we definitely want to have available, and Kasm recommends you have it available in case you need it. Also keep in mind that SSD storage is a minimum requirement. Outside of that, we're pretty much ready to go. All we need is a Linux server, and it doesn't really matter where it is or what kind of hardware it is. If you have a server that meets these minimum specifications, or preferably even better specifications, then we'll be clear to get started. With the requirements out of the way, let's walk through the process of installing Kasm. On my end I'll create a virtual machine on one of my Proxmox nodes, and I'll grab a Debian template that I've already created. If you're curious how to create a template within Proxmox, I have a dedicated video that covers that. Since I have this template, I'll clone it, give it a very unique virtual machine ID, create it as a full clone, and name it kasm host. So I'll clone it and wait for that to finish. You don't have to use Proxmox, that's what I'm using here, but if you have a server already then you could use that for the installation. It looks like this virtual machine is done being provisioned, so I'll go to Hardware to make sure it has enough resources to run Kasm. I went over what's required in the previous section, but I'll give this VM a little bit of horsepower. Rather than 2 GB of RAM I'm going to give it 16, and for the number of processors I'll crank this up to about four. I think that should be more than enough for this particular solution, so I'll click okay. That should be everything I need to set up on my end, so now I'll start the instance. I need cloud init to finish provisioning after it boots up, so I'll be right back. All right, the process has completed and I'm rebooting the instance to make sure everything is fully up to date. My virtual machines automatically update the first time they boot up. On your end, I highly recommend you complete all of the available security updates for your chosen Linux distribution. I have a video on my channel that goes over everything you should do when you first set up a server, so I recommend you check that out. None of the steps in that video are specific to Kasm, they're just things you should do for every Linux server you set up. Once you're done with that, I'll meet you back here and we can resume this video. On my end I'll grab the IP address for this instance, copy it, then switch over to a terminal and use SSH to connect to that virtual machine. I'll press enter, type in my password, and there we go. I'm connected to the virtual machine I set up to be my Kasm host. This is going to be a single server installation, and now that I have this set up I can go ahead and install Kasm. So let's get the installation started. There are three sets of commands that will result in Kasm being installed on your hardware, and to set it up you'll only need to run commands from one set of instructions. First there's the standard installation, which is what most of you will probably choose. If you're at all in doubt about which one you should use, then go with this method. In addition to the standard installation there are also a few offline installers available, one for x86 and the other for ARM based systems. If you need an offline installer for any reason then you would choose either one of those depending on which CPU your host server has. The primary difference is that the offline installers will have you download the container images as well, which would normally be downloaded from the internet. For this tutorial I'm going to cover the standard installer, but I'll also have instructions for the offline installers in the official blog post for this video, and those commands are also available from Kasm's documentation pages. Now, I'm going to go through the installation process, but one thing I'm not going to do is go through the actual code within the installer. I always recommend that you check the code in all installers that you execute on your Linux servers, and I'll leave that up to you, but I just wanted to mention it because it's very important. I've already tested everything on my end so there's no need for me to do this, but I wanted to mention it in case you weren't already aware of the best practice. So to get started we'll change directory into our temp directory. On my end I have an automatic ls every time I change directory, so that's why I automatically receive this directory listing. That's just a bash function I set up, so we'll ignore that. Now I'll paste in the next command we'll need. Again these commands will be available on the blog post for this video, and I'll also have a link for the instructions in the documentation pages. Note that the software version will change every now and then, so it's a good idea to get the URL from the official documentation so you're getting the most recent version. In this case I'm going to be installing version 1.14 of Kasm. This command downloads the compressed archive that contains the install script, so I'll press enter, and that's done. If I list the storage again you can see I have the Kasm release 1.14 archive downloaded here in my temp directory. Next I'll run the tar command to extract that compressed archive, which is located in my temp directory where I already am. I'll start typing Kasm and autocomplete will take care of the rest, press enter, and if I list the storage again you can see I have a Kasm release directory. Let's go inside of that directory, and as you can see we have the install script. Let's run it. I'll prefix the command with sudo. If you are running as root you don't have to do this, but I'm logged in as my normal user, and I want to run the install script, install.sh, located inside the Kasm release directory. So I'll press enter, and here we get information for the end user license agreement. I'll accept that by typing Y and press enter, and now it's going to proceed with the installation. Okay, at this point the installation of Kasm on my server is complete. If I scroll up I have quite a bit of information here. I get all of the login credentials associated with Kasm right here in the terminal output, so what you're going to want to do is copy all of this information down and put it somewhere safe. You definitely don't want to show this to anybody, and you especially don't want to show this in clear text to everyone watching a YouTube video. In my case it's okay because this test machine will be deleted by the time I finish recording this video, but in general you want to keep this information private. Of special importance here is the username [email protected]. That's the username we'll use to log in, and we get the password here as well. So copy all of this down, and when you're ready to check out the user interface, I'll see you in the next section. All right, at this point you have your very own Kasm server set up and ready for action, but how do you go about using it? In this section I'll give you a quick high level summary of the UI. I'll show you the various sections and let you know what each one does and what you can configure within it. I'm not going to go into deep detail here, because we'll elaborate on the UI as we get to each individual component throughout the tutorial. The next step is to log into Kasm. I'll click the plus icon to open a new tab and type in the IP address for the server I installed Kasm on, in my case 10.10.10.20 area. When I press enter and accept this warning, it's just letting us know the certificate is self signed. There's nothing technically wrong with that, it's just that you need to be aware of it. It's always better to get a real certificate if you can, but for now I'll accept the risk, even though there isn't a risk. It's normal for that to come up. Now we have the actual login page for Kasm. For the username we'll type [email protected], and the password was provided in the output after you installed Kasm, so I'll paste that in and click login. Check it out, here's the user interface for Kasm. The first thing to understand is that the interface has two main sections, Workspaces and Admin. I'm in the admin section right now, which we know because it's the one that's outlined. On the Workspaces section, if we had workspaces they'd show up here, but no workspaces are currently installed. As we create workspaces we'll see icons for the individual workspaces themselves, but since I have yet to create one I have nothing here but this wallpaper. Back in the admin tab, let's go through some of the UI components. At the top right corner of the screen we have our user profile information. We can edit the profile, which has the username, but we can also fill in the first name, last name, organization, and things like that. We have settings, and one I want to pay attention to is the default workspace image. That'll matter more later in the tutorial, but essentially it lets you set a workspace as your default, and that default will be the one links open in if you want to open a segregated browsing session. We can also add SSH keys and so on. For the most part we're going to use the individual sections on the left. Right now we're on the dashboard section, which gives us helpful information and metrics about our installation. At this point we have barely anything here, since we've yet to create our first workspace, so we have essentially zero usage. As we create workspaces we'll see information here. The dashboard section is where you go to see the overall health of your Kasm implementation. Continuing along, let's look at the access management section. If we click it, additional subsections expand underneath. This section helps you configure users and groups. Users are users of the Kasm implementation itself. Right now we only have admin, but we can add a new user if we want to give someone else access. If we do that we could set up a username, for example I could type J to create a user associated with me, then create a password, set the email, first name, and so on, and click save. Now I have my very own user account. If you wanted to you could create additional users for your system. When it comes to groups, groups are a great way to associate resources like workspaces to individual users by group rather than the users directly. If we click on authentication we have a few additional subsections, for example LDAP, SAML, OpenID, and physical tokens. So if you wanted to implement LDAP or something like that you can absolutely do that by filling out this section. Each of these sections pertains to specific infrastructure settings, and if LDAP is something you use you might want to consider hooking that in. Continuing, we have the infrastructure section, with sections for Docker, agents, servers, pools, managers, and so on. In general this is where we can view information regarding individual components of our Kasm implementation as they pertain to our infrastructure. This section is most helpful when you have a multi server installation of Kasm, with its various components spread out among multiple servers. An example is a situation where you want to separate the database or scale your workspaces among multiple agents. If you want to scale out your resources with Kasm, this is the section for you. In this guide we're only going to cover a single server installation, but if you want to scale out among multiple servers, this is the section for that. Perhaps something I might cover in a future tutorial. Continuing along we have the sessions section. We'll get back to this later, but for now I'll just mention that the sessions section enables you to manage existing sessions and even pre stage a session, which means you can configure it ahead of time. You can also use it to close a particular workspace session, for example if something gets frozen or stuck or an application is misbehaving. Currently we don't have anything running, so there's nothing to close. We'll move on to the workspaces section of the UI, where you can provision and deprovision workspaces. I'm going to skip this for now since we'll be coming back to it shortly, but this is where we launch new workspaces or manage existing ones. We also have settings, with global settings, web filter settings, branding, and so on. That includes API information, so if you want to automate something within your environment you could do that. You can set your reCAPTCHA private key if that's something you want to use, and you have your authentication domain, notice messages, and so on. This section gives you even more control over your implementation of Kasm. At this point it's time to start launching some workspaces so you can see the flagship feature of Kasm in action. Workspaces are at the core of Kasm and are what enable you to set up things like Linux distributions and individual applications. I mentioned that the Workspaces tab is where we'll go to manage workspaces we already have installed, but since we just set this up we don't have anything here. So on the admin tab we're going to launch a workspace or two to see what the process looks like. If I go to Workspaces, expand it, and click on registry, we get a list of some of the applications available to us. These applications are provided by Kasm itself, you can see that where it shows Kasm Technologies, but there are other registries you can add too. You don't have to stick to the one provided. But let me show you the process of launching a workspace. I'll launch Alma Linux 9, it's an awesome Linux distro, so I'll click on that and then click install. It's telling me the workspace was added, so if I go to the Workspaces tab you can see I have Alma Linux listed. There's a red exclamation mark at the top right corner of this tile, and that's just telling me the image has not been downloaded yet. This is a larger image so it might take a few minutes to pull it down from the internet. It's reaching out to the Kasm registry, looking for the Alma Linux 9 container image I requested, downloading it, and once it's done it'll launch the container for us. So right now it's just a matter of waiting for this to finish. In the meantime I'll go back to the admin tab and look at some of the other things we can install. We have individual applications like Blender, Audacity, and Atom. We have web browsers, here's Chromium, Brave, Chrome itself, and Firefox. We have image editing, that's pretty cool. In fact you can even run Kali Linux as well as openSUSE, so there are quite a few useful workspaces here. And we also have Doom. How cool is that? So if I click on that, this time I'll click edit instead of install. The difference when you click edit is that you have more control over the deployment. When you click install it launches the container with the default settings, but if you want to customize it you can. For example if you are playing a crazy death match you might want to increase the core count, the memory, and things like that. You get the idea. There are quite a few options, but I'll click save, and the Doom workspace has been created. We see it right underneath Alma Linux. It has the red exclamation mark, which means it's being downloaded, but note that Alma Linux 9, which previously had that same symbol, now doesn't, so that should mean Alma Linux is ready for use. One thing I wanted to mention about Doom, or at least about gaming and GPUs in general, is that GPUs are supported along with game pads and lossless rendering, so that enables you to play a game like Doom and see some decent performance. We'll see that in a moment. Let's click on the Alma Linux desktop right here, and I'll choose to open this in a new tab rather than replacing my existing one. One thing that might happen is if you have pop up blocking enabled in your browser, as I do, it might kill the popup. If that happens we can click right here, at least in the case of Firefox, and allow popups from Kasm. I'll go back to the running workspace, shown on the left hand side, and click to resume it. Now the tab was able to open. That's pretty cool. Now we have Alma Linux running inside our browser. We also have some controls that correspond to individual settings, so if you wanted to go through the clipboard or enable or disable your microphone you could do so through the menu. You can hide the menu by clicking the left arrow. As you can see we have an Alma Linux desktop right here, and for some fun I'll launch Firefox, which means I'm running Firefox inside of Firefox. That's definitely interesting, but this is an Alma Linux desktop, so that's fair game. I'll type in the website for this channel, and as you can see we're able to browse a website from within Firefox inside of, in my case, Firefox. Everything inside this little window is being run inside Alma Linux, so I could run other applications, edit some images with GIMP, run Telegram, Visual Studio Code, you name it. As you can see we can run applications here within our browser. That's one of the many things you could do with Kasm. Back on the Workspaces tab, I'll go to the admin tab and back to Workspaces to refresh this. As you can see Doom is ready, we don't have that symbol at the upper right corner anymore, so I'll click on that and launch it in a new tab. And check it out, we have Doom running right here inside our web browser, and look at that performance. It looks like it's running very well, and it is. So we have Doom running from within a container on Kasm being presented to our web browser, and that's really cool. Now I'm going to go back to my Kasm console. As you can see I have two workspaces running, an Alma Linux workspace and a Doom workspace. I could click resume, but instead I want to show you how to manage workspaces, or in this case manage sessions, something I mentioned earlier. If you have a session that's stuck or you need to close it for whatever reason, you can do that. So I'll just stop this particular session, let's delete it, and I'll close these tabs as well. But here in the Workspaces tab we still have Doom. I could launch it if I want to run it, but the one that was running was a session that I closed through the session menu. That's something you might have to do every now and then if you manage this solution for a team of users, you might have a request to close a session if an application is misbehaving. But you get the idea. Now let's launch an additional workspace. Let's go back to the registry and choose another application to launch. I'll launch a Firefox workspace. We have Firefox right here, so I'll click on it, let's install it. Workspace has been added, and sure enough we see Firefox, and the image is downloading, so we'll give this a moment to finish. It looks like it's done, so I'll click on Firefox and launch it. Check it out, we have Firefox running inside my browser. You might be wondering why you would want a browser inside a browser, but think of it this way. If you wanted a throwaway browser session, or a browser session isolated from the rest of your browser, then this is a great way to have a sandboxed browsing environment. Once you delete this particular workspace, the history is gone as well. So if you wanted to browse in a sandboxed session, this is one way to do that. Now I'll leave this running because there's something else I'd like to show you. If we go back to our Kasm console, then go to admin, I'll click on the username at the top right corner, edit the profile, go to settings, and right here we have default workspace image. What we want to do is choose our default workspace image. One thing you could do with this is set the default so that if you want to open a link from your primary browser in a Kasm browser, you could do that. If that doesn't make sense, let's walk through the entire process and I think you'll get it immediately. I'll choose Firefox as my default Kasm instance, and now that's been set. The next thing I'm going to do is install the Kasm add on for my browser. This is also available for Google Chrome, but I'll go ahead and go to settings, down to extensions and themes, in the case of Firefox. In the search box we can find additional add ons, so I'll type in Kasm and press enter. We have the Kasm Open in Isolation plugin here. Again this is available for other browsers as well, I'm just using Firefox. I'll add it to Firefox, and it was added. I go to add ons and themes, then extensions, and we have the Open in Isolation extension. The first thing we'll do is click the three dots to set some preferences, and what we want to do is set the server address. Here we have 10.10.10.20 area, so I'll copy that, I'm too lazy to type it, and paste it in here over top of the default. To show how this works, I'll close these other tabs, open a new one, and as a random example go to the main website for this channel. Let's say I wanted to open up this blog post inside of Kasm and have it open in isolation, hence the name of the plugin. So I'll right click on this, and at the bottom we have Open link in Kasm. When I click this, the link I right clicked is going to be opened, but instead of opening in my main web browser it's going to open inside the web browser for Kasm, the one I set as the default workspace. That's why we set the default workspace to Firefox, we wanted that to be the one links open up in when we go to open a link in isolation. So I'll click on that. It opens a new window, and here we go, this blog post just opened in isolation within Firefox that's running within Kasm. Now I could browse right here, read the article, whatever I want to do, and close it when I'm done. And I was able to do that by simply installing the browser plugin. Let's close this for now, and this as well, and we'll get back to our normal session. Now I'll close out of everything here. We have these two workspaces, so I'll stop this one. That's one thing you could do, you could stop the workspace under the admin tab. If we go to Workspaces on the workspaces tab, we have a list of workspaces installed, not unlike the Workspaces section. But here we can configure the workspaces we have in the system. So if I was finished playing Doom, and I'm not very good at that game anyway, if I wanted to remove the workspace I can do so by clicking the delete icon. So I'll do that right now. If you were curious how to delete a workspace, well now you know. At this point I recommend you go through the registry and experiment with the different things you can install. If you want to run Fedora, you could do that, maybe Inkscape, or any of the other container images available as workspaces. This is something you can do to explore what you can do with this solution. You can launch Rocky Linux, play SuperTuxKart, check your email with Thunderbird, edit some images, you get the idea. After you've had some fun with Kasm, I'll see you in the next section where we'll continue to learn even more. In the previous section I walked you through spinning up a workspace within Kasm through the first party registry that comes with Kasm. But what do you do if you want to run something not included in that registry? In this section I'll show you how to add an additional registry to Kasm. Here in my browser I already have the dashboard pulled up, so I'll click on Workspaces, which in my case is already expanded, and then click on registry. This is the first party registry I was referring to, the one that comes with Kasm. Anytime you install Kasm you'll have this registry by default, and it includes quite a few applications, a few of which we've already gone over. Like I mentioned, we can install additional registries, so let's work on that. I'll click on Registries. We have the first party registry, but we can also add another by clicking add new. So I'll do that, and then we can put in the registry URL. I'll open a new tab and show you the registry I want to add, which is linuxserver.io. If you've never been to linuxserver.io before, I highly recommend you check it out. You'll find all kinds of individual container images you can use. Linuxserver.io is not specific to Kasm, it's just something Kasm can use. Here we have a list of some of the containers you can get from this project, so I recommend you check it out. This is a registry provided by linuxserver.io for the purposes of being used within Kasm. So we're going to copy the workspace registry link, which I've done, then in Kasm I'll paste it into this box and add it. It's letting us know we are adding a third party registry. The reason we get this disclaimer is because third party registries are not something Kasm can keep a full eye on, so the quality of the registry depends on the registry itself and how it's maintained. If we want to add it we can by clicking this button, so that's what I'll do. Now as you can see we have linuxserver.io added to our list of registries. Let's go to available workspaces now that we've added that registry, and we can filter by the registry. We have the two we have installed, the first party registry and the new third party registry. As you scroll through the list you'll see on the second line where each workspace is coming from. Here on the first row each of these is provided by Kasm within the first party registry, and here we have something from linuxserver.io. Now that we've added that registry we have even more options for things we can install. In several of these workspaces we have an alert icon, and that's telling us the workspace has defined configurations that may provide elevated privileges. That's something to keep in mind if it matters to you. What I'm going to do right now is launch a workspace from linuxserver.io. I'll scroll through the list and find one to run. I'll just randomly choose FileZilla, so I'll click on it and then click install, just like I would with any other workspace. It's being added, and on the Workspaces tab you can see I have FileZilla. Just like before we have the red alert icon to let us know this workspace is not available right now, it's downloading in the background, so we'll wait for that to finish. Now it looks like it's ready, so just like with any other workspace we can launch FileZilla by clicking on it, and just like before I'll launch it in a new tab. Check it out, we have FileZilla running within Kasm. How cool is that? We were able to grab this from the linuxserver.io registry, a registry I've added to my Kasm implementation. Of course you want to vet every registry you add to your installation. Sometimes things can become obsolete or a registry is no longer maintained. If you add a registry outside of Kasm's first party registry then it's up to you to double check that. But as you can see I'm able to add additional registries and launch workspaces from them. In this section I'm going to talk a little bit about the licensing and the different tiers when it comes to Kasm. There are different installation types you can have and different tiers when it comes to support agreements, so I'm going to demystify that. To begin, let's talk about the two different types of deployments. You can have a server deployment as well as a cloud deployment. The server deployment type is what we've been using so far. This pertains to the self hosted version of Kasm that you install on your own server, VM, or VPS. The cloud version, or the software as a service version as it's also known, is different in that it's hosted for you, so you don't have to worry about maintaining the underlying server. Here on the pricing page, if I go to the cloud section, we have a few different options. The personal tier costs $5 per user per month, giving you a basic experience with 100 to 300 hours of use per month, the ability to run browsers, desktops, basically Linux distributions, individual applications, and so on. The teams pricing tier is $18 per user per month, and it gives you next business day support if you need that kind of thing. If you upgrade to the Enterprise edition you can get same business day support, which is even better. This is for the software as a service or cloud version, meaning it's not hosted by you. If you want to run Kasm from your own hardware you'll do so by choosing the server version, the one we've already installed. The pricing changes when you're self hosting. Here we have the community tier, and the price is $0 per user per month. That makes sense, it's your infrastructure, so of course you can use it. This tier is basically for nonprofit personal use. You can't include custom branding with this tier, but you can get full usage out of the solution. It's what I've been using in the video, and I wasn't limited at all. The professional tier is $5 per user per month, and that also gets you next business day support. And we have the Enterprise tier at $10 per user per month. What I recommend is that you choose the deployment type and pricing tier that matches what you want to achieve. You can self host and stick to community, which doesn't cost you anything, and that's especially useful for home labbers. If you want support or additional features you could go up a tier. If you intend to use this at work you might consider the cloud version so it's not hosted by you, and again the prices change with that deployment type. Whether you go with the software as a service version or self host it, that's entirely up to you. I'll have a link in the description that takes you right to this section if you want to check it out and make a decision for your implementation. And there's our video. In this video we went through Kasm in full detail. I taught you how to install it, how to launch a workspace, remove a workspace, and how to add an additional registry to get access to even more workspaces. We went through a lot. Let me know in the comments what you thought of this video, what you might want to see from me in the future, or anything else. In the meantime, thank you so much for checking out this video, I really appreciate it, and I'll see you in the next video.